SecurityPluginInst.h

Go to the documentation of this file.
00001 /*
00002  *
00003  *
00004  * Distributed under the OpenDDS License.
00005  * See: http://www.opendds.org/license.html
00006  */
00007 
00008 #ifndef OPENDDS_DCPS_SECURITY_PLUGIN_INST_H
00009 #define OPENDDS_DCPS_SECURITY_PLUGIN_INST_H
00010 
00011 #include "dds/DdsSecurityCoreC.h"
00012 
00013 #include "dds/DCPS/dcps_export.h"
00014 #include "dds/DCPS/RcObject.h"
00015 
00016 #include "ace/Synch_Traits.h"
00017 
00018 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00019 
00020 namespace OpenDDS {
00021 namespace Security {
00022 
00023 using DDS::Security::Authentication_var;
00024 using DDS::Security::AccessControl_var;
00025 using DDS::Security::CryptoKeyFactory_var;
00026 using DDS::Security::CryptoKeyExchange_var;
00027 using DDS::Security::CryptoTransform_var;
00028 
00029 /**
00030  * @class SecurityPluginInst
00031  *
00032  * @brief Base class for concrete security plugins to provide new objects.
00033  *
00034  * Each security plugin implementation will need to define a concrete
00035  * subclass of the SecurityPluginType class.  The base
00036  * class contains the pure virtual functions to
00037  * provide new objects. The concrete plugin implements these methods
00038  * to provide the implementations of the various plugins.
00039  *
00040  */
00041 class OpenDDS_Dcps_Export SecurityPluginInst : public DCPS::RcObject {
00042 public:
00043 
00044   // Factory methods for the plugin specific interfaces.  A SecurityPluginInst
00045   // may not support creating all of these interfaces
00046   virtual Authentication_var create_authentication() = 0;
00047   virtual AccessControl_var create_access_control() = 0;
00048   virtual CryptoKeyExchange_var create_crypto_key_exchange() = 0;
00049   virtual CryptoKeyFactory_var create_crypto_key_factory() = 0;
00050   virtual CryptoTransform_var create_crypto_transform() = 0;
00051 
00052   // Perform any logic needed when shutting down the plugin
00053   virtual void shutdown() = 0;
00054 
00055 protected:
00056 
00057   SecurityPluginInst();
00058   virtual ~SecurityPluginInst();
00059 };
00060 
00061 
00062 } // namespace Security
00063 } // namespace OpenDDS
00064 
00065 OPENDDS_END_VERSIONED_NAMESPACE_DECL
00066 
00067 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1