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

SrvTransMgr.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: SrvTransMgr.h,v 1.5 2004/12/07 00:45:10 thomson Exp $
00010  *
00011  * $Log: SrvTransMgr.h,v $
00012  * Revision 1.5  2004/12/07 00:45:10  thomson
00013  * Manager creation unified and cleaned up.
00014  *
00015  * Revision 1.4  2004/09/05 15:27:49  thomson
00016  * Data receive switched from recvfrom to recvmsg, unicast partially supported.
00017  *
00018  * Revision 1.3  2004/09/03 20:58:36  thomson
00019  * *** empty log message ***
00020  *
00021  *
00022  */
00023 
00024 class TSrvTransMgr;
00025 #ifndef SRVTRANSMGR_H
00026 #define SRVTRANSMGR_H
00027 
00028 #include "SmartPtr.h"
00029 #include "Container.h"
00030 #include "Opt.h"
00031 #include "Msg.h"
00032 #include "SrvIfaceMgr.h"
00033 #include "SrvCfgMgr.h"
00034 #include "SrvAddrMgr.h"
00035 
00036 class TSrvTransMgr
00037 {
00038     friend ostream & operator<<(ostream &strum, TSrvTransMgr &x);
00039   public:
00040     TSrvTransMgr(SmartPtr<TSrvIfaceMgr> ifaceMgr,
00041                  SmartPtr<TSrvAddrMgr> addrMgr,
00042                  SmartPtr<TSrvCfgMgr> cfgMgr,
00043                  string xmlFile);
00044     ~TSrvTransMgr();
00045 
00046     bool openSocket(SmartPtr<TSrvCfgIface> confIface);
00047 
00048     long getTimeout();
00049     void relayMsg(SmartPtr<TMsg> msg);
00050     void doDuties();
00051     void dump();
00052 
00053     bool isDone();
00054     void shutdown();
00055     
00056     char * getCtrlAddr();
00057     int    getCtrlIface();
00058     
00059     void setThat(SmartPtr<TSrvTransMgr> that);
00060   private:
00061     string XmlFile;
00062     TContainer< SmartPtr<TMsg> > MsgLst;
00063     bool IsDone;
00064 
00065     SmartPtr<TSrvIfaceMgr> IfaceMgr;
00066     SmartPtr<TSrvTransMgr> That;
00067     SmartPtr<TSrvCfgMgr>  CfgMgr;
00068     SmartPtr<TSrvAddrMgr>  AddrMgr;
00069 
00070     int ctrlIface;
00071     char ctrlAddr[48];
00072 };
00073 
00074 
00075 
00076 #endif
00077 
00078 
00079 

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