OpenSync  0.22
opensync_message_internals.h
1 #ifndef _OPENSYNC_MESSAGES_INTERNALS_H
2 #define _OPENSYNC_MESSAGES_INTERNALS_H
3 
12 
16 typedef enum {
17  OSYNC_MESSAGE_NOOP,
18  OSYNC_MESSAGE_CONNECT,
19  OSYNC_MESSAGE_DISCONNECT,
20  OSYNC_MESSAGE_GET_CHANGES,
21  OSYNC_MESSAGE_GET_CHANGEDATA,
22  OSYNC_MESSAGE_COMMIT_CHANGE,
23  OSYNC_MESSAGE_COMMITTED_ALL,
24  OSYNC_MESSAGE_SYNC_DONE,
25  OSYNC_MESSAGE_CALL_PLUGIN,
26  OSYNC_MESSAGE_NEW_CHANGE,
27  OSYNC_MESSAGE_REPLY,
28  OSYNC_MESSAGE_ERRORREPLY,
29  OSYNC_MESSAGE_INITIALIZE,
30  OSYNC_MESSAGE_FINALIZE,
31  OSYNC_MESSAGE_SYNCHRONIZE,
32  OSYNC_MESSAGE_ENGINE_CHANGED,
33  OSYNC_MESSAGE_MAPPING_CHANGED,
34  OSYNC_MESSAGE_MAPPINGENTRY_CHANGED,
35  OSYNC_MESSAGE_ERROR,
36  OSYNC_MESSAGE_QUEUE_ERROR,
37  OSYNC_MESSAGE_QUEUE_HUP,
38  OSYNC_MESSAGE_SYNC_ALERT,
40 
48 typedef void (*OSyncMessageHandler)(OSyncMessage *message, void *user_data);
49 
50 #ifndef DOXYGEN_SHOULD_SKIP_THIS
51 typedef struct timeout_info {
52  OSyncQueue *sendingqueue;
53  OSyncMessage *message;
54  GSource *source;
55  void *replysender;
56  OSyncQueue *replyqueue;
57  int timeout;
58  gboolean (*timeoutfunc)(gpointer);
59 } timeout_info;
60 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
61 
65 struct OSyncMessage {
66  gint refCount;
70  long long int id1;
71  int id2;
75  gpointer user_data;
77  timeout_info *to_info;
79  osync_bool is_answered;
81  GByteArray *buffer;
84 };
85 
91 OSyncMessage *osync_message_new_error(OSyncError *error, OSyncError **loc_error);
92 void osync_message_ref(OSyncMessage *message);
93 void osync_message_unref(OSyncMessage *message);
94 
95 void osync_message_set_handler(OSyncMessage *message, OSyncMessageHandler handler, gpointer user_data);
96 gboolean osync_message_is_error(OSyncMessage *message);
97 osync_bool osync_message_send_message(OSyncMessage *message, OSyncError **error);
98 osync_bool osync_message_send_with_timeout(OSyncMessage *message, OSyncQueue *queue, OSyncQueue *replyQueue, int timeout, OSyncError **error);
100 void osync_message_reset_timeout(OSyncMessage *message);
101 osync_bool osync_message_is_answered(OSyncMessage *message);
102 void osync_message_set_answered(OSyncMessage *message);
103 
104 void osync_message_write_int(OSyncMessage *message, int value);
105 void osync_message_write_long_long_int(OSyncMessage *message, long long int value);
106 void osync_message_write_string(OSyncMessage *message, const char *value);
107 void osync_message_write_data(OSyncMessage *message, const void *value, int size);
108 
109 void osync_message_read_int(OSyncMessage *message, int *value);
110 void osync_message_read_long_long_int(OSyncMessage *message, long long int *value);
111 void osync_message_read_string(OSyncMessage *message, char **value);
112 void osync_message_read_data(OSyncMessage *message, void *value, int size);
113 void osync_message_read_const_data(OSyncMessage *message, void **value, int size);
114 void osync_message_read_const_string(OSyncMessage *message, char **value);
115 
116 #endif
Represent an error.
OSyncMessage * osync_message_new_reply(OSyncMessage *message, OSyncError **error)
Creates a new reply.
OSyncMessageHandler callback
void(* OSyncMessageHandler)(OSyncMessage *message, void *user_data)
Function which can receive messages.
void osync_message_set_handler(OSyncMessage *message, OSyncMessageHandler handler, gpointer user_data)
Sets the handler that will receive the reply.
OSyncMessageCommand cmd
OSyncMessage * osync_message_new_errorreply(OSyncMessage *message, OSyncError **error)
Creates a new error reply.
OSyncMessageCommand osync_message_get_command(OSyncMessage *message)
Gets the command from a message.
gboolean osync_message_is_error(OSyncMessage *message)
Checks if the message is a error.
OSyncMessageCommand
The Type of the message.
Represents a Queue which can be used to receive messages.
OSyncMessage * osync_message_new(OSyncMessageCommand cmd, int size, OSyncError **error)
A Message used by the inter thread messaging library.