#include "gnunet_common.h"
#include "gnunet_configuration_lib.h"
#include "gnunet_identity_service.h"
#include "gnunet_protocols.h"
#include "gnunet_scheduler_lib.h"
#include "gnunet_time_lib.h"
#include "gnunet_util_lib.h"
Go to the source code of this file.
Data Structures | |
struct | GNUNET_MESSENGER_RoomEntryRecord |
A room entry record specifies which peer is hosting a given room and may also specify the key to enter it. More... | |
struct | GNUNET_MESSENGER_RoomDetailsRecord |
A room details record specifies a custom name for a given room and some additional space for flags. More... | |
struct | GNUNET_MESSENGER_MessageHeader |
The header of a GNUNET_MESSENGER_Message. More... | |
struct | GNUNET_MESSENGER_MessageInfo |
An info message body. More... | |
struct | GNUNET_MESSENGER_MessageJoin |
A join message body. More... | |
struct | GNUNET_MESSENGER_MessageLeave |
A leave message body. More... | |
struct | GNUNET_MESSENGER_MessageName |
A name message body. More... | |
struct | GNUNET_MESSENGER_MessageKey |
A key message body. More... | |
struct | GNUNET_MESSENGER_MessagePeer |
A peer message body. More... | |
struct | GNUNET_MESSENGER_MessageId |
An id message body. More... | |
struct | GNUNET_MESSENGER_MessageMiss |
A miss message body. More... | |
struct | GNUNET_MESSENGER_MessageMerge |
A merge message body. More... | |
struct | GNUNET_MESSENGER_MessageRequest |
A request message body. More... | |
struct | GNUNET_MESSENGER_MessageInvite |
An invite message body. More... | |
struct | GNUNET_MESSENGER_MessageText |
A text message body. More... | |
struct | GNUNET_MESSENGER_MessageFile |
A file message body. More... | |
struct | GNUNET_MESSENGER_MessagePrivate |
A private message body. More... | |
struct | GNUNET_MESSENGER_MessageDelete |
A delete message body This allows deletion of an own previous message with any custom automatic delay. More... | |
struct | GNUNET_MESSENGER_MessageBody |
The unified body of a GNUNET_MESSENGER_Message. More... | |
struct | GNUNET_MESSENGER_Message |
Struct to a message. More... | |
Macros | |
#define | GNUNET_MESSENGER_VERSION 0x00000002 |
Version number of GNUnet Messenger API. More... | |
#define | GNUNET_MESSENGER_SERVICE_NAME "messenger" |
Identifier of GNUnet MESSENGER Service. More... | |
#define | GNUNET_MESSENGER_KIND_MAX (GNUNET_MESSENGER_KIND_DELETE) |
Typedefs | |
typedef void(* | GNUNET_MESSENGER_IdentityCallback) (void *cls, struct GNUNET_MESSENGER_Handle *handle) |
Method called whenever the EGO of a handle changes or if the first connection fails to load a valid EGO and the anonymous key pair will be used instead. More... | |
typedef void(* | GNUNET_MESSENGER_MessageCallback) (void *cls, struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Contact *sender, const struct GNUNET_MESSENGER_Message *message, const struct GNUNET_HashCode *hash, enum GNUNET_MESSENGER_MessageFlags flags) |
Method called whenever a message is sent or received from a room. More... | |
typedef int(* | GNUNET_MESSENGER_MemberCallback) (void *cls, struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Contact *contact) |
Method called for each member in a room during iteration. More... | |
Enumerations | |
enum | GNUNET_MESSENGER_MessageKind { GNUNET_MESSENGER_KIND_INFO = 1 , GNUNET_MESSENGER_KIND_JOIN = 2 , GNUNET_MESSENGER_KIND_LEAVE = 3 , GNUNET_MESSENGER_KIND_NAME = 4 , GNUNET_MESSENGER_KIND_KEY = 5 , GNUNET_MESSENGER_KIND_PEER = 6 , GNUNET_MESSENGER_KIND_ID = 7 , GNUNET_MESSENGER_KIND_MISS = 8 , GNUNET_MESSENGER_KIND_MERGE = 9 , GNUNET_MESSENGER_KIND_REQUEST = 10 , GNUNET_MESSENGER_KIND_INVITE = 11 , GNUNET_MESSENGER_KIND_TEXT = 12 , GNUNET_MESSENGER_KIND_FILE = 13 , GNUNET_MESSENGER_KIND_PRIVATE = 14 , GNUNET_MESSENGER_KIND_DELETE = 15 , GNUNET_MESSENGER_KIND_UNKNOWN = 0 } |
Enum for the different supported kinds of messages. More... | |
enum | GNUNET_MESSENGER_MessageFlags { GNUNET_MESSENGER_FLAG_NONE = 0 , GNUNET_MESSENGER_FLAG_SENT = 1 , GNUNET_MESSENGER_FLAG_PRIVATE = 2 } |
Enum for the different supported flags used by message handling Compatible flags can be OR'ed together. More... | |
Functions | |
const char * | GNUNET_MESSENGER_name_of_kind (enum GNUNET_MESSENGER_MessageKind kind) |
Get the name of a message kind. More... | |
struct GNUNET_MESSENGER_Handle * | GNUNET_MESSENGER_connect (const struct GNUNET_CONFIGURATION_Handle *cfg, const char *name, GNUNET_MESSENGER_IdentityCallback identity_callback, void *identity_cls, GNUNET_MESSENGER_MessageCallback msg_callback, void *msg_cls) |
Set up a handle for the messenger related functions and connects to all necessary services. More... | |
int | GNUNET_MESSENGER_update (struct GNUNET_MESSENGER_Handle *handle) |
Update a handle of the messenger to use a different ego key and replace the old one with a newly generated one. More... | |
void | GNUNET_MESSENGER_disconnect (struct GNUNET_MESSENGER_Handle *handle) |
Disconnect all of the messengers used services and clears up its used memory. More... | |
const char * | GNUNET_MESSENGER_get_name (const struct GNUNET_MESSENGER_Handle *handle) |
Get the name (if specified, otherwise NULL) used by the messenger. More... | |
int | GNUNET_MESSENGER_set_name (struct GNUNET_MESSENGER_Handle *handle, const char *name) |
Set the name for the messenger. More... | |
const struct GNUNET_IDENTITY_PublicKey * | GNUNET_MESSENGER_get_key (const struct GNUNET_MESSENGER_Handle *handle) |
Get the public key used by the messenger or NULL if the anonymous key was used. More... | |
struct GNUNET_MESSENGER_Room * | GNUNET_MESSENGER_open_room (struct GNUNET_MESSENGER_Handle *handle, const struct GNUNET_HashCode *key) |
Open a room to send and receive messages. More... | |
struct GNUNET_MESSENGER_Room * | GNUNET_MESSENGER_enter_room (struct GNUNET_MESSENGER_Handle *handle, const struct GNUNET_PeerIdentity *door, const struct GNUNET_HashCode *key) |
Enter a room to send and receive messages through a door opened using GNUNET_MESSENGER_open_room. More... | |
void | GNUNET_MESSENGER_close_room (struct GNUNET_MESSENGER_Room *room) |
Close a room which was entered, opened or both in various order and variety. More... | |
int | GNUNET_MESSENGER_find_rooms (const struct GNUNET_MESSENGER_Handle *handle, const struct GNUNET_MESSENGER_Contact *contact, GNUNET_MESSENGER_MemberCallback callback, void *cls) |
Searches for a specific contact in a given room and calls a selected callback with a given closure for each of them containing the contact as a member. More... | |
const struct GNUNET_HashCode * | GNUNET_MESSENGER_room_get_key (const struct GNUNET_MESSENGER_Room *room) |
Get the key of a given room. More... | |
const struct GNUNET_MESSENGER_Contact * | GNUNET_MESSENGER_get_sender (const struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
Get the contact of a member in a room which sent a specific message identified with a given hash. More... | |
const char * | GNUNET_MESSENGER_contact_get_name (const struct GNUNET_MESSENGER_Contact *contact) |
Get the name used by the contact. More... | |
const struct GNUNET_IDENTITY_PublicKey * | GNUNET_MESSENGER_contact_get_key (const struct GNUNET_MESSENGER_Contact *contact) |
Get the public key used by the contact or NULL if the anonymous key was used. More... | |
void | GNUNET_MESSENGER_send_message (struct GNUNET_MESSENGER_Room *room, const struct GNUNET_MESSENGER_Message *message, const struct GNUNET_MESSENGER_Contact *contact) |
Send a message into a room. More... | |
const struct GNUNET_MESSENGER_Message * | GNUNET_MESSENGER_get_message (const struct GNUNET_MESSENGER_Room *room, const struct GNUNET_HashCode *hash) |
Get the message in a room identified by its hash. More... | |
int | GNUNET_MESSENGER_iterate_members (struct GNUNET_MESSENGER_Room *room, GNUNET_MESSENGER_MemberCallback callback, void *cls) |
Iterates through all members of a given room and calls a selected callback for each of them with a provided closure. More... | |
MESSENGER service; manages decentralized chat groups
Definition in file gnunet_messenger_service.h.