Dibbler - a portable DHCPv6  1.0.2RC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RelTransMgr.h
Go to the documentation of this file.
1 /*
2  * Dibbler - a portable DHCPv6
3  *
4  * authors: Tomasz Mrugalski <thomson@klub.com.pl>
5  * Marek Senderski <msend@o2.pl>
6  *
7  * released under GNU GPL v2 only licence
8  *
9  */
10 
11 class TRelTransMgr;
12 #ifndef RELTRANSMGR_H
13 #define RELTRANSMGR_H
14 
15 #include <iostream>
16 #include "SmartPtr.h"
17 #include "RelCfgIface.h"
18 #include "RelMsg.h"
19 
20 #define RelTransMgr() (TRelTransMgr::instance())
21 
23 {
24  friend std::ostream & operator<<(std::ostream &strum, TRelTransMgr &x);
25  public:
26  static void instanceCreate(const std::string& xmlFile);
27  static TRelTransMgr& instance();
28 
29  ~TRelTransMgr();
30 
31  bool openSocket(SPtr<TRelCfgIface> confIface);
32 
33  bool doDuties();
34 
35  void relayMsg(SPtr<TRelMsg> msg);
36  void relayMsgRepl(SPtr<TRelMsg> msg);
37  void dump();
38 
39  bool isDone();
40  void shutdown();
41 
42  char * getCtrlAddr();
43  int getCtrlIface();
44 
45 protected:
46  TRelTransMgr(const std::string& xmlFile);
48 
52 
53  private:
54  std::string XmlFile;
55  bool IsDone;
56  int ctrlIface;
57  char ctrlAddr[48];
58 };
59 
60 
61 
62 #endif
63