#ifndef __PUBSUB_MSG_H__ #define __PUBSUB_MSG_H__ #include "../../core/ipc.h" #define PUBSUB_SUBSCRIBER_ACTION_STR_PUB "pub" #define PUBSUB_SUBSCRIBER_ACTION_STR_SUB "sub" enum subscriber_action {PUBSUB_PUB, PUBSUB_SUB}; #define PUBSUB_TYPE_MESSAGE 1 #define PUBSUB_TYPE_ERROR 2 #define PUBSUB_TYPE_DEBUG 4 #define PUBSUB_TYPE_INFO 5 enum pubsub_message_types { PUBSUB_MSG_TYPE_SUB , PUBSUB_MSG_TYPE_UNSUB , PUBSUB_MSG_TYPE_PUB }; struct pubsub_msg { enum pubsub_message_types type; // message type : alert, notification, … char *chan; size_t chanlen; char *data; size_t datalen; }; void pubsub_message_from_message (struct pubsub_msg *msg, struct ipc_message *m); void pubsub_message_to_message (const struct pubsub_msg *msg, struct ipc_message *m); void pubsub_message_set_chan (struct pubsub_msg *pm, char *chan, size_t len); void pubsub_message_set_data (struct pubsub_msg *pm, char *data, size_t len); void pubsub_message_empty (struct pubsub_msg *msg); void pubsub_message_print (const struct pubsub_msg *msg); int pubsub_message_send (struct ipc_service *srv, const struct pubsub_msg * m); #endif