![]() |
GNUnet
0.11.x
|
GNUnet MESSENGER service. More...
Go to the source code of this file.
Data Structures | |
struct | GNUNET_MESSENGER_MessageEntry |
struct | GNUNET_MESSENGER_MessageStore |
Functions | |
void | init_message_store (struct GNUNET_MESSENGER_MessageStore *store) |
Initializes a message store as fully empty. More... | |
void | clear_message_store (struct GNUNET_MESSENGER_MessageStore *store) |
Clears a message store, wipes its content and deallocates its memory. More... | |
void | load_message_store (struct GNUNET_MESSENGER_MessageStore *store, const char *directory) |
Loads messages from a directory into a message store. More... | |
void | save_message_store (struct GNUNET_MESSENGER_MessageStore *store, const char *directory) |
Saves messages from a message store into a directory. More... | |
int | contains_store_message (struct GNUNET_MESSENGER_MessageStore *store, const struct GNUNET_HashCode *hash) |
Checks if a message matching a given hash is stored in a message store. More... | |
const struct GNUNET_MESSENGER_Message * | get_store_message (struct GNUNET_MESSENGER_MessageStore *store, const struct GNUNET_HashCode *hash) |
Returns the message from a message store matching a given hash. More... | |
int | put_store_message (struct GNUNET_MESSENGER_MessageStore *store, const struct GNUNET_HashCode *hash, struct GNUNET_MESSENGER_Message *message) |
Stores a message into the message store. More... | |
GNUnet MESSENGER service.
Definition in file gnunet-service-messenger_message_store.h.
void init_message_store | ( | struct GNUNET_MESSENGER_MessageStore * | store | ) |
Initializes a message store as fully empty.
store | Message store |
Definition at line 30 of file gnunet-service-messenger_message_store.c.
References GNUNET_MESSENGER_MessageStore::entries, GNUNET_CONTAINER_multihashmap_create(), GNUNET_NO, GNUNET_MESSENGER_MessageStore::messages, and GNUNET_MESSENGER_MessageStore::storage_messages.
Referenced by create_room().
void clear_message_store | ( | struct GNUNET_MESSENGER_MessageStore * | store | ) |
Clears a message store, wipes its content and deallocates its memory.
store | Message store |
Definition at line 59 of file gnunet-service-messenger_message_store.c.
References GNUNET_MESSENGER_MessageStore::entries, GNUNET_CONTAINER_multihashmap_destroy(), GNUNET_CONTAINER_multihashmap_iterate(), GNUNET_DISK_file_close(), iterate_destroy_entries(), iterate_destroy_messages(), GNUNET_MESSENGER_MessageStore::messages, and GNUNET_MESSENGER_MessageStore::storage_messages.
Referenced by destroy_room().
void load_message_store | ( | struct GNUNET_MESSENGER_MessageStore * | store, |
const char * | directory | ||
) |
Loads messages from a directory into a message store.
store | Message store |
directory | Path to a directory |
Definition at line 82 of file gnunet-service-messenger_message_store.c.
References GNUNET_MESSENGER_MessageStore::entries, entries, GNUNET_MESSENGER_MessageEntryStorage::entry, filename, GNUNET_asprintf(), GNUNET_CONTAINER_multihashmap_put(), GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST, GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_read(), GNUNET_DISK_file_test(), GNUNET_DISK_OPEN_READ, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_free, GNUNET_memcpy, GNUNET_new, GNUNET_OK, GNUNET_YES, GNUNET_MESSENGER_MessageEntryStorage::hash, and GNUNET_MESSENGER_MessageStore::storage_messages.
Referenced by load_service_room_and_messages().
void save_message_store | ( | struct GNUNET_MESSENGER_MessageStore * | store, |
const char * | directory | ||
) |
Saves messages from a message store into a directory.
store | Message store |
directory | Path to a directory |
Definition at line 181 of file gnunet-service-messenger_message_store.c.
References filename, GNUNET_asprintf(), GNUNET_CONTAINER_multihashmap_iterate(), GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_seek(), GNUNET_DISK_file_sync(), GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_READWRITE, GNUNET_DISK_OPEN_WRITE, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_DISK_SEEK_END, GNUNET_free, GNUNET_SYSERR, iterate_save_messages(), GNUNET_MESSENGER_MessageStore::messages, GNUNET_MESSENGER_MessageSave::storage_entries, GNUNET_MESSENGER_MessageStore::storage_messages, and GNUNET_MESSENGER_MessageSave::store.
Referenced by save_service_room_and_messages().
int contains_store_message | ( | struct GNUNET_MESSENGER_MessageStore * | store, |
const struct GNUNET_HashCode * | hash | ||
) |
Checks if a message matching a given hash is stored in a message store.
The function returns GNUNET_YES if a match is found, GNUNET_NO otherwise.
The message has not to be loaded from disk into memory for this check!
store | Message store |
hash | Hash of message |
Definition at line 224 of file gnunet-service-messenger_message_store.c.
References GNUNET_MESSENGER_MessageStore::entries, GNUNET_CONTAINER_multihashmap_contains(), GNUNET_YES, and GNUNET_MESSENGER_MessageStore::messages.
Referenced by callback_verify_room_message().
const struct GNUNET_MESSENGER_Message* get_store_message | ( | struct GNUNET_MESSENGER_MessageStore * | store, |
const struct GNUNET_HashCode * | hash | ||
) |
Returns the message from a message store matching a given hash.
If no matching message is found, NULL gets returned.
This function requires the message to be loaded into memory!
store | Message store |
hash | Hash of message |
Definition at line 233 of file gnunet-service-messenger_message_store.c.
References create_message(), decode_message(), destroy_message(), GNUNET_MESSENGER_MessageStore::entries, GNUNET_CONTAINER_multihashmap_get(), GNUNET_CONTAINER_multihashmap_put(), GNUNET_CONTAINER_multihashmap_remove(), GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST, GNUNET_DISK_file_read(), GNUNET_DISK_file_seek(), GNUNET_DISK_SEEK_SET, GNUNET_free, GNUNET_malloc, GNUNET_MESSENGER_KIND_UNKNOWN, GNUNET_OK, GNUNET_YES, GNUNET_MESSENGER_MessageEntry::length, GNUNET_MESSENGER_MessageStore::messages, GNUNET_MESSENGER_MessageEntry::offset, and GNUNET_MESSENGER_MessageStore::storage_messages.
Referenced by get_room_message().
int put_store_message | ( | struct GNUNET_MESSENGER_MessageStore * | store, |
const struct GNUNET_HashCode * | hash, | ||
struct GNUNET_MESSENGER_Message * | message | ||
) |
Stores a message into the message store.
The result indicates if the operation was successful.
store | Message store |
hash | Hash of message |
message | Message |
Definition at line 277 of file gnunet-service-messenger_message_store.c.
References GNUNET_CONTAINER_multihashmap_put(), GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST, and GNUNET_MESSENGER_MessageStore::messages.
Referenced by callback_room_recv(), and callback_room_sent().