OpenDDS  Snapshot(2023/04/28-20:55)
Governance.h
Go to the documentation of this file.
1 /*
2  * Distributed under the OpenDDS License.
3  * See: http://www.OpenDDS.org/license.html
4  */
5 
6 #ifndef OPENDDS_DCPS_SECURITY_ACCESSCONTROL_GOVERNANCE_H
7 #define OPENDDS_DCPS_SECURITY_ACCESSCONTROL_GOVERNANCE_H
8 
9 #include "DomainIdSet.h"
10 
12 #include <dds/DCPS/RcObject.h>
13 
14 #include <dds/DdsSecurityCoreC.h>
15 
16 #include <string>
17 #include <vector>
18 
20 
21 namespace OpenDDS {
22 namespace Security {
23 
24 class Governance : public DCPS::RcObject {
25 public:
27 
28  struct TopicAccessRule {
30  std::string topic_expression;
33  std::string data_protection_kind;
34  };
35 
36  typedef std::vector<TopicAccessRule> TopicAccessRules;
37 
38  struct DomainRule {
41  TopicAccessRules topic_rules;
42  };
43 
44  typedef std::vector<DomainRule> GovernanceAccessRules;
45 
46  Governance();
47 
48  int load(const SSL::SignedDocument& doc);
49 
50  GovernanceAccessRules& access_rules()
51  {
52  return access_rules_;
53  }
54 
55 private:
56  GovernanceAccessRules access_rules_;
57 };
58 
59 }
60 }
61 
63 
64 #endif
GovernanceAccessRules & access_rules()
Definition: Governance.h:50
std::vector< DomainRule > GovernanceAccessRules
Definition: Governance.h:44
DDS::Security::ParticipantSecurityAttributes domain_attrs
Definition: Governance.h:40
GovernanceAccessRules access_rules_
Definition: Governance.h:56
int load(const SSL::SignedDocument &doc)
Definition: Governance.cpp:112
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
DDS::Security::TopicSecurityAttributes topic_attrs
Definition: Governance.h:31
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28
std::vector< TopicAccessRule > TopicAccessRules
Definition: Governance.h:36
DCPS::RcHandle< Governance > shared_ptr
Definition: Governance.h:26