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  bool subInvite(TCPSession &session);
35 
36  // void setHandler(SubscriptionHandler *handlers);
37 
38  // int processCommand(coreutils::ZString &request, TCPSession &session) override;
39 
40  std::string id;
41  std::string mode;
42  TCPSession *owner;
43 
44  SubscriptionHandler *handler;
45 
46  std::vector<TCPSession *> subscribers;
47  };
48 }
49 
50 #endif
Definition: SubscriptionHandler.h:15
Definition: Subscription.h:15
Definition: TCPSession.h:26