- Missing header file
authorBart Polot <bart@net.in.tum.de>
Sun, 22 Apr 2012 19:41:27 +0000 (19:41 +0000)
committerBart Polot <bart@net.in.tum.de>
Sun, 22 Apr 2012 19:41:27 +0000 (19:41 +0000)
src/include/gnunet_dht_service.h

index bb9e64ff67dd1c538c63fcdea0a1994eefb40e35..df9233f4d4aca8bfef6442a63dc8da2b2c4c4c48 100644 (file)
@@ -217,37 +217,85 @@ GNUNET_DHT_get_stop (struct GNUNET_DHT_GetHandle *get_handle);
 
 /* *************** Extended API: monitor ******************* */
 
+/**
+ * Handle to monitor requests
+ */
 struct GNUNET_DHT_MonitorHandle;
 
 /**
- * Callback called on each request going through the DHT.
+ * Callback called on each GET request going through the DHT.
+ *
+ * @param cls Closure.
+ * @param options Options, for instance RecordRoute, DemultiplexEverywhere.
+ * @param type The type of data in the request.
+ * @param hop_count Hop count so far.
+ * @param path_length number of entries in path (or 0 if not recorded).
+ * @param path peers on the GET path (or NULL if not recorded).
+ * @param desired_replication_level Desired replication level.
+ * @param key Key of the requested data.
+ */
+typedef void (*GNUNET_DHT_MonitorGetCB) (void *cls,
+                                         enum GNUNET_DHT_RouteOption options,
+                                         enum GNUNET_BLOCK_Type type,
+                                         uint32_t hop_count,
+                                         uint32_t desired_replication_level, 
+                                         unsigned int path_length,
+                                         const struct GNUNET_PeerIdentity *path,
+                                         const GNUNET_HashCode * key);
+
+/**
+ * Callback called on each GET reply going through the DHT.
  *
  * @param cls Closure.
- * @param mtype Type of the DHT message monitored.
- * @param exp When will this value expire.
- * @param key Key of the result/request.
- * @param get_path Peers on reply path (or NULL if not recorded).
+ * @param type The type of data in the result.
+ * @param get_path Peers on GET path (or NULL if not recorded).
  * @param get_path_length number of entries in get_path.
  * @param put_path peers on the PUT path (or NULL if not recorded).
  * @param put_path_length number of entries in get_path.
- * @param desired_replication_level Desired replication level.
- * @param type Type of the result/request.
+ * @param exp Expiration time of the data.
+ * @param key Key of the data.
  * @param data Pointer to the result data.
  * @param size Number of bytes in data.
  */
-typedef void (*GNUNET_DHT_MonitorCB) (void *cls,
-                                      uint16_t mtype,
-                                      struct GNUNET_TIME_Absolute exp,
-                                      const GNUNET_HashCode * key,
-                                      const struct GNUNET_PeerIdentity *
-                                      get_path, unsigned int get_path_length,
-                                      const struct GNUNET_PeerIdentity *
-                                      put_path, unsigned int put_path_length,
-                                      uint32_t desired_replication_level, 
-                                      enum GNUNET_DHT_RouteOption options,
-                                      enum GNUNET_BLOCK_Type type,
-                                      const void *data,
-                                      size_t size);
+typedef void (*GNUNET_DHT_MonitorGetRespCB) (void *cls,
+                                             enum GNUNET_BLOCK_Type type,
+                                             const struct GNUNET_PeerIdentity
+                                             *get_path,
+                                             unsigned int get_path_length,
+                                             const struct GNUNET_PeerIdentity
+                                             * put_path,
+                                             unsigned int put_path_length,
+                                             struct GNUNET_TIME_Absolute exp,
+                                             const GNUNET_HashCode * key,
+                                             const void *data,
+                                             size_t size);
+
+/**
+ * Callback called on each PUT request going through the DHT.
+ *
+ * @param cls Closure.
+ * @param options Options, for instance RecordRoute, DemultiplexEverywhere.
+ * @param type The type of data in the request.
+ * @param hop_count Hop count so far.
+ * @param path_length number of entries in path (or 0 if not recorded).
+ * @param path peers on the PUT path (or NULL if not recorded).
+ * @param desired_replication_level Desired replication level.
+ * @param exp Expiration time of the data.
+ * @param key Key under which data is to be stored.
+ * @param data Pointer to the data carried.
+ * @param size Number of bytes in data.
+ */
+typedef void (*GNUNET_DHT_MonitorPutCB) (void *cls,
+                                         enum GNUNET_DHT_RouteOption options,
+                                         enum GNUNET_BLOCK_Type type,
+                                         uint32_t hop_count,
+                                         uint32_t desired_replication_level, 
+                                         unsigned int path_length,
+                                         const struct GNUNET_PeerIdentity *path,
+                                         struct GNUNET_TIME_Absolute exp,
+                                         const GNUNET_HashCode * key,
+                                         const void *data,
+                                         size_t size);
 
 /**
  * Start monitoring the local DHT service.
@@ -255,7 +303,9 @@ typedef void (*GNUNET_DHT_MonitorCB) (void *cls,
  * @param handle Handle to the DHT service.
  * @param type Type of blocks that are of interest.
  * @param key Key of data of interest, NULL for all.
- * @param cb Callback to process all monitored data.
+ * @param get_cb Callback to process monitored get messages.
+ * @param get_resp_cb Callback to process monitored get response messages.
+ * @param put_cb Callback to process monitored put messages.
  * @param cb_cls Closure for cb.
  *
  * @return Handle to stop monitoring.
@@ -264,7 +314,9 @@ struct GNUNET_DHT_MonitorHandle *
 GNUNET_DHT_monitor_start (struct GNUNET_DHT_Handle *handle,
                           enum GNUNET_BLOCK_Type type,
                           const GNUNET_HashCode *key,
-                          GNUNET_DHT_MonitorCB cb,
+                          GNUNET_DHT_MonitorGetCB get_cb,
+                          GNUNET_DHT_MonitorGetRespCB get_resp_cb,
+                          GNUNET_DHT_MonitorPutCB put_cb,
                           void *cb_cls);