SubjectName.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef OPENDDS_SECURITY_SUBJECT_NAME_H
00007 #define OPENDDS_SECURITY_SUBJECT_NAME_H
00008
00009 #include "dds/Versioned_Namespace.h"
00010 #include "dds/DCPS/security/DdsSecurity_Export.h"
00011
00012 #include <string>
00013 #include <map>
00014
00015 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00016
00017 namespace OpenDDS {
00018 namespace Security {
00019 namespace SSL {
00020
00021 class DdsSecurity_Export SubjectName
00022 {
00023 public:
00024 SubjectName();
00025 SubjectName(const char*, bool permissive = false);
00026 SubjectName(const std::string&, bool permissive = false);
00027
00028
00029
00030
00031 int parse(const char*, bool permissive = false);
00032
00033
00034
00035
00036 int parse(const std::string&, bool permissive = false);
00037
00038 bool operator==(const SubjectName&) const;
00039 bool operator!=(const SubjectName&) const;
00040
00041 protected:
00042
00043
00044
00045 int parse_permissive(const char*);
00046
00047
00048
00049
00050 int parse_dce(const char*);
00051
00052
00053
00054
00055 int parse_ldap_v3(const char*);
00056
00057 int simple_avp_seq_parse(const char* in, const char* s_del,
00058 const char* a_del, const char* s_trim,
00059 const char* a_trim, bool push_back);
00060
00061 typedef std::map<std::string, std::string> AttrMap;
00062 AttrMap map_;
00063 };
00064
00065 }
00066 }
00067 }
00068
00069 OPENDDS_END_VERSIONED_NAMESPACE_DECL
00070
00071 #endif