version 0.3.29
[fms.git] / include / freenet / unkeyedidcreator.h
1 #ifndef _unkeyedidcreator_\r
2 #define _unkeyedidcreatorr_\r
3 \r
4 #include "../ilogger.h"\r
5 #include "../idatabase.h"\r
6 #include "ifreenetregistrable.h"\r
7 #include "ifcpconnected.h"\r
8 #include "ifcpmessagehandler.h"\r
9 #include "iperiodicprocessor.h"\r
10 \r
11 #include <Poco/DateTime.h>\r
12 \r
13 \r
14 /**\r
15         \brief Looks for any unkeyed Local Identities and requests SSK keys for them\r
16 */\r
17 class UnkeyedIDCreator:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IDatabase,public IPeriodicProcessor,public ILogger\r
18 {\r
19 public:\r
20         UnkeyedIDCreator(SQLite3DB::DB *db);\r
21         UnkeyedIDCreator(SQLite3DB::DB *db, FCPv2::Connection *fcp);\r
22 \r
23         const bool HandleMessage(FCPv2::Message &message);\r
24 \r
25         void FCPDisconnected();\r
26         void FCPConnected();\r
27 \r
28         void Process();\r
29 \r
30         void RegisterWithThread(FreenetMasterThread *thread);\r
31         \r
32 private:\r
33         void Initialize();\r
34         void CheckForUnkeyedID();\r
35         void SaveKeys(const long localidentityid, const std::string &publickey, const std::string &privatekey);\r
36 \r
37         Poco::DateTime m_lastchecked;\r
38         bool m_waiting;\r
39 };\r
40 \r
41 #endif  // _unkeyedidcreator_\r