wangzhengquan
2021-01-11 73ebfbc4f3fce4f7197b16b74ed4d6abaa9367b5
src/socket/shm_mod_socket.h
@@ -11,7 +11,19 @@
#include <set>
#include "socket_def.h"
#define BUS_HEAD_SIZE (64 + 2 * sizeof(uint32_t))
class BusServerSocket;
struct bus_head_t
{
   char action[64];
   uint32_t topic_size;
   uint32_t content_size;
};
class ShmModSocket {
friend class BusServerSocket;
private:
   shm_socket_t *shm_socket;
  socket_mod_t mod;
@@ -26,8 +38,17 @@
   int  _desub_( char *topic, int size, int key, struct timespec *timeout, int flags);
   static int get_bus_sendbuf(bus_head_t &request_head, void *topic_buf, int topic_size, void *content_buf, int content_size, void **retbuf);
public:
   static size_t remove_keys(int keys[], size_t length);
  // bus header 编码为网络传输的字节
  static void * encode_bus_head(bus_head_t & bushead);
  // 解码 bus  header
  static bus_head_t  decode_bus_head(void *headbs);
public:
   ShmModSocket();
   ~ShmModSocket();