Delete
Repo deletion process makes use of the PubSub package.
The repo subscribes to the topic
/<repo_name>/delete
.The client publishes a message to the topic
/<repo_name>/delete
. The message payload isRepoCommandParam
containing one or moreObjectParam
with the following fields:
name
: either a Data packet name, or a name prefix of Data packets.
start_block_id
(Optional): inclusive start segment number.
end_block_id
(Optional): inclusive end segment number.
register_prefix
(Optional): if repo doesn’t register the root prefix (Configurationregister_root
is disabled), client can tell repo to unregister this prefix.
The repo deletes Data packets according to given parameters.
If both
start_block_id
andend_block_id
are omitted, the repo deletes a single packet identified inname
parameter. The deletion process succeeds when this packet is deleted.If
start_block_id
is specified butend_block_id
is omitted, the repo starts deleting segments starting from/name/start_block_id
, and increments segment number after each packet. When a name query does not find an existing segment, the deletion process stops and is considered successful.Otherwise, the repo fetches all segments between
/name/start_block_id
and/name/end_block_id
. Ifstart_block_id
is omitted, it defaults to 0. The deletion process succeeds when all packets are deleted.Segment numbers are encoded in accordance with NDN naming conventions rev2.
Warning
Please use exactly the same parameters as you inserted the Data to delete them.
The current maintainer is not sure whether there will be problems if you provide
a wrong register_prefix
or only delete partial of the segments (i.e. provide different block ids).
Also, using single packet deletion command to delete a segment Data object or vice versa will
always fail, with delete_num
being 0.
Delete status check
The client can use the Check protocol to check the progress of an deletion process.
The deletion check response message payload is RepoCommandRes
containing zero or more
ObjectResult
with the following fields:
status_code
: status code, as defined on Check. Both the command itself and objects has a status code.name
: the name of object to delete.delete_num
: number of Data packets deleted by the repo so far.The number of
ObjectResult
in the result should be either: * =0, which means the command is malformed or not allowed. * equals to the number ofObjectParam
in the deletion command.