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 
14  class Subscription {
15 
16  public:
17  Subscription(std::string id, std::string mode = "*AUTHOR");
18  Subscription(std::string id, TCPSession &session, std::string mode);
19  Subscription(std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler);
20  virtual ~Subscription();
21 
22  int subscribe(TCPSession &session);
23  int unsubscribe(TCPSession &session);
24 
25  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session);
26 
27  virtual int onSubscribe(TCPSession &session, Subscription *subscription);
28 
29  int event(std::stringstream &out);
30 
31  bool ifSubscriber(TCPSession &session);
32 
33  bool subInvite(TCPSession &session);
34 
35  std::string id;
36  std::string mode;
37  TCPSession *owner;
38 
39  SubscriptionHandler *handler;
40 
41  std::vector<TCPSession *> subscribers;
42  };
43 }
44 
45 #endif
Definition: SubscriptionHandler.h:13
Definition: Subscription.h:14
Definition: TCPSession.h:26