Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

SrvMsgReply.h

Go to the documentation of this file.
00001 /*
00002  * Dibbler - a portable DHCPv6
00003  *
00004  * authors: Tomasz Mrugalski <thomson@klub.com.pl>
00005  *          Marek Senderski <msend@o2.pl>
00006  *
00007  * released under GNU GPL v2 or later licence
00008  *
00009  * $Id: SrvMsgReply.h,v 1.3 2004/10/25 20:45:54 thomson Exp $
00010  *
00011  * $Log: SrvMsgReply.h,v $
00012  * Revision 1.3  2004/10/25 20:45:54  thomson
00013  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00014  *
00015  * Revision 1.2  2004/06/20 17:25:07  thomson
00016  * getName() method implemented, clean up
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 /* SRVMSGREPLY_H */
00106 

Generated on Mon Dec 27 21:55:23 2004 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1