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 isRepoCommandParamcontaining one or moreObjectParamwith 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_rootis disabled), client can tell repo to unregister this prefix.
The repo deletes Data packets according to given parameters.
If both
start_block_idandend_block_idare omitted, the repo deletes a single packet identified innameparameter. The deletion process succeeds when this packet is deleted.If
start_block_idis specified butend_block_idis 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_idand/name/end_block_id. Ifstart_block_idis 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
ObjectResultin the result should be either: * =0, which means the command is malformed or not allowed. * equals to the number ofObjectParamin the deletion command.