diff --git a/Subscription.cpp b/Subscription.cpp index 65152ad..a3c9161 100644 --- a/Subscription.cpp +++ b/Subscription.cpp @@ -13,7 +13,9 @@ namespace core : id(id), mode(mode), owner(&session), handler(NULL) {} Subscription::Subscription(std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler) - : id(id), mode(mode), owner(&session), handler(handler) {} + : id(id), mode(mode), owner(&session), handler(handler) { + + } Subscription::~Subscription() { @@ -53,7 +55,7 @@ namespace core { // std::cout << "(" << handler << ")" << std::endl; if (handler) - handler->process(request, out, session); + handler->process(request, out, session, this); else out << "event:" << request[1] << ":" << request[2] << std::endl; return 1; diff --git a/SubscriptionHandler.h b/SubscriptionHandler.h index 786faf6..978c557 100644 --- a/SubscriptionHandler.h +++ b/SubscriptionHandler.h @@ -8,17 +8,16 @@ namespace core { - + class Subscription; class TCPSession; - class SubscriptionHandler - { + class SubscriptionHandler { public: - virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) { return 0; } - + virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) { return 0; } + virtual int onSubscribe(TCPSession &session) { return 0; } - + }; } diff --git a/SubscriptionManager.h b/SubscriptionManager.h index 38226e7..a3a7ce9 100644 --- a/SubscriptionManager.h +++ b/SubscriptionManager.h @@ -10,19 +10,19 @@ #include namespace core { - + class SubscriptionManager : public Command { - + public: SubscriptionManager(); - + int add(Subscription &subscription); int addHandler(std::string name, SubscriptionHandler *handler); - + int removeSessionSubscriptions(TCPSession &session); - + int processCommand(coreutils::ZString &request, TCPSession &session) override; - + private: Subscription *subscription; std::map subscriptions; @@ -30,7 +30,7 @@ namespace core { Subscription *newSubscription; std::mutex lock; }; - + } #endif diff --git a/TCPSession.cpp b/TCPSession.cpp index 6b58a08..8ed836c 100644 --- a/TCPSession.cpp +++ b/TCPSession.cpp @@ -11,7 +11,7 @@ namespace core { uuid_t uuidObject; uuid_generate(uuidObject); - std::string aaUuid = {uuidObject, uuidObject + 16}; +// std::string aaUuid = {uuidObject, uuidObject + 16}; coreutils::Log(coreutils::LOG_DEBUG_1) << uuidObject; alias = (void *)uuidObject; } @@ -46,11 +46,8 @@ namespace core out << alias; } - void TCPSession::onRegistered() - { + void TCPSession::onRegistered() { onConnected(); -// coreutils::ZString blank(""); -// protocol(blank); send(); if (term) shutdown("termination requested"); diff --git a/TCPSession.h b/TCPSession.h index 1a3c17a..88074d3 100644 --- a/TCPSession.h +++ b/TCPSession.h @@ -78,7 +78,7 @@ namespace core /// /// alias is a void pointer that can be set to point to any object that identifies /// this session uniquely. Using this approach, inheriting objects can determine - /// how it knows the contacts that this server manages. + /// how it knows the contacts that this server manages. /// void *alias; diff --git a/html/SubscriptionHandler_8h_source.html b/html/SubscriptionHandler_8h_source.html index c9c3eed..5a52be3 100644 --- a/html/SubscriptionHandler_8h_source.html +++ b/html/SubscriptionHandler_8h_source.html @@ -75,22 +75,22 @@ $(function() {
8 
9 namespace core
10 {
-
11 
+
11  class Subscription;
12  class TCPSession;
13 
- -
15  {
-
16 
-
17  public:
-
18  virtual int process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) { return 0; }
-
19 
-
20  virtual int onSubscribe(TCPSession &session) { return 0; }
-
21 
-
22  };
-
23 }
-
24 
-
25 #endif
-
Definition: SubscriptionHandler.h:15
+ +
15 
+
16  public:
+
17  virtual int process(coreutils::ZString &request, std::stringstream &out, 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
Definition: TCPSession.h:26
diff --git a/html/SubscriptionManager_8h_source.html b/html/SubscriptionManager_8h_source.html index 91672bf..2b7d672 100644 --- a/html/SubscriptionManager_8h_source.html +++ b/html/SubscriptionManager_8h_source.html @@ -77,19 +77,19 @@ $(function() {
10 #include <vector>
11 
12 namespace core {
-
13 
+
13 
14  class SubscriptionManager : public Command {
-
15 
+
15 
16  public:
-
18 
+
18 
19  int add(Subscription &subscription);
20  int addHandler(std::string name, SubscriptionHandler *handler);
-
21 
+
21 
22  int removeSessionSubscriptions(TCPSession &session);
-
23 
+
23 
24  int processCommand(coreutils::ZString &request, TCPSession &session) override;
-
25 
+
25 
26  private:
27  Subscription *subscription;
28  std::map<std::string, Subscription *> subscriptions;
@@ -97,12 +97,12 @@ $(function() {
30  Subscription *newSubscription;
31  std::mutex lock;
32  };
-
33 
+
33 
34 }
35 
36 #endif
Definition: Command.h:22
-
Definition: SubscriptionHandler.h:15
+
Definition: SubscriptionHandler.h:14
Definition: SubscriptionManager.h:14
int processCommand(coreutils::ZString &request, TCPSession &session) override
Definition: SubscriptionManager.cpp:60
Definition: Subscription.h:15
diff --git a/html/Subscription_8h_source.html b/html/Subscription_8h_source.html index cf36c45..6d917fc 100644 --- a/html/Subscription_8h_source.html +++ b/html/Subscription_8h_source.html @@ -115,7 +115,7 @@ $(function() {
48 }
49 
50 #endif
-
Definition: SubscriptionHandler.h:15
+
Definition: SubscriptionHandler.h:14
Definition: Subscription.h:15
Definition: TCPSession.h:26
diff --git a/html/TCPSession_8h_source.html b/html/TCPSession_8h_source.html index 78993d1..a4ab218 100644 --- a/html/TCPSession_8h_source.html +++ b/html/TCPSession_8h_source.html @@ -154,18 +154,18 @@ $(function() {
Definition: TCPServer.h:28
Definition: TCPSession.h:26
void * alias
Definition: TCPSession.h:84
-
void send()
Definition: TCPSession.cpp:115
+
void send()
Definition: TCPSession.cpp:112
char uuid[37]
Definition: TCPSession.h:76
-
void terminate()
Definition: TCPSession.cpp:121
-
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:100
+
void terminate()
Definition: TCPSession.cpp:118
+
virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:97
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:25
-
void setBlockSize(int size=0)
Definition: TCPSession.cpp:95
-
virtual void onConnected()
Definition: TCPSession.cpp:59
+
void setBlockSize(int size=0)
Definition: TCPSession.cpp:92
+
virtual void onConnected()
Definition: TCPSession.cpp:56
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:30
-
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:108
+
virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:105
std::stringstream out
Definition: TCPSession.h:68
virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:49
-
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:61
+
virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:58
Definition: TCPSocket.h:20
diff --git a/html/classcore_1_1SubscriptionHandler-members.html b/html/classcore_1_1SubscriptionHandler-members.html index a880caf..3571f43 100644 --- a/html/classcore_1_1SubscriptionHandler-members.html +++ b/html/classcore_1_1SubscriptionHandler-members.html @@ -73,7 +73,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
process(coreutils::ZString &request, std::stringstream &out, TCPSession &session) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual
process(coreutils::ZString &request, std::stringstream &out, TCPSession &session, Subscription *subscription) (defined in core::SubscriptionHandler)core::SubscriptionHandlerinlinevirtual