00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 class TSrvMsgReply;
00022 #ifndef SRVMSGREPLY_H
00023 #define SRVMSGREPLY_H
00024 #include "SrvMsg.h"
00025 #include "SrvMsgConfirm.h"
00026 #include "SrvMsgDecline.h"
00027 #include "SrvMsgRequest.h"
00028 #include "SrvMsgReply.h"
00029 #include "SrvMsgRebind.h"
00030 #include "SrvMsgRenew.h"
00031 #include "SrvMsgRelease.h"
00032 #include "SrvMsgSolicit.h"
00033 #include "SrvMsgInfRequest.h"
00034
00035 class TSrvMsgReply : public TSrvMsg
00036 {
00037 public:
00038 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00039 SmartPtr<TSrvTransMgr>,
00040 SmartPtr<TSrvCfgMgr>,
00041 SmartPtr<TSrvAddrMgr> AddrMgr,
00042 SmartPtr<TSrvMsgConfirm> question);
00043
00044 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00045 SmartPtr<TSrvTransMgr>,
00046 SmartPtr<TSrvCfgMgr>,
00047 SmartPtr<TSrvAddrMgr> AddrMgr,
00048 SmartPtr<TSrvMsgDecline> question);
00049
00050 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00051 SmartPtr<TSrvTransMgr>,
00052 SmartPtr<TSrvCfgMgr>,
00053 SmartPtr<TSrvAddrMgr> AddrMgr,
00054 SmartPtr<TSrvMsgRebind> question);
00055
00056 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00057 SmartPtr<TSrvTransMgr>,
00058 SmartPtr<TSrvCfgMgr>,
00059 SmartPtr<TSrvAddrMgr> AddrMgr,
00060 SmartPtr<TSrvMsgRelease> question);
00061
00062 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00063 SmartPtr<TSrvTransMgr>,
00064 SmartPtr<TSrvCfgMgr>,
00065 SmartPtr<TSrvAddrMgr> AddrMgr,
00066 SmartPtr<TSrvMsgRenew> question);
00067
00068 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00069 SmartPtr<TSrvTransMgr>,
00070 SmartPtr<TSrvCfgMgr>,
00071 SmartPtr<TSrvAddrMgr> AddrMgr,
00072 SmartPtr<TSrvMsgRequest> question);
00073
00074 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00075 SmartPtr<TSrvTransMgr>,
00076 SmartPtr<TSrvCfgMgr>,
00077 SmartPtr<TSrvAddrMgr> AddrMgr,
00078 SmartPtr<TSrvMsgSolicit> question);
00079
00080 TSrvMsgReply(SmartPtr<TSrvIfaceMgr>,
00081 SmartPtr<TSrvTransMgr>,
00082 SmartPtr<TSrvCfgMgr>,
00083 SmartPtr<TSrvAddrMgr> AddrMgr,
00084 SmartPtr<TSrvMsgInfRequest> question);
00085
00086 void answer(SmartPtr<TMsg> Rep);
00087 void doDuties();
00088 unsigned long getTimeout();
00089 bool check();
00090 string getName();
00091
00092 ~TSrvMsgReply();
00093 private:
00094 SmartPtr<TSrvOptOptionRequest> reqOpts;
00095 SmartPtr<TSrvOptClientIdentifier> duidOpt;
00096
00097 void appendDefaultOption(SmartPtr<TOpt> ptrOpt);
00098
00099 void setOptionsReqOptClntDUID(SmartPtr<TMsg> msg);
00100
00101
00102 };
00103
00104
00105 #endif
00106