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" 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 std::set<std::string> result;
87 for (ConnectorList::iterator it =
d->connectors.begin();
88 it !=
d->connectors.end(); ++it) {
89 result.insert((*it)->getTransportURL());
95 RSCDEBUG(
d->logger,
"Activating");
98 for (ConnectorList::iterator it =
d->connectors.begin(); it
99 !=
d->connectors.end(); ++it) {
100 (*it)->setScope(
d->scope);
106 for (ConnectorList::iterator it =
d->connectors.begin(); it
107 !=
d->connectors.end(); ++it) {
108 RSCDEBUG(
d->logger,
"Adding connector " << *it
109 <<
" to strategy " <<
d->eventSendingStrategy);
110 d->eventSendingStrategy->addConnector(*it);
115 RSCDEBUG(
d->logger,
"Deactivating");
119 for (ConnectorList::iterator it =
d->connectors.begin(); it
120 !=
d->connectors.end(); ++it) {
121 RSCDEBUG(
d->logger,
"Removing connector " << *it
122 <<
" from strategy " <<
d->eventSendingStrategy);
123 if (
d->eventSendingStrategy) {
124 d->eventSendingStrategy->removeConnector(*it);
127 d->eventSendingStrategy.reset();
130 for (ConnectorList::iterator it =
d->connectors.begin(); it
131 !=
d->connectors.end(); ++it) {
139 RSCDEBUG(
d->logger,
"Adding connector " << connector);
140 d->connectors.push_back(connector);
144 RSCDEBUG(
d->logger,
"Removing connector " << connector);
145 d->connectors.remove(connector);
149 RSCDEBUG(
d->logger,
"OutRouteConfigurator::publish(Event) publishing new event: " << e);
150 d->eventSendingStrategy->process(e);
155 for (ConnectorList::iterator it =
d->connectors.begin(); it
156 !=
d->connectors.end(); ++it) {
157 (*it)->setQualityOfServiceSpecs(specs);
Specification of desired quality of service settings for sending and receiving events.
void addConnector(transport::OutConnectorPtr connector)
std::list< transport::OutConnectorPtr > ConnectorList
This event sending strategy just passes incoming events to its associated rsb::transport::OutConnecto...
std::string getClassName() const
void setQualityOfServiceSpecs(const QualityOfServiceSpec &specs)
Define the desired quality of service specifications for published events.
EventSendingStrategyPtr eventSendingStrategy
boost::scoped_ptr< Impl > d
boost::shared_ptr< OutConnector > OutConnectorPtr
void removeConnector(transport::OutConnectorPtr connector)
const std::set< std::string > getTransportURLs() const
void publish(EventPtr e)
Publish event to out ports of this router.
void printContents(std::ostream &stream) const
virtual ~OutRouteConfigurator()
boost::shared_ptr< EventSendingStrategy > EventSendingStrategyPtr
boost::shared_ptr< Event > EventPtr
Scope is a descriptor for a hierarchical channel of the unified bus.
rsc::logging::LoggerPtr logger