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  std::string id;
37  std::string mode;
38  TCPSession *owner;
39 
40  SubscriptionHandler *handler;
41 
42  std::vector<TCPSession *> subscribers;
43  };
44 }
45 
46 #endif
Definition: SubscriptionHandler.h:14
Definition: Subscription.h:15
Definition: TCPSession.h:26