OpenDDS  Snapshot(2023/04/28-20:55)
SecurityPluginInst.h
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_SECURITY_FRAMEWORK_SECURITYPLUGININST_H
9 #define OPENDDS_DCPS_SECURITY_FRAMEWORK_SECURITYPLUGININST_H
10 
11 #ifdef OPENDDS_SECURITY
12 #include "dds/DdsSecurityCoreC.h"
14 #endif
15 
16 #include "dds/DCPS/dcps_export.h"
17 #include "dds/DCPS/RcObject.h"
18 
19 #include "ace/Synch_Traits.h"
20 
22 
23 namespace OpenDDS {
24 namespace Security {
25 
26 #ifdef OPENDDS_SECURITY
27 using DDS::Security::Authentication_var;
28 using DDS::Security::AccessControl_var;
29 using DDS::Security::CryptoKeyFactory_var;
30 using DDS::Security::CryptoKeyExchange_var;
31 using DDS::Security::CryptoTransform_var;
32 #endif
33 
34 /**
35  * @class SecurityPluginInst
36  *
37  * @brief Base class for concrete security plugins to provide new objects.
38  *
39  * Each security plugin implementation will need to define a concrete
40  * subclass of the SecurityPluginType class. The base
41  * class contains the pure virtual functions to
42  * provide new objects. The concrete plugin implements these methods
43  * to provide the implementations of the various plugins.
44  *
45  */
47 public:
48 
49 #ifdef OPENDDS_SECURITY
50  // Factory methods for the plugin specific interfaces. A SecurityPluginInst
51  // may not support creating all of these interfaces
52  virtual Authentication_var create_authentication() = 0;
53  virtual AccessControl_var create_access_control() = 0;
54  virtual CryptoKeyExchange_var create_crypto_key_exchange() = 0;
55  virtual CryptoKeyFactory_var create_crypto_key_factory() = 0;
56  virtual CryptoTransform_var create_crypto_transform() = 0;
57  virtual DCPS::RcHandle<Utility> create_utility() = 0;
58 #endif
59 
60  // Perform any logic needed when shutting down the plugin
61  virtual void shutdown() = 0;
62 
63 protected:
64 
66  virtual ~SecurityPluginInst();
67 };
68 
69 
70 } // namespace Security
71 } // namespace OpenDDS
72 
74 
75 #endif
#define OpenDDS_Dcps_Export
Definition: dcps_export.h:24
Base class for concrete security plugins to provide new objects.
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
int shutdown(ACE_HANDLE handle, int how)
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28