32 #include <boost/shared_ptr.hpp>
33 #include <boost/thread/recursive_mutex.hpp>
35 #include <rsc/logging/Logger.h>
36 #include <rsc/runtime/TypeStringTools.h>
37 #include <rsc/patterns/Singleton.h>
38 #include <rsc/config/OptionHandler.h>
39 #include <rsc/plugins/Manager.h>
41 #include "rsb/rsbexports.h"
71 class RSB_EXPORT
Factory:
private rsc::patterns::Singleton<Factory> {
97 template<
class DataType>
102 const std::string& dataType
105 createOutConnectors(config), scope, config, dataType));
122 const std::string& dataType
125 =
getFactory().getDefaultParticipantConfig());
216 rsc::plugins::ManagerPtr getPluginManager()
const;
218 friend class rsc::patterns::Singleton<
Factory>;
226 static Factory& getInstanceBase();
239 std::vector<transport::OutConnectorPtr>
242 std::vector<transport::InPullConnectorPtr>
245 std::vector<transport::InPushConnectorPtr>
248 void configureSubsystem(rsc::config::OptionHandler& handler,
249 const std::string& environmentVariablePrefix =
"RSB_");
patterns::RemoteServerPtr createRemoteServer(const Scope &scope)
Creates and returns a RemoteServer object for the server at Scope scope.
ServicePtr createService(const Scope &scope)
Creates and returns a Service instance operating on Scope scope.
boost::shared_ptr< Reader > ReaderPtr
Factory & getFactory()
Returns a factory for client-level RSB objects.
Informer< DataType >::Ptr createInformer(const Scope &scope, const ParticipantConfig &config=getFactory().getDefaultParticipantConfig(), const std::string &dataType=detail::TypeName< DataType >()())
Creates and returns a new Informer that publishes Event s under the Scope scope.
boost::shared_ptr< Server > ServerPtr
boost::shared_ptr< Listener > ListenerPtr
ReaderPtr createReader(const Scope &scope, const ParticipantConfig &config)
Creates and returns a new Reader object for Scope scope.
ListenerPtr createListener(const Scope &scope, const ParticipantConfig &config)
Creates and returns a new Listener for the Scope scope.
DEPRECATED(RSB_EXPORT Repository< std::string >::Ptr stringConverterRepository())
Factory for RSB user-level domain objects for communication patterns.
boost::shared_ptr< Service > ServicePtr
ParticipantConfig defaultConfig
Always acquire configMutex before reading or writing the config.
patterns::ServerPtr createServer(const Scope &scope)
Creates and returns a Server object that exposes methods under the Scope scope.
A class describing the configuration of Participant instances.
boost::shared_ptr< InformerBase > InformerBasePtr
boost::shared_ptr< RemoteServer > RemoteServerPtr
rsc::logging::LoggerPtr logger
rsc::plugins::ManagerPtr pluginManager
boost::recursive_mutex configMutex
Scope is a descriptor for a hierarchical channel of the unified bus.