00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_SECURITY_SERVICEREGISTRY_H_
00019 #define _DECAF_INTERNAL_SECURITY_SERVICEREGISTRY_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <string>
00024
00025 namespace decaf {
00026 namespace security {
00027 class Provider;
00028 class ProviderService;
00029 }
00030 namespace internal {
00031 namespace security {
00032
00033 class ServiceRegistryImpl;
00034
00039 class DECAF_API ServiceRegistry {
00040 private:
00041
00042 ServiceRegistryImpl* impl;
00043
00044 private:
00045
00046 ServiceRegistry(const ServiceRegistry&);
00047 ServiceRegistry& operator=(const ServiceRegistry&);
00048
00049 public:
00050
00051 ServiceRegistry();
00052
00053 virtual ~ServiceRegistry();
00054
00062 void addProvider(const decaf::security::Provider* provider);
00063
00074 decaf::security::ProviderService* getService(const std::string& name);
00075
00076 };
00077
00078 }}}
00079
00080 #endif