Added subscription to handler list so subscription can be accessed from handler.

This commit is contained in:
Brad Arant 2023-06-09 20:16:04 -07:00
parent cfa70c5863
commit 0ef782a11c
12 changed files with 55 additions and 57 deletions

View File

@ -13,7 +13,9 @@ namespace core
: id(id), mode(mode), owner(&session), handler(NULL) {} : id(id), mode(mode), owner(&session), handler(NULL) {}
Subscription::Subscription(std::string id, TCPSession &session, std::string mode, SubscriptionHandler *handler) 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() Subscription::~Subscription()
{ {
@ -53,7 +55,7 @@ namespace core
{ {
// std::cout << "(" << handler << ")" << std::endl; // std::cout << "(" << handler << ")" << std::endl;
if (handler) if (handler)
handler->process(request, out, session); handler->process(request, out, session, this);
else else
out << "event:" << request[1] << ":" << request[2] << std::endl; out << "event:" << request[1] << ":" << request[2] << std::endl;
return 1; return 1;

View File

@ -8,17 +8,16 @@
namespace core namespace core
{ {
class Subscription;
class TCPSession; class TCPSession;
class SubscriptionHandler class SubscriptionHandler {
{
public: 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; } virtual int onSubscribe(TCPSession &session) { return 0; }
}; };
} }

View File

@ -10,19 +10,19 @@
#include <vector> #include <vector>
namespace core { namespace core {
class SubscriptionManager : public Command { class SubscriptionManager : public Command {
public: public:
SubscriptionManager(); SubscriptionManager();
int add(Subscription &subscription); int add(Subscription &subscription);
int addHandler(std::string name, SubscriptionHandler *handler); int addHandler(std::string name, SubscriptionHandler *handler);
int removeSessionSubscriptions(TCPSession &session); int removeSessionSubscriptions(TCPSession &session);
int processCommand(coreutils::ZString &request, TCPSession &session) override; int processCommand(coreutils::ZString &request, TCPSession &session) override;
private: private:
Subscription *subscription; Subscription *subscription;
std::map<std::string, Subscription *> subscriptions; std::map<std::string, Subscription *> subscriptions;
@ -30,7 +30,7 @@ namespace core {
Subscription *newSubscription; Subscription *newSubscription;
std::mutex lock; std::mutex lock;
}; };
} }
#endif #endif

View File

@ -11,7 +11,7 @@ namespace core
{ {
uuid_t uuidObject; uuid_t uuidObject;
uuid_generate(uuidObject); uuid_generate(uuidObject);
std::string aaUuid = {uuidObject, uuidObject + 16}; // std::string aaUuid = {uuidObject, uuidObject + 16};
coreutils::Log(coreutils::LOG_DEBUG_1) << uuidObject; coreutils::Log(coreutils::LOG_DEBUG_1) << uuidObject;
alias = (void *)uuidObject; alias = (void *)uuidObject;
} }
@ -46,11 +46,8 @@ namespace core
out << alias; out << alias;
} }
void TCPSession::onRegistered() void TCPSession::onRegistered() {
{
onConnected(); onConnected();
// coreutils::ZString blank("");
// protocol(blank);
send(); send();
if (term) if (term)
shutdown("termination requested"); shutdown("termination requested");

View File

@ -78,7 +78,7 @@ namespace core
/// ///
/// alias is a void pointer that can be set to point to any object that identifies /// 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 /// 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; void *alias;

View File

@ -75,22 +75,22 @@ $(function() {
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span>core</div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">namespace </span>core</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">class </span>Subscription;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">class </span>TCPSession;</div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">class </span>TCPSession;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classcore_1_1SubscriptionHandler.html"> 14</a></span>&#160; <span class="keyword">class </span><a class="code" href="classcore_1_1SubscriptionHandler.html">SubscriptionHandler</a></div> <div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classcore_1_1SubscriptionHandler.html"> 14</a></span>&#160; <span class="keyword">class </span><a class="code" href="classcore_1_1SubscriptionHandler.html">SubscriptionHandler</a> {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">public</span>:</div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> process(coreutils::ZString &amp;request, std::stringstream &amp;out, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session, <a class="code" href="classcore_1_1Subscription.html">Subscription</a> *subscription) { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> process(coreutils::ZString &amp;request, std::stringstream &amp;out, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session) { <span class="keywordflow">return</span> 0; }</div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> onSubscribe(<a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session) { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> onSubscribe(<a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session) { <span class="keywordflow">return</span> 0; }</div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; };</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; };</div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div> <div class="ttc" id="aclasscore_1_1SubscriptionHandler_html"><div class="ttname"><a href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></div><div class="ttdef"><b>Definition:</b> SubscriptionHandler.h:14</div></div>
<div class="ttc" id="aclasscore_1_1SubscriptionHandler_html"><div class="ttname"><a href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></div><div class="ttdef"><b>Definition:</b> SubscriptionHandler.h:15</div></div> <div class="ttc" id="aclasscore_1_1Subscription_html"><div class="ttname"><a href="classcore_1_1Subscription.html">core::Subscription</a></div><div class="ttdef"><b>Definition:</b> Subscription.h:15</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:26</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:26</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -77,19 +77,19 @@ $(function() {
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>core {</div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">namespace </span>core {</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classcore_1_1SubscriptionManager.html"> 14</a></span>&#160; <span class="keyword">class </span><a class="code" href="classcore_1_1SubscriptionManager.html">SubscriptionManager</a> : <span class="keyword">public</span> <a class="code" href="classcore_1_1Command.html">Command</a> {</div> <div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classcore_1_1SubscriptionManager.html"> 14</a></span>&#160; <span class="keyword">class </span><a class="code" href="classcore_1_1SubscriptionManager.html">SubscriptionManager</a> : <span class="keyword">public</span> <a class="code" href="classcore_1_1Command.html">Command</a> {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">public</span>:</div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="classcore_1_1SubscriptionManager.html">SubscriptionManager</a>();</div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="classcore_1_1SubscriptionManager.html">SubscriptionManager</a>();</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">int</span> add(<a class="code" href="classcore_1_1Subscription.html">Subscription</a> &amp;subscription);</div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">int</span> add(<a class="code" href="classcore_1_1Subscription.html">Subscription</a> &amp;subscription);</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">int</span> addHandler(std::string name, <a class="code" href="classcore_1_1SubscriptionHandler.html">SubscriptionHandler</a> *handler);</div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">int</span> addHandler(std::string name, <a class="code" href="classcore_1_1SubscriptionHandler.html">SubscriptionHandler</a> *handler);</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span> removeSessionSubscriptions(<a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session);</div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span> removeSessionSubscriptions(<a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session);</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae">processCommand</a>(coreutils::ZString &amp;request, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session) <span class="keyword">override</span>;</div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae">processCommand</a>(coreutils::ZString &amp;request, <a class="code" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">private</span>:</div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="classcore_1_1Subscription.html">Subscription</a> *subscription;</div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="classcore_1_1Subscription.html">Subscription</a> *subscription;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; std::map&lt;std::string, Subscription *&gt; subscriptions;</div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; std::map&lt;std::string, Subscription *&gt; subscriptions;</div>
@ -97,12 +97,12 @@ $(function() {
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classcore_1_1Subscription.html">Subscription</a> *newSubscription;</div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classcore_1_1Subscription.html">Subscription</a> *newSubscription;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::mutex lock;</div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::mutex lock;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; };</div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; };</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclasscore_1_1Command_html"><div class="ttname"><a href="classcore_1_1Command.html">core::Command</a></div><div class="ttdef"><b>Definition:</b> Command.h:22</div></div> <div class="ttc" id="aclasscore_1_1Command_html"><div class="ttname"><a href="classcore_1_1Command.html">core::Command</a></div><div class="ttdef"><b>Definition:</b> Command.h:22</div></div>
<div class="ttc" id="aclasscore_1_1SubscriptionHandler_html"><div class="ttname"><a href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></div><div class="ttdef"><b>Definition:</b> SubscriptionHandler.h:15</div></div> <div class="ttc" id="aclasscore_1_1SubscriptionHandler_html"><div class="ttname"><a href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></div><div class="ttdef"><b>Definition:</b> SubscriptionHandler.h:14</div></div>
<div class="ttc" id="aclasscore_1_1SubscriptionManager_html"><div class="ttname"><a href="classcore_1_1SubscriptionManager.html">core::SubscriptionManager</a></div><div class="ttdef"><b>Definition:</b> SubscriptionManager.h:14</div></div> <div class="ttc" id="aclasscore_1_1SubscriptionManager_html"><div class="ttname"><a href="classcore_1_1SubscriptionManager.html">core::SubscriptionManager</a></div><div class="ttdef"><b>Definition:</b> SubscriptionManager.h:14</div></div>
<div class="ttc" id="aclasscore_1_1SubscriptionManager_html_aaa30bf772ad72b3f319a790662e4f8ae"><div class="ttname"><a href="classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae">core::SubscriptionManager::processCommand</a></div><div class="ttdeci">int processCommand(coreutils::ZString &amp;request, TCPSession &amp;session) override</div><div class="ttdef"><b>Definition:</b> SubscriptionManager.cpp:60</div></div> <div class="ttc" id="aclasscore_1_1SubscriptionManager_html_aaa30bf772ad72b3f319a790662e4f8ae"><div class="ttname"><a href="classcore_1_1SubscriptionManager.html#aaa30bf772ad72b3f319a790662e4f8ae">core::SubscriptionManager::processCommand</a></div><div class="ttdeci">int processCommand(coreutils::ZString &amp;request, TCPSession &amp;session) override</div><div class="ttdef"><b>Definition:</b> SubscriptionManager.cpp:60</div></div>
<div class="ttc" id="aclasscore_1_1Subscription_html"><div class="ttname"><a href="classcore_1_1Subscription.html">core::Subscription</a></div><div class="ttdef"><b>Definition:</b> Subscription.h:15</div></div> <div class="ttc" id="aclasscore_1_1Subscription_html"><div class="ttname"><a href="classcore_1_1Subscription.html">core::Subscription</a></div><div class="ttdef"><b>Definition:</b> Subscription.h:15</div></div>

View File

@ -115,7 +115,7 @@ $(function() {
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclasscore_1_1SubscriptionHandler_html"><div class="ttname"><a href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></div><div class="ttdef"><b>Definition:</b> SubscriptionHandler.h:15</div></div> <div class="ttc" id="aclasscore_1_1SubscriptionHandler_html"><div class="ttname"><a href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></div><div class="ttdef"><b>Definition:</b> SubscriptionHandler.h:14</div></div>
<div class="ttc" id="aclasscore_1_1Subscription_html"><div class="ttname"><a href="classcore_1_1Subscription.html">core::Subscription</a></div><div class="ttdef"><b>Definition:</b> Subscription.h:15</div></div> <div class="ttc" id="aclasscore_1_1Subscription_html"><div class="ttname"><a href="classcore_1_1Subscription.html">core::Subscription</a></div><div class="ttdef"><b>Definition:</b> Subscription.h:15</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:26</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:26</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->

View File

@ -154,18 +154,18 @@ $(function() {
<div class="ttc" id="aclasscore_1_1TCPServer_html"><div class="ttname"><a href="classcore_1_1TCPServer.html">core::TCPServer</a></div><div class="ttdef"><b>Definition:</b> TCPServer.h:28</div></div> <div class="ttc" id="aclasscore_1_1TCPServer_html"><div class="ttname"><a href="classcore_1_1TCPServer.html">core::TCPServer</a></div><div class="ttdef"><b>Definition:</b> TCPServer.h:28</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:26</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html"><div class="ttname"><a href="classcore_1_1TCPSession.html">core::TCPSession</a></div><div class="ttdef"><b>Definition:</b> TCPSession.h:26</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a014ae6b1465bf36606763703aa8a930d"><div class="ttname"><a href="classcore_1_1TCPSession.html#a014ae6b1465bf36606763703aa8a930d">core::TCPSession::alias</a></div><div class="ttdeci">void * alias</div><div class="ttdef"><b>Definition:</b> TCPSession.h:84</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a014ae6b1465bf36606763703aa8a930d"><div class="ttname"><a href="classcore_1_1TCPSession.html#a014ae6b1465bf36606763703aa8a930d">core::TCPSession::alias</a></div><div class="ttdeci">void * alias</div><div class="ttdef"><b>Definition:</b> TCPSession.h:84</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a2b09eeafef5e44009a77d9da43e3b889"><div class="ttname"><a href="classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889">core::TCPSession::send</a></div><div class="ttdeci">void send()</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:115</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a2b09eeafef5e44009a77d9da43e3b889"><div class="ttname"><a href="classcore_1_1TCPSession.html#a2b09eeafef5e44009a77d9da43e3b889">core::TCPSession::send</a></div><div class="ttdeci">void send()</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:112</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a2ccd4968f5c53d1c16a57e04081db692"><div class="ttname"><a href="classcore_1_1TCPSession.html#a2ccd4968f5c53d1c16a57e04081db692">core::TCPSession::uuid</a></div><div class="ttdeci">char uuid[37]</div><div class="ttdef"><b>Definition:</b> TCPSession.h:76</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a2ccd4968f5c53d1c16a57e04081db692"><div class="ttname"><a href="classcore_1_1TCPSession.html#a2ccd4968f5c53d1c16a57e04081db692">core::TCPSession::uuid</a></div><div class="ttdeci">char uuid[37]</div><div class="ttdef"><b>Definition:</b> TCPSession.h:76</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a34936745e8d7669d5400e78d353a56d3"><div class="ttname"><a href="classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3">core::TCPSession::terminate</a></div><div class="ttdeci">void terminate()</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:121</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a34936745e8d7669d5400e78d353a56d3"><div class="ttname"><a href="classcore_1_1TCPSession.html#a34936745e8d7669d5400e78d353a56d3">core::TCPSession::terminate</a></div><div class="ttdeci">void terminate()</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:118</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a3d9e0f14e7d24357fd1950b3f9b4eaff"><div class="ttname"><a href="classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff">core::TCPSession::onLineReceived</a></div><div class="ttdeci">virtual void onLineReceived(coreutils::ZString &amp;line)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:100</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a3d9e0f14e7d24357fd1950b3f9b4eaff"><div class="ttname"><a href="classcore_1_1TCPSession.html#a3d9e0f14e7d24357fd1950b3f9b4eaff">core::TCPSession::onLineReceived</a></div><div class="ttdeci">virtual void onLineReceived(coreutils::ZString &amp;line)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:97</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a50037cbfc515650e04054e5481785981"><div class="ttname"><a href="classcore_1_1TCPSession.html#a50037cbfc515650e04054e5481785981">core::TCPSession::output</a></div><div class="ttdeci">virtual void output(std::stringstream &amp;data)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:25</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a50037cbfc515650e04054e5481785981"><div class="ttname"><a href="classcore_1_1TCPSession.html#a50037cbfc515650e04054e5481785981">core::TCPSession::output</a></div><div class="ttdeci">virtual void output(std::stringstream &amp;data)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:25</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a836fb3fd5ee543ebc93262a980ae88b5"><div class="ttname"><a href="classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5">core::TCPSession::setBlockSize</a></div><div class="ttdeci">void setBlockSize(int size=0)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:95</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a836fb3fd5ee543ebc93262a980ae88b5"><div class="ttname"><a href="classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5">core::TCPSession::setBlockSize</a></div><div class="ttdeci">void setBlockSize(int size=0)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:92</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a8719952f7bb00bf7239ec40aa2868626"><div class="ttname"><a href="classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626">core::TCPSession::onConnected</a></div><div class="ttdeci">virtual void onConnected()</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:59</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a8719952f7bb00bf7239ec40aa2868626"><div class="ttname"><a href="classcore_1_1TCPSession.html#a8719952f7bb00bf7239ec40aa2868626">core::TCPSession::onConnected</a></div><div class="ttdeci">virtual void onConnected()</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:56</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a98a65da2346b79bee659fca6902e94c7"><div class="ttname"><a href="classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7">core::TCPSession::protocol</a></div><div class="ttdeci">virtual void protocol(coreutils::ZString &amp;data)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:30</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a98a65da2346b79bee659fca6902e94c7"><div class="ttname"><a href="classcore_1_1TCPSession.html#a98a65da2346b79bee659fca6902e94c7">core::TCPSession::protocol</a></div><div class="ttdeci">virtual void protocol(coreutils::ZString &amp;data)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:30</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_a9c996cbbfa2e592c23cf67ed8b15a32a"><div class="ttname"><a href="classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a">core::TCPSession::onBlockReceived</a></div><div class="ttdeci">virtual void onBlockReceived(coreutils::ZString &amp;block)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:108</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_a9c996cbbfa2e592c23cf67ed8b15a32a"><div class="ttname"><a href="classcore_1_1TCPSession.html#a9c996cbbfa2e592c23cf67ed8b15a32a">core::TCPSession::onBlockReceived</a></div><div class="ttdeci">virtual void onBlockReceived(coreutils::ZString &amp;block)</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:105</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_abb302bbb3d7e7bc75490c736364f0d4d"><div class="ttname"><a href="classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d">core::TCPSession::out</a></div><div class="ttdeci">std::stringstream out</div><div class="ttdef"><b>Definition:</b> TCPSession.h:68</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_abb302bbb3d7e7bc75490c736364f0d4d"><div class="ttname"><a href="classcore_1_1TCPSession.html#abb302bbb3d7e7bc75490c736364f0d4d">core::TCPSession::out</a></div><div class="ttdeci">std::stringstream out</div><div class="ttdef"><b>Definition:</b> TCPSession.h:68</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_aed4ed499b978bcea57a8efefe929fc98"><div class="ttname"><a href="classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98">core::TCPSession::onRegistered</a></div><div class="ttdeci">virtual void onRegistered() override</div><div class="ttdoc">Called after the socket has been registered with epoll processing.</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:49</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_aed4ed499b978bcea57a8efefe929fc98"><div class="ttname"><a href="classcore_1_1TCPSession.html#aed4ed499b978bcea57a8efefe929fc98">core::TCPSession::onRegistered</a></div><div class="ttdeci">virtual void onRegistered() override</div><div class="ttdoc">Called after the socket has been registered with epoll processing.</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:49</div></div>
<div class="ttc" id="aclasscore_1_1TCPSession_html_afc2d2a92bc65e1e5122a93d120253a1d"><div class="ttname"><a href="classcore_1_1TCPSession.html#afc2d2a92bc65e1e5122a93d120253a1d">core::TCPSession::onDataReceived</a></div><div class="ttdeci">virtual void onDataReceived(coreutils::ZString &amp;data) override</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:61</div></div> <div class="ttc" id="aclasscore_1_1TCPSession_html_afc2d2a92bc65e1e5122a93d120253a1d"><div class="ttname"><a href="classcore_1_1TCPSession.html#afc2d2a92bc65e1e5122a93d120253a1d">core::TCPSession::onDataReceived</a></div><div class="ttdeci">virtual void onDataReceived(coreutils::ZString &amp;data) override</div><div class="ttdef"><b>Definition:</b> TCPSession.cpp:58</div></div>
<div class="ttc" id="aclasscore_1_1TCPSocket_html"><div class="ttname"><a href="classcore_1_1TCPSocket.html">core::TCPSocket</a></div><div class="ttdef"><b>Definition:</b> TCPSocket.h:20</div></div> <div class="ttc" id="aclasscore_1_1TCPSocket_html"><div class="ttname"><a href="classcore_1_1TCPSocket.html">core::TCPSocket</a></div><div class="ttdef"><b>Definition:</b> TCPSocket.h:20</div></div>
</div><!-- fragment --></div><!-- contents --> </div><!-- fragment --></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->

View File

@ -73,7 +73,7 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a>, including all inherited members.</p> <p>This is the complete list of members for <a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a>, including all inherited members.</p>
<table class="directory"> <table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>onSubscribe</b>(TCPSession &amp;session) (defined in <a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a>)</td><td class="entry"><a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>onSubscribe</b>(TCPSession &amp;session) (defined in <a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a>)</td><td class="entry"><a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>process</b>(coreutils::ZString &amp;request, std::stringstream &amp;out, TCPSession &amp;session) (defined in <a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a>)</td><td class="entry"><a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>process</b>(coreutils::ZString &amp;request, std::stringstream &amp;out, TCPSession &amp;session, Subscription *subscription) (defined in <a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a>)</td><td class="entry"><a class="el" href="classcore_1_1SubscriptionHandler.html">core::SubscriptionHandler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>

View File

@ -75,9 +75,9 @@ $(function() {
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr> Public Member Functions</h2></td></tr>
<tr class="memitem:a652ee5183fda91877b274617d585a28b"><td class="memItemLeft" align="right" valign="top"><a id="a652ee5183fda91877b274617d585a28b"></a> <tr class="memitem:afbf8d787ed2242122b0a63f45a668922"><td class="memItemLeft" align="right" valign="top"><a id="afbf8d787ed2242122b0a63f45a668922"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>process</b> (coreutils::ZString &amp;request, std::stringstream &amp;out, <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session)</td></tr> virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>process</b> (coreutils::ZString &amp;request, std::stringstream &amp;out, <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session, <a class="el" href="classcore_1_1Subscription.html">Subscription</a> *subscription)</td></tr>
<tr class="separator:a652ee5183fda91877b274617d585a28b"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:afbf8d787ed2242122b0a63f45a668922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac969757e0ea9552e505eb483ea30a8a0"><td class="memItemLeft" align="right" valign="top"><a id="ac969757e0ea9552e505eb483ea30a8a0"></a> <tr class="memitem:ac969757e0ea9552e505eb483ea30a8a0"><td class="memItemLeft" align="right" valign="top"><a id="ac969757e0ea9552e505eb483ea30a8a0"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>onSubscribe</b> (<a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session)</td></tr> virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>onSubscribe</b> (<a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session)</td></tr>
<tr class="separator:ac969757e0ea9552e505eb483ea30a8a0"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ac969757e0ea9552e505eb483ea30a8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>

View File

@ -3,8 +3,8 @@
\doxysubsection*{Public Member Functions} \doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize} \begin{DoxyCompactItemize}
\item \item
\mbox{\Hypertarget{classcore_1_1SubscriptionHandler_a652ee5183fda91877b274617d585a28b}\label{classcore_1_1SubscriptionHandler_a652ee5183fda91877b274617d585a28b}} \mbox{\Hypertarget{classcore_1_1SubscriptionHandler_afbf8d787ed2242122b0a63f45a668922}\label{classcore_1_1SubscriptionHandler_afbf8d787ed2242122b0a63f45a668922}}
virtual int {\bfseries process} (coreutils\+::\+ZString \&request, std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) virtual int {\bfseries process} (coreutils\+::\+ZString \&request, std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} $\ast$subscription)
\item \item
\mbox{\Hypertarget{classcore_1_1SubscriptionHandler_ac969757e0ea9552e505eb483ea30a8a0}\label{classcore_1_1SubscriptionHandler_ac969757e0ea9552e505eb483ea30a8a0}} \mbox{\Hypertarget{classcore_1_1SubscriptionHandler_ac969757e0ea9552e505eb483ea30a8a0}\label{classcore_1_1SubscriptionHandler_ac969757e0ea9552e505eb483ea30a8a0}}
virtual int {\bfseries on\+Subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) virtual int {\bfseries on\+Subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session)