My Project
Subscription.h
1 #ifndef __Subscription_h__
2 #define __Subscription_h__
3 
4 #include "SubscriptionHandler.h"
5 #include "ZString.h"
6 #include <string>
7 #include <vector>
8 
9 namespace core
10 {
11 
12  class TCPSession;
13 
15  {
16 
17  public:
18  Subscription(std::string id, std::string mode = "*AUTHOR");
19  Subscription(std::string id, TCPSession &session, std::string mode);
20  Subscription(std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler);
21  virtual ~Subscription();
22 
23  int subscribe(TCPSession &session);
24  int unsubscribe(TCPSession &session);
25 
26  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session);
27 
28  virtual int onSubscribe(TCPSession &session);
29 
30  int event(std::stringstream &out);
31 
32  bool ifSubscriber(TCPSession &session);
33 
34 // void setHandler(SubscriptionHandler *handlers);
35 
36  // int processCommand(coreutils::ZString &request, TCPSession &session) override;
37 
38  std::string id;
39  std::string mode;
40  TCPSession *owner;
41 
42  SubscriptionHandler *handler;
43 
44  std::vector<TCPSession *> subscribers;
45  };
46 }
47 
48 #endif
Definition: SubscriptionHandler.h:15
Definition: Subscription.h:15
Definition: TCPSession.h:24