#ifndef REDIS_SUBSCRIBER_H #define REDIS_SUBSCRIBER_H #include #include #include #include #include #include #include #include "thpool.h" extern struct RedisSubscriber gRedisSubscriber; extern struct json_object* gJsonObj; extern threadpool gThpool; struct RedisSubscriber { /*libevent事件对象*/ struct event_base *eventBase; /*事件线程ID*/ pthread_t eventThread; /* 事件线程的信号量*/ sem_t eventSem; /* hiredis异步对象*/ redisAsyncContext *redisContext; // 通知外层的回调函数对象 //NotifyMessageFn _notify_message_fn; }; struct RecvMsg_t { char *msg; int len; }; bool redisSubInit(); void redisSubUninit(); void redisSubDisconnect(); bool redisSubConnect(); bool redisSubscriber(char * channel_name); typedef void(*pChanneCallBack)(struct RecvMsg_t *msg); void redisRegisterChannelFunc(char *channel, pChanneCallBack func); void freeMsg(struct RecvMsg_t *pMsg); #endif