version 0.1.10
[fms.git] / include / http / identityexportxml.h
diff --git a/include/http/identityexportxml.h b/include/http/identityexportxml.h
new file mode 100644 (file)
index 0000000..6d6db3a
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef _identityexportxml_\r
+#define _identityexportxml_\r
+\r
+#include "../ifmsxmldocument.h"\r
+\r
+class IdentityExportXML:public IFMSXMLDocument\r
+{\r
+public:\r
+       IdentityExportXML();\r
+\r
+       std::string GetXML();\r
+       const bool ParseXML(const std::string &xml);\r
+\r
+       void AddIdentity(const std::string &name, const std::string &publickey, const std::string &privatekey, const bool singleuse=false, const bool publishtrustlist=false, const bool publishboardlist=false);\r
+\r
+       const long GetCount()           { return m_identities.size(); }\r
+\r
+       const std::string GetName(const long index);\r
+       const std::string GetPublicKey(const long index);\r
+       const std::string GetPrivateKey(const long index);\r
+       const bool GetSingleUse(const long index);\r
+       const bool GetPublishTrustList(const long index);\r
+       const bool GetPublishBoardList(const long index);\r
+\r
+private:\r
+       void Initialize();\r
+\r
+       struct identity\r
+       {\r
+               identity(const std::string &name, const std::string &publickey, const std::string &privatekey, const bool singleuse, const bool publishtrustlist, const bool publishboardlist):m_name(name),m_publickey(publickey),m_privatekey(privatekey),m_singleuse(singleuse),m_publishtrustlist(publishtrustlist),m_publishboardlist(publishboardlist)    {}\r
+               std::string m_name;\r
+               std::string m_publickey;\r
+               std::string m_privatekey;\r
+               bool m_singleuse;\r
+               bool m_publishtrustlist;\r
+               bool m_publishboardlist;\r
+       };\r
+\r
+       std::vector<identity> m_identities;\r
+\r
+};\r
+\r
+#endif // _identityexportxml_\r