13 #ifndef USSERVICEOBJECTS_H
14 #define USSERVICEOBJECTS_H
26 class ServiceObjectsBasePrivate;
42 ServiceObjectsBasePrivate* d;
#define MITKCPPMICROSERVICES_EXPORT
Base class for ServiceObjects providing type-erased service object management.
void UngetService(void *service)
Called by ServiceObjects<S> with S != void to release a service object.
void UngetService(const InterfaceMap &interfaceMap)
Called by the ServiceObjects<void> specialization to release a service InterfaceMap.
ServiceObjectsBase(ModuleContext *context, const ServiceReferenceBase &reference)
Constructs a ServiceObjectsBase instance.
void * GetService() const
Called by ServiceObjects<S> with S != void to get a service object.
ServiceObjectsBase & operator=(const ServiceObjectsBase &other)
Copy assignment operator.
~ServiceObjectsBase()
Destructor.
ServiceObjectsBase(const ServiceObjectsBase &other)
Copy constructor.
InterfaceMap GetServiceInterfaceMap() const
Called by the ServiceObjects<void> specialization to get a service InterfaceMap.
ServiceReferenceBase GetReference() const
Returns the ServiceReferenceBase for this ServiceObjects object.
ServiceReferenceU GetServiceReference() const
Returns the ServiceReference for this ServiceObjects object.
void UngetService(const InterfaceMap &service)
Releases a service object for the referenced service.
InterfaceMap GetService() const
Returns a service object as a InterfaceMap instance for the referenced service.
Allows multiple service objects for a service to be obtained.
S * GetService() const
Returns a service object for the referenced service.
void UngetService(S *service)
Releases a service object for the referenced service.
ServiceReference< S > GetServiceReference() const
Returns the ServiceReference for this ServiceObjects object.
std::map< std::string, void * > InterfaceMap
A map containing interfaces ids and their corresponding service object pointers.