00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 class TSrvMsg;
00022 #ifndef SRVMSG_H
00023 #define SRVMSG_H
00024
00025 #include "Msg.h"
00026 #include "SmartPtr.h"
00027 #include "Opt.h"
00028 #include "SrvIfaceMgr.h"
00029 #include "SrvTransMgr.h"
00030 #include "SrvCfgMgr.h"
00031 #include "SrvAddrMgr.h"
00032 #include "IPv6Addr.h"
00033 #include "SrvOptOptionRequest.h"
00034 #include "SmartPtr.h"
00035
00036 class TSrvMsg : public TMsg
00037 {
00038 public:
00039 TSrvMsg(SmartPtr<TSrvIfaceMgr> IfaceMgr,
00040 SmartPtr<TSrvTransMgr> TransMgr,
00041 SmartPtr<TSrvCfgMgr> CfgMgr,
00042 SmartPtr<TSrvAddrMgr> AddrMgr,
00043 int iface, SmartPtr<TIPv6Addr> addr, char* buf, int bufSize);
00044
00045 TSrvMsg(SmartPtr<TSrvIfaceMgr> IfaceMgr,
00046 SmartPtr<TSrvTransMgr> TransMgr,
00047 SmartPtr<TSrvCfgMgr> CfgMgr,
00048 SmartPtr<TSrvAddrMgr> AddrMgr,
00049 int iface, SmartPtr<TIPv6Addr> addr, int msgType);
00050
00051 TSrvMsg(SmartPtr<TSrvIfaceMgr> IfaceMgr,
00052 SmartPtr<TSrvTransMgr> TransMgr,
00053 SmartPtr<TSrvCfgMgr> CfgMgr,
00054 SmartPtr<TSrvAddrMgr> AddrMgr,
00055 int iface, SmartPtr<TIPv6Addr> addr, int msgType, long transID);
00056
00057 TSrvMsg(SmartPtr<TSrvIfaceMgr> IfaceMgr,
00058 SmartPtr<TSrvTransMgr> TransMgr,
00059 SmartPtr<TSrvCfgMgr> CfgMgr,
00060 SmartPtr<TSrvAddrMgr> AddrMgr);
00061
00062 void answer(SmartPtr<TMsg> answer);
00063
00064 SmartPtr<TSrvTransMgr> SrvTransMgr;
00065 SmartPtr<TSrvAddrMgr> SrvAddrMgr;
00066 SmartPtr<TSrvCfgMgr> SrvCfgMgr;
00067 SmartPtr<TSrvIfaceMgr> SrvIfaceMgr;
00068
00069 bool appendRequestedOptions(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> addr,
00070 int iface, SmartPtr<TSrvOptOptionRequest> reqOpt);
00071
00072
00073 unsigned long MRT;
00074
00075 unsigned long getTimeout();
00076 void doDuties();
00077 void send();
00078 protected:
00079 unsigned long FirstTimeStamp;
00080 void setAttribs(SmartPtr<TSrvIfaceMgr> IfaceMgr,
00081 SmartPtr<TSrvTransMgr> TransMgr,
00082 SmartPtr<TSrvCfgMgr> CfgMgr,
00083 SmartPtr<TSrvAddrMgr> AddrMgr);
00084 };
00085
00086 #endif
00087