X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fpeerstore%2Fpeerstore_common.h;h=0fc14d9b4859fd7a2746c47739ad14e5de5c8182;hb=79fb947eb8fba243ea65e19b40b65e04f8806865;hp=cd918497b730ac31eaaaabfb4437c4aca284fa5f;hpb=7eb684ec9f93d52ebae09729fcf01c16580b5cb9;p=oweals%2Fgnunet.git diff --git a/src/peerstore/peerstore_common.h b/src/peerstore/peerstore_common.h index cd918497b..0fc14d9b4 100644 --- a/src/peerstore/peerstore_common.h +++ b/src/peerstore/peerstore_common.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet - (C) + Copyright (C) 2013-2016 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** @@ -23,29 +23,19 @@ * @brief Helper peerstore functions * @author Omar Tarabai */ - +#include "platform.h" #include "peerstore.h" /** - * Creates a record message ready to be sent + * Creates a hash of the given key combination * - * @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); +void +PEERSTORE_hash_key (const char *sub_system, + const struct GNUNET_PeerIdentity *peer, + const char *key, + struct GNUNET_HashCode *ret); + /** * Creates a MQ envelope for a single record @@ -56,23 +46,37 @@ PEERSTORE_create_record_message(const char *sub_system, * @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 time after which the record expires + * @param options options specific to the storage operation * @param msg_type message type to be set in header * @return pointer to record message struct */ struct GNUNET_MQ_Envelope * -PEERSTORE_create_record_mq_envelope(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); +PEERSTORE_create_record_mq_envelope (const char *sub_system, + const struct GNUNET_PeerIdentity *peer, + const char *key, + const void *value, + size_t value_size, + struct GNUNET_TIME_Absolute expiry, + enum GNUNET_PEERSTORE_StoreOption options, + uint16_t msg_type); + /** * Parses a message carrying a record * - * @param message the actual message - * @return Pointer to record or NULL if error + * @param srm the actual message + * @return Pointer to record or NULL on error */ struct GNUNET_PEERSTORE_Record * -PEERSTORE_parse_record_message(const struct GNUNET_MessageHeader *message); +PEERSTORE_parse_record_message (const struct StoreRecordMessage *srm); + + +/** + * Free any memory allocated for this record + * + * @param record + */ +void +PEERSTORE_destroy_record (struct GNUNET_PEERSTORE_Record *record); + +/* end of peerstore_common.h */