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

SrvIfaceMgr.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  * $Header: /var/cvs/dibbler/SrvIfaceMgr/SrvIfaceMgr.h,v 1.7 2005/01/30 22:53:28 thomson Exp $
00010  *
00011  * $Log: SrvIfaceMgr.h,v $
00012  * Revision 1.7  2005/01/30 22:53:28  thomson
00013  * *** empty log message ***
00014  *
00015  * Revision 1.6  2005/01/08 16:52:04  thomson
00016  * Relay support implemented.
00017  *
00018  * Revision 1.5  2005/01/03 23:13:57  thomson
00019  * Partial relay implementation.
00020  *
00021  * Revision 1.4  2005/01/03 21:56:09  thomson
00022  * Relay support added.
00023  *
00024  */
00025 
00026 class TSrvIfaceMgr;
00027 #ifndef SRVIFACEMGR_H
00028 #define SRVIFACEMGR_H
00029 
00030 #include "SmartPtr.h"
00031 #include "IfaceMgr.h"
00032 #include "SrvCfgMgr.h"
00033 #include "SrvAddrMgr.h"
00034 #include "SrvTransMgr.h"
00035 #include "SrvIfaceIface.h"
00036 #include "SrvMsg.h"
00037 
00045 class TSrvIfaceMgr :public TIfaceMgr {
00046  public:
00047     TSrvIfaceMgr(string xmlFile);
00048     ~TSrvIfaceMgr();
00049     friend ostream & operator <<(ostream & strum, TSrvIfaceMgr &x);
00050 
00051     SmartPtr<TSrvMsg> decodeMsg(SmartPtr<TSrvIfaceIface> ptrIface, 
00052                                 SmartPtr<TIPv6Addr> peer, 
00053                                 char * buf, int bufsize);
00054     
00055     SmartPtr<TSrvMsg> decodeRelayForw(SmartPtr<TSrvIfaceIface> ptrIface, 
00056                                       SmartPtr<TIPv6Addr> peer, 
00057                                       char * buf, int bufsize);
00058     
00059     bool setupRelay(string name, int ifindex, int underIfindex, int interfaceID);
00060     void dump();
00061     
00062     // ---sends messages---
00063     bool send(int iface, char *msg, int size, SmartPtr<TIPv6Addr> addr, int port);
00064     
00065     // ---receives messages---
00066     SmartPtr<TSrvMsg> select(unsigned long timeout);
00067 
00068     // ---remember SmartPtrs to all menagers---
00069     void setThats(SmartPtr<TSrvIfaceMgr> srvIfaceMgr,
00070                   SmartPtr<TSrvTransMgr> srvTransMgr,
00071                   SmartPtr<TSrvCfgMgr> srvCfgMgr,
00072                   SmartPtr<TSrvAddrMgr> srvAddrMgr);
00073 
00074   private:
00075     string XmlFile;
00076     SmartPtr<TSrvCfgMgr> SrvCfgMgr;
00077     SmartPtr<TSrvAddrMgr> SrvAddrMgr;
00078     SmartPtr<TSrvTransMgr> SrvTransMgr;
00079     SmartPtr<TSrvIfaceMgr> That;
00080 
00081 };
00082 
00083 #endif 
00084 

Generated on Wed Mar 16 00:10:28 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1