22 #include "opensync_internals.h" 50 message->refCount = 1;
52 message->
buffer = g_byte_array_sized_new( size );
54 message->
buffer = g_byte_array_new();
61 g_atomic_int_inc(&(message->refCount));
66 if (g_atomic_int_dec_and_test(&(message->refCount))) {
68 g_byte_array_free(message->
buffer, TRUE);
102 reply->
id1 = message->
id1;
103 reply->id2 = message->id2;
119 reply->
id1 = message->
id1;
120 reply->id2 = message->id2;
130 osync_marshal_error(message, error);
143 if (message->
cmd == OSYNC_MESSAGE_ERRORREPLY)
148 osync_bool osync_message_is_answered(
OSyncMessage *message)
173 void osync_message_write_int(
OSyncMessage *message,
int value)
175 g_byte_array_append( message->
buffer, (
unsigned char*)&value,
sizeof(
int ) );
178 void osync_message_write_long_long_int(
OSyncMessage *message,
long long int value)
180 g_byte_array_append( message->
buffer, (
unsigned char*)&value,
sizeof(
long long int ) );
183 void osync_message_write_string(
OSyncMessage *message,
const char *value)
188 g_byte_array_append( message->
buffer, (
unsigned char*)&length,
sizeof(
int ) );
190 int length = strlen( value ) + 1;
191 g_byte_array_append( message->
buffer, (
unsigned char*)&length,
sizeof(
int ) );
192 g_byte_array_append( message->
buffer, (
unsigned char*)value, length );
196 void osync_message_write_data(
OSyncMessage *message,
const void *value,
int size)
198 g_byte_array_append( message->
buffer, value, size );
201 void osync_message_read_int(
OSyncMessage *message,
int *value)
207 void osync_message_read_long_long_int(
OSyncMessage *message,
long long int *value)
213 void osync_message_read_const_string(
OSyncMessage *message,
char **value)
227 void osync_message_read_string(
OSyncMessage *message,
char **value)
237 *value = (
char*)malloc(length);
242 void osync_message_read_const_data(
OSyncMessage *message,
void **value,
int size)
248 void osync_message_read_data(
OSyncMessage *message,
void *value,
int size)
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.
OSyncMessage * osync_message_new_errorreply(OSyncMessage *message, OSyncError **error)
Creates a new error reply.
void * osync_try_malloc0(unsigned int size, OSyncError **error)
Safely tries to malloc memory.
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.
void osync_trace(OSyncTraceType type, const char *message,...)
Used for tracing the application.
OSyncMessageCommand
The Type of the message.
OSyncMessage * osync_message_new(OSyncMessageCommand cmd, int size, OSyncError **error)
A Message used by the inter thread messaging library.