version 0.2.2
[fms.git] / include / freenet / trustlistxml.h
1 #ifndef _trustlistxml_\r
2 #define _trustlistxml_\r
3 \r
4 #include "../ifmsxmldocument.h"\r
5 #include "../ilogger.h"\r
6 \r
7 #include <vector>\r
8 \r
9 // trust of -1 will mean NULL trust\r
10 class TrustListXML:public IFMSXMLDocument,public ILogger\r
11 {\r
12 private:\r
13         struct trust\r
14         {\r
15                 trust(const std::string &identity, const long messagetrust, const long trustlisttrust, const std::string &messagetrustcomment, const std::string &trustlisttrustcomment):m_identity(identity),m_messagetrust(messagetrust),m_trustlisttrust(trustlisttrust),m_messagetrustcomment(messagetrustcomment),m_trustlisttrustcomment(trustlisttrustcomment) {}\r
16                 std::string m_identity;\r
17                 long m_messagetrust;\r
18                 long m_trustlisttrust;\r
19                 std::string m_messagetrustcomment;\r
20                 std::string m_trustlisttrustcomment;\r
21         };\r
22 public:\r
23         TrustListXML();\r
24 \r
25         std::string GetXML();\r
26         \r
27         const bool ParseXML(const std::string &xml);\r
28 \r
29         void ClearTrust()                       { m_trust.clear(); }\r
30 \r
31         void AddTrust(const std::string &identity, const long messagetrust, const long trustlisttrust, const std::string &messagetrustcomment, const std::string &trustlisttrustcomment);\r
32 \r
33         const std::vector<trust>::size_type TrustCount()                { return m_trust.size(); }\r
34         std::string GetIdentity(const long index);\r
35         long GetMessageTrust(const long index);\r
36         long GetTrustListTrust(const long index);\r
37         std::string GetMessageTrustComment(const long index);\r
38         std::string GetTrustListTrustComment(const long index);\r
39 \r
40 private:\r
41         void Initialize();\r
42 \r
43         std::vector<trust> m_trust;\r
44         \r
45 };\r
46 \r
47 #endif  // _trustlistxml_\r