29 #include <rsc/runtime/ContainerIO.h>
30 #include <rsc/logging/Logger.h>
33 #include "../QualityOfServiceSpec.h"
35 #include "../transport/OutConnector.h"
36 #include "../transport/Connector.h"
43 using namespace rsc::logging;
46 using namespace rsb::transport;
49 namespace eventprocessing {
63 OutRouteConfigurator::OutRouteConfigurator(
const Scope& scope) :
65 d->logger = Logger::getLogger(
"rsb.eventprocessing.OutRouteConfigurator");
77 return "OutRouteConfigurator";
81 stream <<
"connectors = " <<
d->connectors <<
", shutdown = "
86 RSCDEBUG(
d->logger,
"Activating");
89 for (ConnectorList::iterator it =
d->connectors.begin(); it
90 !=
d->connectors.end(); ++it) {
91 (*it)->setScope(
d->scope);
97 for (ConnectorList::iterator it =
d->connectors.begin(); it
98 !=
d->connectors.end(); ++it) {
99 RSCDEBUG(
d->logger,
"Adding connector " << *it
100 <<
" to strategy " <<
d->eventSendingStrategy);
101 d->eventSendingStrategy->addConnector(*it);
106 RSCDEBUG(
d->logger,
"Deactivating");
110 for (ConnectorList::iterator it =
d->connectors.begin(); it
111 !=
d->connectors.end(); ++it) {
112 RSCDEBUG(
d->logger,
"Removing connector " << *it
113 <<
" from strategy " <<
d->eventSendingStrategy);
114 if (
d->eventSendingStrategy) {
115 d->eventSendingStrategy->removeConnector(*it);
118 d->eventSendingStrategy.reset();
121 for (ConnectorList::iterator it =
d->connectors.begin(); it
122 !=
d->connectors.end(); ++it) {
130 RSCDEBUG(
d->logger,
"Adding connector " << connector);
131 d->connectors.push_back(connector);
135 RSCDEBUG(
d->logger,
"Removing connector " << connector);
136 d->connectors.remove(connector);
140 RSCDEBUG(
d->logger,
"OutRouteConfigurator::publish(Event) publishing new event: " << e);
141 d->eventSendingStrategy->process(e);
146 for (ConnectorList::iterator it =
d->connectors.begin(); it
147 !=
d->connectors.end(); ++it) {
148 (*it)->setQualityOfServiceSpecs(specs);