forest-net
an overlay networks for large-scale virtual worlds
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
RouterOutProc.h
1 
9 #ifndef ROUTEROUTPROC_H
10 #define ROUTEROUTPROC_H
11 
12 #include "stdinc.h"
13 #include "Forest.h"
14 #include <thread>
15 #include <mutex>
16 #include <chrono>
17 
18 #include "Quu.h"
19 #include "IfaceTable.h"
20 #include "LinkTable.h"
21 #include "ComtreeTable.h"
22 #include "RouteTable.h"
23 #include "PacketStore.h"
24 #include "CtlPkt.h"
25 #include "QuManager.h"
26 #include "StatsModule.h"
27 #include "PacketLog.h"
28 
29 #include "Router.h"
30 
31 using namespace chrono;
32 using std::thread;
33 using std::mutex;
34 using std::cout;
35 using std::endl;
36 
37 namespace forest {
38 
39 class Router;
40 
42 public:
44  ~RouterOutProc();
45 
46  bool init();
47  void run();
48  static void start(RouterOutProc*);
49 private:
50  typedef high_resolution_clock::time_point timePoint;
51 
52  int64_t now;
53 
55 
56  // resendMap used to retransmit subscription packets and
57  // connection/disconnection requests, as needed
58  HashMap<uint64_t,pktx,Hash::u64>
60  Dheap<uint64_t> *resendTimes;
61 
62  bool send();
63 };
64 
65 
66 } // ends namespace
67 
68 
69 #endif