diff --git a/Subscription.cpp b/Subscription.cpp index ee47ff6..985e0e1 100644 --- a/Subscription.cpp +++ b/Subscription.cpp @@ -24,9 +24,9 @@ namespace core { int Subscription::subscribe(TCPSession &session) { if (handler) - handler->onSubscribe(session); + handler->onSubscribe(session, this); else - onSubscribe(session); + onSubscribe(session, this); subscribers.push_back(&session); return 1; @@ -43,7 +43,6 @@ namespace core { } int Subscription::process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) { -// std::cout << "(" << handler << ")" << std::endl; if (handler) handler->process(request, out, session, this); else @@ -51,33 +50,22 @@ namespace core { return 1; } - int Subscription::event(std::stringstream &out) - { + int Subscription::event(std::stringstream &out) { for (auto subscriber = subscribers.begin(); subscriber < subscribers.end(); ++subscriber) (*subscriber)->write(out.str()); return 1; } - bool Subscription::ifSubscriber(TCPSession &session) - { + bool Subscription::ifSubscriber(TCPSession &session) { return (std::find(subscribers.begin(), subscribers.end(), &session) != subscribers.end()); } - int Subscription::onSubscribe(TCPSession &session) - { + int Subscription::onSubscribe(TCPSession &session, Subscription *subscription) { return 0; } - bool Subscription::subInvite(TCPSession &session) - { - + bool Subscription::subInvite(TCPSession &session) { return 0; } - // void Subscription::setHandler(SubscriptionHandler *handlers) - // { - // handler = handlers; - - // coreutils::Log(coreutils::LOG_DEBUG_1) << "Test Test"; - // } } diff --git a/Subscription.h b/Subscription.h index 524e5c3..aa90737 100644 --- a/Subscription.h +++ b/Subscription.h @@ -24,7 +24,7 @@ namespace core virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session); - virtual int onSubscribe(TCPSession &session); + virtual int onSubscribe(TCPSession &session, Subscription *subscription); int event(std::stringstream &out); diff --git a/SubscriptionHandler.h b/SubscriptionHandler.h index 978c557..ef34d40 100644 --- a/SubscriptionHandler.h +++ b/SubscriptionHandler.h @@ -6,17 +6,15 @@ #include #include -namespace core -{ +namespace core { class Subscription; class TCPSession; class SubscriptionHandler { - public: + public: virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) { return 0; } - - virtual int onSubscribe(TCPSession &session) { return 0; } + virtual int onSubscribe(TCPSession &session, Subscription *subscription) { return 0; } }; } diff --git a/SubscriptionManager.h b/SubscriptionManager.h index 0451009..ab667c0 100644 --- a/SubscriptionManager.h +++ b/SubscriptionManager.h @@ -17,6 +17,7 @@ namespace core { public: SubscriptionManager(); + virtual ~SubscriptionManager(); int add(Subscription &subscription); int removeSessionSubscriptions(TCPSession &session); diff --git a/html/SubscriptionHandler_8h_source.html b/html/SubscriptionHandler_8h_source.html index 5a52be3..c31302d 100644 --- a/html/SubscriptionHandler_8h_source.html +++ b/html/SubscriptionHandler_8h_source.html @@ -73,24 +73,22 @@ $(function() {
6 #include <string>
7 #include <vector>
8 
-
9 namespace core
-
10 {
-
11  class Subscription;
-
12  class TCPSession;
-
13 
- -
15 
-
16  public:
-
17  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) { return 0; }
+
9 namespace core {
+
10  class Subscription;
+
11  class TCPSession;
+
12 
+ +
14 
+
15  public:
+
16  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) { return 0; }
+
17  virtual int onSubscribe(TCPSession &session, Subscription *subscription) { return 0; }
18 
-
19  virtual int onSubscribe(TCPSession &session) { return 0; }
-
20 
-
21  };
-
22 }
-
23 
-
24 #endif
-
Definition: SubscriptionHandler.h:14
-
Definition: Subscription.h:15
+
19  };
+
20 }
+
21 
+
22 #endif
+
Definition: SubscriptionHandler.h:13
+
Definition: Subscription.h:14
Definition: TCPSession.h:26
diff --git a/html/SubscriptionManager_8h_source.html b/html/SubscriptionManager_8h_source.html index 87a4d12..c7e34af 100644 --- a/html/SubscriptionManager_8h_source.html +++ b/html/SubscriptionManager_8h_source.html @@ -84,28 +84,29 @@ $(function() {
17 
18  public:
-
20 
-
21  int add(Subscription &subscription);
-
22  int removeSessionSubscriptions(TCPSession &session);
-
23  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
24 
- -
26 
-
27  private:
-
28  Subscription *subscription;
-
29  std::map<std::string, Subscription *> subscriptions;
-
30  Subscription *newSubscription;
-
31  std::mutex lock;
-
32  };
-
33 
-
34 }
-
35 
-
36 #endif
+
20  virtual ~SubscriptionManager();
+
21 
+
22  int add(Subscription &subscription);
+
23  int removeSessionSubscriptions(TCPSession &session);
+
24  int processCommand(coreutils::ZString &request, TCPSession &session) override;
+
25 
+ +
27 
+
28  private:
+
29  Subscription *subscription;
+
30  std::map<std::string, Subscription *> subscriptions;
+
31  Subscription *newSubscription;
+
32  std::mutex lock;
+
33  };
+
34 
+
35 }
+
36 
+
37 #endif
Definition: Command.h:22
Definition: SubscriptionHandlerFactory.h:9
Definition: SubscriptionManager.h:16
-
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: SubscriptionManager.cpp:51
-
Definition: Subscription.h:15
+
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: SubscriptionManager.cpp:53
+
Definition: Subscription.h:14
Definition: TCPSession.h:26
diff --git a/html/Subscription_8h_source.html b/html/Subscription_8h_source.html index f2787a4..0495a52 100644 --- a/html/Subscription_8h_source.html +++ b/html/Subscription_8h_source.html @@ -78,41 +78,40 @@ $(function() {
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
+
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
diff --git a/html/classcore_1_1Subscription-members.html b/html/classcore_1_1Subscription-members.html index d684f14..b29f187 100644 --- a/html/classcore_1_1Subscription-members.html +++ b/html/classcore_1_1Subscription-members.html @@ -77,7 +77,7 @@ $(function() { id (defined in core::Subscription)core::Subscription ifSubscriber(TCPSession &session) (defined in core::Subscription)core::Subscription mode (defined in core::Subscription)core::Subscription - onSubscribe(TCPSession &session) (defined in core::Subscription)core::Subscriptionvirtual + onSubscribe(TCPSession &session, Subscription *subscription) (defined in core::Subscription)core::Subscriptionvirtual owner (defined in core::Subscription)core::Subscription process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) (defined in core::Subscription)core::Subscriptionvirtual subInvite(TCPSession &session) (defined in core::Subscription)core::Subscription diff --git a/html/classcore_1_1Subscription.html b/html/classcore_1_1Subscription.html index cd2e029..8512099 100644 --- a/html/classcore_1_1Subscription.html +++ b/html/classcore_1_1Subscription.html @@ -115,9 +115,9 @@ int unsubscribe ( virtual int process (coreutils::ZString &request, std::stringstream &out, TCPSession &session)   - -virtual int onSubscribe (TCPSession &session) -  + +virtual int onSubscribe (TCPSession &session, Subscription *subscription) +  int event (std::stringstream &out)   diff --git a/html/classcore_1_1SubscriptionHandler-members.html b/html/classcore_1_1SubscriptionHandler-members.html index 3571f43..ca1f0a7 100644 --- a/html/classcore_1_1SubscriptionHandler-members.html +++ b/html/classcore_1_1SubscriptionHandler-members.html @@ -72,7 +72,7 @@ $(function() {

This is the complete list of members for core::SubscriptionHandler, including all inherited members.

- +
onSubscribe(TCPSession &session) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual
onSubscribe(TCPSession &session, Subscription *subscription) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual
process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual
diff --git a/html/classcore_1_1SubscriptionHandler.html b/html/classcore_1_1SubscriptionHandler.html index c10339f..122111e 100644 --- a/html/classcore_1_1SubscriptionHandler.html +++ b/html/classcore_1_1SubscriptionHandler.html @@ -78,9 +78,9 @@ Public Member Functions virtual int process (coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription)   - -virtual int onSubscribe (TCPSession &session) -  + +virtual int onSubscribe (TCPSession &session, Subscription *subscription) + 
The documentation for this class was generated from the following file: