This class is used to publish and retrieve RSC services.
More...
#include <ServiceManager.hpp>
|
| ServiceManager (void)=delete |
| makes this class pure static
|
|
|
template<class TService > |
static TService::Ptr | GetService (void) |
| Gets a RSC service. The service provider is determined by the proxy factory. More...
|
|
template<class TService > |
static TService::Ptr | GetService (const char *serviceProviderName) |
| Gets a service of the specified service provider. More...
|
|
template<class TService > |
static bool | TryGetService (typename TService::Ptr &result) |
| Tries to get a service of the service provider Arp . More...
|
|
template<class TService > |
static bool | TryGetService (const char *serviceProviderName, typename TService::Ptr &result) |
| Gets a service of the specified service provider. More...
|
|
template<class TService , class TServiceFactory > |
static void | PublishService (void) |
| Registers a RSC service. More...
|
|
template<class TService , class TServiceFactory > |
static void | PublishService (const char *serviceProviderName) |
| Registers a RSC service of the specified service provider. More...
|
|
static void | PublishComponentService (const char *componentName, const char *serviceName, IRscServiceFactory *pServiceFactory) |
| Publishes a service of the specified service or type of the specified component, which serves as service provider. More...
|
|
static Impl & | GetImpl (void) |
|
This class is used to publish and retrieve RSC services.
The implementation of this class is pure static, that is, the class provides only static operations.
◆ GetService() [1/2]
template<class TService >
TService::Ptr Arp::Base::Rsc::ServiceManager::GetService |
( |
const char * |
serviceProviderName | ) |
|
|
inlinestatic |
Gets a service of the specified service provider.
- Template Parameters
-
TService | The service type to get. |
- Parameters
-
serviceProviderName | The name of the service provider or the process name to get the specified service from. |
- Returns
- The pointer of the requested service instance.
- Exceptions
-
InvalidOperationException | If the service could not be found. |
ArgumentException | If the service provider specified by <paramref ="serviceProviderName" /> does not exist. |
This operation is only used by internal infrastructure. Use ServiceManager::GetService(void) instead.
◆ GetService() [2/2]
template<class TService >
TService::Ptr Arp::Base::Rsc::ServiceManager::GetService |
( |
void |
| ) |
|
|
inlinestatic |
Gets a RSC service. The service provider is determined by the proxy factory.
- Template Parameters
-
TService | The service type to get. |
- Returns
- The pointer of the requested service instance.
- Exceptions
-
InvalidOperationException | If the service could not be found. |
◆ PublishComponentService()
void Arp::System::Rsc::ServiceManager::PublishComponentService |
( |
const char * |
componentName, |
|
|
const char * |
serviceName, |
|
|
IRscServiceFactory * |
pServiceFactory |
|
) |
| |
|
static |
Publishes a service of the specified service or type of the specified component, which serves as service provider.
- Parameters
-
componentName | The name of the component to publish the service for. |
serviceName | The name of the service or service type to publish. |
pServiceFactory | The pointer to the factory of the specified service. |
◆ PublishService() [1/2]
template<class TService , class TServiceFactory >
void Arp::Base::Rsc::ServiceManager::PublishService |
( |
const char * |
serviceProviderName | ) |
|
|
inlinestatic |
Registers a RSC service of the specified service provider.
- Parameters
-
serviceProviderName | The name of the service provider. |
- Template Parameters
-
TService | The service type to publish. |
TServiceFactory | The factory type of the specified service. Shall implement the singleton pattern. |
This operation is only used by internal infrastructure. Use ServiceManager::PublishService<T>(void) instead.
◆ PublishService() [2/2]
template<class TService , class TServiceFactory >
void Arp::Base::Rsc::ServiceManager::PublishService |
( |
void |
| ) |
|
|
inlinestatic |
Registers a RSC service.
The service provider name is retrieved from the specified service factory or defaults to the local application/process name.
- Template Parameters
-
TService | The service type to register. |
TServiceFactory | The service factory. Shall implement the singleton pattern. |
◆ TryGetService() [1/2]
template<class TService >
bool Arp::Base::Rsc::ServiceManager::TryGetService |
( |
const char * |
serviceProviderName, |
|
|
typename TService::Ptr & |
result |
|
) |
| |
|
inlinestatic |
Gets a service of the specified service provider.
- Template Parameters
-
TService | The type of the service or service type to get. |
- Parameters
-
serviceProviderName | The name or URL of the service provider or the application name to get the specified service from. |
result | The pointer of the requested service instance or nullptr if the service could not be found. |
- Returns
true
on success, otherwise false
.
This operation is only used by internal infrastructure. Use ServiceManager::TryGetService<T>(result) instead.
◆ TryGetService() [2/2]
template<class TService >
bool Arp::Base::Rsc::ServiceManager::TryGetService |
( |
typename TService::Ptr & |
result | ) |
|
|
inlinestatic |
Tries to get a service of the service provider Arp
.
- Template Parameters
-
TService | The service type to get. |
- Parameters
-
result | The pointer of the requested service instance or nullptr if the service could not be found. |
- Returns
true
on success, otherwise false
.
The documentation for this class was generated from the following files:
- Arp/Base/Rsc/ServiceManager.hpp
- Arp/Base/Rsc/ServiceManager.cpp
- Arp/System/Rsc/ServiceManager.cpp