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

SrvMsg.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: SrvMsg.h,v 1.5 2004/10/25 20:45:54 thomson Exp $
00010  *
00011  * $Log: SrvMsg.h,v $
00012  * Revision 1.5  2004/10/25 20:45:54  thomson
00013  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00014  *
00015  * Revision 1.4  2004/06/20 17:25:07  thomson
00016  * getName() method implemented, clean up
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     // maximum retransmission timeout
00073     unsigned long MRT;
00074 
00075     unsigned long getTimeout();
00076     void doDuties();
00077     void send();
00078 protected:
00079     unsigned long FirstTimeStamp; // timestamp of first message transmission
00080     void setAttribs(SmartPtr<TSrvIfaceMgr> IfaceMgr, 
00081                     SmartPtr<TSrvTransMgr> TransMgr, 
00082                     SmartPtr<TSrvCfgMgr> CfgMgr,
00083                     SmartPtr<TSrvAddrMgr> AddrMgr);
00084 };
00085 
00086 #endif
00087 

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