- New callbacks for DHT monitoring
authorBart Polot <bart@net.in.tum.de>
Thu, 19 Apr 2012 18:57:41 +0000 (18:57 +0000)
committerBart Polot <bart@net.in.tum.de>
Thu, 19 Apr 2012 18:57:41 +0000 (18:57 +0000)
src/dht/dht.h

index 9894be89c6f9209ab3ad328ddf091c5a6a93e5d5..936895b8321f15cc15832ffe84c586e4bd959161 100644 (file)
@@ -196,26 +196,83 @@ struct GNUNET_DHT_ClientPutMessage
 
 
 /**
- * Message to monitor requests going through peer, clients <--> DHT service.
+ * Message to monitor put requests going through peer, DHT service --> clients.
  */
-struct GNUNET_DHT_MonitorMessage
+struct GNUNET_DHT_MonitorPutMessage
 {
   /**
-   * Type: GNUNET_MESSAGE_TYPE_DHT_MONITOR_{GET, PUT, GET_RESP, PUT_RESP*}
-   * (*) not yet implemented, necessary for key randomization
+   * Type: GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT
    */
   struct GNUNET_MessageHeader header;
 
+  /**
+   * Message options, actually an 'enum GNUNET_DHT_RouteOption' value.
+   */
+  uint32_t options GNUNET_PACKED;
+
   /**
    * The type of data in the request.
    */
   uint32_t type GNUNET_PACKED;
 
+  /**
+   * Hop count so far.
+   */
+  uint32_t hop_count GNUNET_PACKED;
+  
+  /**
+   * Replication level for this message
+   */
+  uint32_t desired_replication_level GNUNET_PACKED;
+
+  /**
+   * Number of peers recorded in the outgoing path from source to the
+   * storage location of this message.
+   */
+  uint32_t put_path_length GNUNET_PACKED;
+
+  /**
+   * How long should this data persist?
+   */
+  struct GNUNET_TIME_AbsoluteNBO expiration_time;
+
+  /**
+   * The key to store the value under.
+   */
+  GNUNET_HashCode key;
+
+  /* put path (if tracked) */
+
+  /* Payload */
+
+};
+
+
+/**
+ * Message to monitor get requests going through peer, DHT service --> clients.
+ */
+struct GNUNET_DHT_MonitorGetMessage
+{
+  /**
+   * Type: GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT
+   */
+  struct GNUNET_MessageHeader header;
+
   /**
    * Message options, actually an 'enum GNUNET_DHT_RouteOption' value.
    */
   uint32_t options GNUNET_PACKED;
 
+  /**
+   * The type of data in the request.
+   */
+  uint32_t type GNUNET_PACKED;
+
+  /**
+   * Hop count
+   */
+  uint32_t hop_count GNUNET_PACKED;
+  
   /**
    * Replication level for this message
    */
@@ -223,28 +280,51 @@ struct GNUNET_DHT_MonitorMessage
 
   /**
    * Number of peers recorded in the outgoing path from source to the
-   * storgage location of this message.
+   * storage location of this message.
    */
-  uint32_t put_path_length GNUNET_PACKED;
+  uint32_t get_path_length GNUNET_PACKED;
 
   /**
-   * The number of peer identities recorded from the storage location
-   * to this peer.
+   * The key to store the value under.
    */
-  uint32_t get_path_length GNUNET_PACKED;
+  GNUNET_HashCode key;
 
+  /* get path (if tracked) */
+
+};
+
+/**
+ * Message to monitor get results going through peer, DHT service --> clients.
+ */
+struct GNUNET_DHT_MonitorGetResultMessage
+{
   /**
-   * Unique ID for GET / GET responses.
+   * Type: GNUNET_MESSAGE_TYPE_DHT_P2P_RESULT
    */
-  uint64_t unique_id GNUNET_PACKED;
+  struct GNUNET_MessageHeader header;
 
   /**
-   * How long should this data persist?
+   * Content type.
    */
-  struct GNUNET_TIME_AbsoluteNBO expiration;
+  uint32_t type GNUNET_PACKED;
 
   /**
-   * The key to store the value under.
+   * Length of the PUT path that follows (if tracked).
+   */
+  uint32_t put_path_length GNUNET_PACKED;
+
+  /**
+   * Length of the GET path that follows (if tracked).
+   */
+  uint32_t get_path_length GNUNET_PACKED;
+
+  /**
+   * When does the content expire?
+   */
+  struct GNUNET_TIME_AbsoluteNBO expiration_time;
+
+  /**
+   * The key of the corresponding GET request.
    */
   GNUNET_HashCode key;