22 #ifndef USSERVICEREFERENCEBASE_H
23 #define USSERVICEREFERENCEBASE_H
27 US_MSVC_PUSH_DISABLE_WARNING(4396)
32 class ServiceRegistrationBasePrivate;
33 class ServiceReferenceBasePrivate;
47 typedef ServiceReferenceBasePrivate* ServiceReferenceBase::*bool_type;
51 ServiceReferenceBase(
const ServiceReferenceBase& ref);
59 operator bool_type()
const;
65 ServiceReferenceBase& operator=(
int null);
67 ~ServiceReferenceBase();
86 Any GetProperty(
const std::string& key)
const;
100 void GetPropertyKeys(std::vector<std::string>& keys)
const;
116 Module* GetModule()
const;
127 void GetUsingModules(std::vector<Module*>& modules)
const;
139 std::string GetInterfaceId()
const;
153 bool IsConvertibleTo(
const std::string& interfaceid)
const;
178 bool operator<(
const ServiceReferenceBase& reference)
const;
180 bool operator==(
const ServiceReferenceBase& reference)
const;
182 ServiceReferenceBase& operator=(
const ServiceReferenceBase& reference);
186 friend class ModulePrivate;
188 friend class ModuleHooks;
189 friend class ServiceHooks;
191 friend class ServiceObjectsBasePrivate;
193 friend class ServiceRegistrationBasePrivate;
194 friend class ServiceListeners;
195 friend class ServiceRegistry;
200 US_HASH_FUNCTION_FRIEND(ServiceReferenceBase);
202 std::size_t
Hash()
const;
209 ServiceReferenceBase();
211 ServiceReferenceBase(ServiceRegistrationBasePrivate* reg);
213 void SetInterfaceId(
const std::string& interfaceId);
215 ServiceReferenceBasePrivate* d;
228 US_HASH_FUNCTION_NAMESPACE_BEGIN
232 US_HASH_FUNCTION_NAMESPACE_END
234 #endif // USSERVICEREFERENCEBASE_H
MITKCORE_EXPORT bool operator==(const InteractionEvent &a, const InteractionEvent &b)
US_MSVC_POP_WARNING US_Core_EXPORT std::ostream & operator<<(std::ostream &os, const us::ServiceReferenceBase &serviceRef)
US_HASH_FUNCTION_NAMESPACE_BEGIN return arg Hash()