- moved timeout handling responsibility from for nat tests from caller to the library
[oweals/gnunet.git] / src / peerstore / peerstore_common.h
index a15302ed40dc20e7a9b9e5940922be5fc946d1d9..297eb9fc09f300bcf75a9e778697c467928e0841 100644 (file)
 
 #include "peerstore.h"
 
+/**
+ * Creates a hash of the given key combination
+ *
+ */
+void
+PEERSTORE_hash_key(const char *sub_system,
+    const struct GNUNET_PeerIdentity *peer,
+    const char *key,
+    struct GNUNET_HashCode *ret);
+
+/**
+ * Creates a record message ready to be sent
+ *
+ * @param sub_system sub system string
+ * @param peer Peer identity (can be NULL)
+ * @param key record key string (can be NULL)
+ * @param value record value BLOB (can be NULL)
+ * @param value_size record value size in bytes (set to 0 if value is NULL)
+ * @param expiry absolute time after which the record expires
+ * @param msg_type message type to be set in header
+ * @return pointer to record message struct
+ */
+struct StoreRecordMessage *
+PEERSTORE_create_record_message(const char *sub_system,
+    const struct GNUNET_PeerIdentity *peer,
+    const char *key,
+    const void *value,
+    size_t value_size,
+    struct GNUNET_TIME_Absolute *expiry,
+    uint16_t msg_type);
+
 /**
  * Creates a MQ envelope for a single record
  *
@@ -44,7 +75,8 @@ PEERSTORE_create_record_mq_envelope(const char *sub_system,
     const char *key,
     const void *value,
     size_t value_size,
-    struct GNUNET_TIME_Absolute expiry,
+    struct GNUNET_TIME_Absolute *expiry,
+    enum GNUNET_PEERSTORE_StoreOption options,
     uint16_t msg_type);
 
 /**
@@ -55,3 +87,10 @@ PEERSTORE_create_record_mq_envelope(const char *sub_system,
  */
 struct GNUNET_PEERSTORE_Record *
 PEERSTORE_parse_record_message(const struct GNUNET_MessageHeader *message);
+
+/**
+ * Free any memory allocated for this record
+ *
+ * @param record
+ */
+void PEERSTORE_destroy_record(struct GNUNET_PEERSTORE_Record *record);