}
+/**
+ * Fill in all of the generic fields for
+ * an unindex event.
+ *
+ * @param pc structure to fill in
+ * @param sc overall unindex context
+ */
+static void
+make_unindex_status (struct GNUNET_FS_ProgressInfo *pi,
+ struct GNUNET_FS_UnindexContext *uc,
+ uint64_t offset)
+{
+ pi->value.unindex.uc = uc;
+ pi->value.unindex.cctx = uc->client_info;
+ pi->value.unindex.filename = uc->filename;
+ pi->value.unindex.size = uc->file_size;
+ pi->value.unindex.eta
+ = GNUNET_TIME_calculate_eta (uc->start_time,
+ offset,
+ uc->file_size);
+ pi->value.publish.duration = GNUNET_TIME_absolute_get_duration (uc->start_time);
+ pi->value.publish.completed = offset;
+}
+
+
+/**
+ * Function called with information about our
+ * progress in computing the tree encoding.
+ *
+ * @param cls closure
+ * @param offset where are we in the file
+ * @param pt_block plaintext of the currently processed block
+ * @param pt_size size of pt_block
+ * @param depth depth of the block in the tree
+ */
+static void
+unindex_progress (void *cls,
+ uint64_t offset,
+ const void *pt_block,
+ size_t pt_size,
+ unsigned int depth)
+{
+ struct GNUNET_FS_UnindexContext *uc = cls;
+ struct GNUNET_FS_ProgressInfo pi;
+
+ pi.status = GNUNET_FS_STATUS_UNINDEX_PROGRESS;
+ make_unindex_status (&pi, uc, offset);
+ pi.value.unindex.specifics.progress.data = pt_block;
+ pi.value.unindex.specifics.progress.offset = offset;
+ pi.value.unindex.specifics.progress.data_len = pt_size;
+ pi.value.unindex.specifics.progress.depth = depth;
+ uc->client_info
+ = uc->h->upcb (uc->h->upcb_cls,
+ &pi);
+}
+
+
+/**
+ * We've encountered an error during
+ * unindexing. Signal the client.
+ *
+ * @param uc context for the failed unindexing operation
+ * @param emsg the error message
+ */
+static void
+signal_unindex_error (struct GNUNET_FS_UnindexContext *uc,
+ const char *emsg)
+{
+ struct GNUNET_FS_ProgressInfo pi;
+
+ pi.status = GNUNET_FS_STATUS_UNINDEX_ERROR;
+ make_unindex_status (&pi, uc, 0);
+ pi.value.unindex.eta = GNUNET_TIME_UNIT_FOREVER_REL;
+ pi.value.unindex.specifics.error.message = emsg;
+ uc->client_info
+ = uc->h->upcb (uc->h->upcb_cls,
+ &pi);
+}
+
+
/**
* Continuation called to notify client about result of the
* datastore removal operation.
const char *msg)
{
struct GNUNET_FS_UnindexContext *uc = cls;
- // FIXME: may want to check for errors
- // OTHER than content-not-present!
+ if (success == GNUNET_SYSERR)
+ {
+ signal_unindex_error (uc,
+ msg);
+ return;
+ }
+
GNUNET_FS_tree_encoder_next (uc->tc);
}
unindex_process (void *cls,
const GNUNET_HashCode *query,
uint64_t offset,
- unsigned int type,
+ uint32_t type,
const void *block,
uint16_t block_size)
{
}
GNUNET_DATASTORE_remove (uc->dsh,
query,
- block_size,
- block,
+ size,
+ data,
&process_cont,
uc,
GNUNET_CONSTANTS_SERVICE_TIMEOUT);
}
-
-
-/**
- * Function called with information about our
- * progress in computing the tree encoding.
- *
- * @param cls closure
- * @param offset where are we in the file
- * @param pt_block plaintext of the currently processed block
- * @param pt_size size of pt_block
- * @param depth depth of the block in the tree
- */
-static void
-unindex_progress (void *cls,
- uint64_t offset,
- const void *pt_block,
- size_t pt_size,
- unsigned int depth)
-{
- struct GNUNET_FS_UnindexContext *uc = cls;
- // FIXME: call callback!
-}
-
-
-
-/**
- * Fill in all of the generic fields for
- * an unindex event.
- *
- * @param pc structure to fill in
- * @param sc overall unindex context
- */
-static void
-make_unindex_status (struct GNUNET_FS_ProgressInfo *pi,
- struct GNUNET_FS_UnindexContext *uc,
- uint64_t offset)
-{
- pi->value.unindex.uc = uc;
- pi->value.unindex.cctx = uc->client_info;
- pi->value.unindex.filename = uc->filename;
- pi->value.unindex.size = uc->file_size;
- pi->value.unindex.eta
- = GNUNET_TIME_calculate_eta (uc->start_time,
- offset,
- uc->file_size);
- pi->value.publish.duration = GNUNET_TIME_absolute_get_duration (uc->start_time);
- pi->value.publish.completed = offset;
-}
-
-
-/**
- * We've encountered an error during
- * unindexing. Signal the client.
- *
- * @param uc context for the failed unindexing operation
- * @param emsg the error message
- */
-static void
-signal_unindex_error (struct GNUNET_FS_UnindexContext *uc,
- const char *emsg)
-{
- struct GNUNET_FS_ProgressInfo pi;
-
- pi.status = GNUNET_FS_STATUS_UNINDEX_ERROR;
- make_unindex_status (&pi, uc, 0);
- pi.value.unindex.eta = GNUNET_TIME_UNIT_FOREVER_REL;
- pi.value.unindex.specifics.error.message = emsg;
- uc->client_info
- = uc->h->upcb (uc->h->upcb_cls,
- &pi);
-}
/**