Added subscription service capability.
This commit is contained in:
1 parent
0a03b3553d
commit
ec39c1df1a
16 files changed
+220
-97
No files matched your search
@@ -0,0 +1,38 @@
|
||||
#include "Subscription.h"
|
||||
|
||||
namespace core {
|
||||
|
||||
Subscription::Subscription(std::string id, TCPSession &session) : id(id), owner(&session) {}
|
||||
|
||||
int Subscription::subscribe(TCPSession &session) {
|
||||
subscribers.push_back(&session);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int Subscription::unsubscribe(TCPSession &session) {
|
||||
for(auto subscriber = subscribers.begin(); subscriber < subscribers.end(); ++subscriber) {
|
||||
if(*subscriber == &session) {
|
||||
subscribers.erase(subscriber);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Subscription::process(coreutils::ZString &request, std::stringstream &out) {
|
||||
out << "event:" << request[1] << ":" << request[2] << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int Subscription::event(std::stringstream &out) {
|
||||
for(auto subscriber = subscribers.begin(); subscriber < subscribers.end(); ++subscriber)
|
||||
(*subscriber)->write(out.str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
int Subscription::processCommand(coreutils::ZString &request, TCPSession &session) {
|
||||
session.out << "Generic subscription passthrough";
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user