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