OSDN Git Service

Merge DHC codes
[ultramonkey-l7/ultramonkey-l7-v3.git] / snmpagent / MessengerClient.h
1 #ifndef MESSENGERCLIENT_H
2 #define MESSENGERCLIENT_H
3
4 #include <pthread.h>
5 #include "lockedqueue.h"
6 #include "QueueContainer.h"
7
8 enum IPC_STATUS_TAG {
9         UNKNOWN = 0,
10         DISCONNECT,
11         CONNECT
12 };
13
14 typedef lockedqueue< QueueContainer > MessengerQueue;
15
16 class   MessengerClient
17 {
18
19 protected:
20         const char *host;
21         const char *port;
22         bool    endflg;
23         int     socketfd;
24         pthread_t   threadid;
25         IPC_STATUS_TAG  ipcstat;
26         MessengerQueue *messengerQueue;
27
28         MessengerClient(MessengerClient &) {}
29         MessengerClient &operator=(MessengerClient &) {
30                 return *this;
31         }
32         static void    *run(void *);
33
34 public:
35         MessengerClient(MessengerQueue *inqueue)
36                 : endflg(false),
37                   socketfd(-1),
38                   threadid(0),
39                   ipcstat(UNKNOWN),
40                   messengerQueue(inqueue) {}
41         ~MessengerClient() {};
42
43         void    setEndpoint(const char *, const char *);
44         bool    connect();
45         void    close();
46         int     send(size_t , const void *);
47         void    start();
48         void    stop();
49 };
50
51 #endif  //MESSENGERCLIENT_H