00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_SECURITY_ENGINE_H_
00019 #define _DECAF_INTERNAL_SECURITY_ENGINE_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <string>
00024
00025 namespace decaf {
00026 namespace security {
00027 class Provider;
00028 class SecuritySpi;
00029 }
00030 namespace internal {
00031 namespace security {
00032
00042 class DECAF_API Engine {
00043 private:
00044
00045 std::string serviceName;
00046 const decaf::security::Provider* provider;
00047
00048 private:
00049
00050 Engine(const Engine&);
00051 Engine operator= (const Engine&);
00052
00053 public:
00054
00055 Engine(const std::string& serviceName);
00056
00057 virtual ~Engine();
00058
00065 std::string getServiceName() const {
00066 return this->serviceName;
00067 }
00068
00077 const decaf::security::Provider* getProvider() const {
00078 return this->provider;
00079 }
00080
00087 decaf::security::SecuritySpi* newInstance(const std::string& algorithmName);
00088
00089 };
00090
00091 }}}
00092
00093 #endif