Repaired subscription functions with new Subscription object parameters.

This commit is contained in:
Brad Arant 2023-06-11 20:21:49 -07:00
parent 5f61a2280d
commit b4fd28e41a
3 changed files with 8 additions and 13 deletions

View File

@ -12,7 +12,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) {
// coreutils::Log(coreutils::LOG_DEBUG_3) << "Subscription '" << id << "' with handler '" << handler->name << "'";
}
Subscription::~Subscription() { Subscription::~Subscription() {
std::stringstream out; std::stringstream out;

View File

@ -7,14 +7,6 @@
namespace core { namespace core {
SubscriptionManager::SubscriptionManager() {
factory = new SubscriptionHandlerFactory();
}
SubscriptionManager::~SubscriptionManager() {
delete factory;
}
int SubscriptionManager::add(Subscription &subscription) { int SubscriptionManager::add(Subscription &subscription) {
lock.lock(); lock.lock();
subscriptions.insert(std::make_pair(subscription.id, &subscription)); subscriptions.insert(std::make_pair(subscription.id, &subscription));
@ -56,7 +48,10 @@ namespace core {
int SubscriptionManager::processCommand(coreutils::ZString &request, TCPSession &session) { int SubscriptionManager::processCommand(coreutils::ZString &request, TCPSession &session) {
if (request[0].equals("publish")) { if (request[0].equals("publish")) {
SubscriptionHandler *handler = factory->getSubscriptionHandler(request[3].str()); SubscriptionHandler *handler = NULL;
if(request.getList().size() > 3) {
factory->getSubscriptionHandler(request[3].str());
}
newSubscription = new Subscription(request[1].str(), session, request[2].str(), handler); newSubscription = new Subscription(request[1].str(), session, request[2].str(), handler);
subscriptions.insert(std::make_pair(request[1].str(), newSubscription)); subscriptions.insert(std::make_pair(request[1].str(), newSubscription));
return 1; return 1;

View File

@ -16,14 +16,12 @@ namespace core {
class SubscriptionManager : public Command { class SubscriptionManager : public Command {
public: public:
SubscriptionManager();
virtual ~SubscriptionManager();
int add(Subscription &subscription); int add(Subscription &subscription);
int removeSessionSubscriptions(TCPSession &session); int removeSessionSubscriptions(TCPSession &session);
int processCommand(coreutils::ZString &request, TCPSession &session) override; int processCommand(coreutils::ZString &request, TCPSession &session) override;
SubscriptionHandlerFactory *factory; SubscriptionHandlerFactory *factory = NULL;
private: private:
Subscription *subscription; Subscription *subscription;