00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 class TSrvIfaceMgr;
00027 #ifndef SRVIFACEMGR_H
00028 #define SRVIFACEMGR_H
00029
00030 #include "SmartPtr.h"
00031 #include "IfaceMgr.h"
00032 #include "SrvCfgMgr.h"
00033 #include "SrvAddrMgr.h"
00034 #include "SrvTransMgr.h"
00035 #include "SrvIfaceIface.h"
00036 #include "SrvMsg.h"
00037
00045 class TSrvIfaceMgr :public TIfaceMgr {
00046 public:
00047 TSrvIfaceMgr(string xmlFile);
00048 ~TSrvIfaceMgr();
00049 friend ostream & operator <<(ostream & strum, TSrvIfaceMgr &x);
00050
00051 SmartPtr<TSrvMsg> decodeMsg(SmartPtr<TSrvIfaceIface> ptrIface,
00052 SmartPtr<TIPv6Addr> peer,
00053 char * buf, int bufsize);
00054
00055 SmartPtr<TSrvMsg> decodeRelayForw(SmartPtr<TSrvIfaceIface> ptrIface,
00056 SmartPtr<TIPv6Addr> peer,
00057 char * buf, int bufsize);
00058
00059 bool setupRelay(string name, int ifindex, int underIfindex, int interfaceID);
00060 void dump();
00061
00062
00063 bool send(int iface, char *msg, int size, SmartPtr<TIPv6Addr> addr, int port);
00064
00065
00066 SmartPtr<TSrvMsg> select(unsigned long timeout);
00067
00068
00069 void setThats(SmartPtr<TSrvIfaceMgr> srvIfaceMgr,
00070 SmartPtr<TSrvTransMgr> srvTransMgr,
00071 SmartPtr<TSrvCfgMgr> srvCfgMgr,
00072 SmartPtr<TSrvAddrMgr> srvAddrMgr);
00073
00074 private:
00075 string XmlFile;
00076 SmartPtr<TSrvCfgMgr> SrvCfgMgr;
00077 SmartPtr<TSrvAddrMgr> SrvAddrMgr;
00078 SmartPtr<TSrvTransMgr> SrvTransMgr;
00079 SmartPtr<TSrvIfaceMgr> That;
00080
00081 };
00082
00083 #endif
00084