00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __XMMS_IPC_MSG_H__
00018 #define __XMMS_IPC_MSG_H__
00019
00020 #include "xmmsc/xmmsc_compiler.h"
00021 #include "xmmsc/xmmsc_stdint.h"
00022 #include "xmmsc/xmmsc_stdbool.h"
00023 #include "xmmsc/xmmsc_util.h"
00024 #include "xmmsc/xmmsc_ipc_transport.h"
00025 #include "xmmsc/xmmsv_coll.h"
00026 #include "xmmsc/xmmsv.h"
00027
00028 #define XMMS_IPC_MSG_DEFAULT_SIZE 128
00029 #define XMMS_IPC_MSG_HEAD_LEN 16
00030
00031 typedef struct xmms_ipc_msg_St xmms_ipc_msg_t;
00032
00033 uint32_t xmms_ipc_msg_get_length (const xmms_ipc_msg_t *msg);
00034 uint32_t xmms_ipc_msg_get_object (const xmms_ipc_msg_t *msg);
00035 uint32_t xmms_ipc_msg_get_cmd (const xmms_ipc_msg_t *msg);
00036 uint32_t xmms_ipc_msg_get_cookie (const xmms_ipc_msg_t *msg);
00037 void xmms_ipc_msg_set_length (xmms_ipc_msg_t *msg, uint32_t len);
00038 void xmms_ipc_msg_set_cookie (xmms_ipc_msg_t *msg, uint32_t cookie);
00039 void xmms_ipc_msg_set_cmd (xmms_ipc_msg_t *msg, uint32_t cmd);
00040 void xmms_ipc_msg_set_object (xmms_ipc_msg_t *msg, uint32_t object);
00041
00042 xmms_ipc_msg_t *xmms_ipc_msg_new (uint32_t object, uint32_t cmd);
00043 xmms_ipc_msg_t * xmms_ipc_msg_alloc (void);
00044 void xmms_ipc_msg_destroy (xmms_ipc_msg_t *msg);
00045
00046 bool xmms_ipc_msg_write_transport (xmms_ipc_msg_t *msg, xmms_ipc_transport_t *transport, bool *disconnected);
00047 bool xmms_ipc_msg_read_transport (xmms_ipc_msg_t *msg, xmms_ipc_transport_t *transport, bool *disconnected);
00048
00049 uint32_t xmms_ipc_msg_put_value (xmms_ipc_msg_t *msg, xmmsv_t* v);
00050
00051 bool xmms_ipc_msg_get_value (xmms_ipc_msg_t *msg, xmmsv_t **val);
00052
00053 #endif