Governance.h

Go to the documentation of this file.
00001 /*
00002  * Distributed under the OpenDDS License.
00003  * See: http://www.OpenDDS.org/license.html
00004  */
00005 
00006 #ifndef OPENDDS_ACCESS_GOVERNANCE_H
00007 #define OPENDDS_ACCESS_GOVERNANCE_H
00008 
00009 #include "dds/DCPS/security/SSL/SignedDocument.h"
00010 #include "dds/DdsSecurityCoreC.h"
00011 #include "dds/DCPS/RcObject.h"
00012 #include <string>
00013 #include <vector>
00014 #include <set>
00015 
00016 namespace OpenDDS {
00017 namespace Security {
00018 
00019 class Governance : public DCPS::RcObject {
00020 public:
00021 
00022   typedef DCPS::RcHandle<Governance> shared_ptr;
00023 
00024   struct TopicAccessRule {
00025     std::string topic_expression;
00026     DDS::Security::TopicSecurityAttributes topic_attrs;
00027     std::string metadata_protection_kind;
00028     std::string data_protection_kind;
00029   };
00030 
00031   typedef std::vector<TopicAccessRule> TopicAccessRules;
00032 
00033   struct DomainRule {
00034     std::set<DDS::Security::DomainId_t> domain_list;
00035     DDS::Security::ParticipantSecurityAttributes domain_attrs;
00036     TopicAccessRules topic_rules;
00037   };
00038 
00039   typedef std::vector<DomainRule> GovernanceAccessRules;
00040 
00041   Governance();
00042 
00043   int load(const SSL::SignedDocument& doc);
00044 
00045   GovernanceAccessRules& access_rules()
00046   {
00047     return access_rules_;
00048   }
00049 
00050 private:
00051 
00052   GovernanceAccessRules access_rules_;
00053 
00054 };
00055 
00056 }
00057 }
00058 
00059 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1