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

ClntIfaceMgr.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: ClntIfaceMgr.h,v 1.6 2005/01/08 16:52:03 thomson Exp $
00010  *
00011  * $Log: ClntIfaceMgr.h,v $
00012  * Revision 1.6  2005/01/08 16:52:03  thomson
00013  * Relay support implemented.
00014  *
00015  * Revision 1.5  2004/12/07 00:45:41  thomson
00016  * Clnt managers creation unified and cleaned up.
00017  *
00018  * Revision 1.4  2004/12/01 20:55:17  thomson
00019  * Obsolete definitions removed.
00020  *
00021  * Revision 1.3  2004/10/27 22:07:55  thomson
00022  * Signed/unsigned issues fixed, Lifetime option implemented, INFORMATION-REQUEST
00023  * message is now sent properly. Valid lifetime granted by server fixed.
00024  *
00025  * Revision 1.2  2004/10/25 20:45:53  thomson
00026  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00027  *
00028  *
00029  */
00030 
00031 class TClntIfaceMgr;
00032 class TClntMsg;
00033 #ifndef CLNTIFACEMGR_H
00034 #define CLNTIFACEMGR_H
00035 
00036 #include "SmartPtr.h"
00037 #include "IfaceMgr.h"
00038 #include "ClntCfgMgr.h"
00039 #include "ClntAddrMgr.h"
00040 #include "ClntTransMgr.h"
00041 #include "ClntIfaceIface.h"
00042 #include "IPv6Addr.h"
00043 #include "ClntMsg.h"
00044 
00045 class TClntIfaceMgr : public TIfaceMgr
00046 {
00047  public:
00048     TClntIfaceMgr(string xmlFile);
00049     ~TClntIfaceMgr();
00050     friend ostream & operator <<(ostream & strum, TClntIfaceMgr &x);
00051     void dump();
00052     
00053     bool sendUnicast(int iface, char *msg, int size, SmartPtr<TIPv6Addr> addr);
00054     
00055     bool sendMulticast(int iface, char *msg, int msgsize);
00056     
00057     SmartPtr<TClntMsg> select(unsigned int timeout);
00058 
00059     void setThats(SmartPtr<TClntIfaceMgr> clntIfaceMgr,
00060                   SmartPtr<TClntTransMgr> clntTransMgr,
00061                   SmartPtr<TClntCfgMgr>   clntCfgMgr,
00062                   SmartPtr<TClntAddrMgr>  clntAddrMgr);
00063 
00064     // --- option related ---
00065     void removeAllOpts();
00066 
00067     unsigned int getTimeout();
00068 
00069   private:
00070     string XmlFile;
00071     SmartPtr<TClntCfgMgr> ClntCfgMgr;
00072     SmartPtr<TClntAddrMgr> ClntAddrMgr;
00073     SmartPtr<TClntTransMgr> ClntTransMgr;
00074     SmartPtr<TClntIfaceMgr> That;
00075 };
00076 
00077 #endif 
00078 

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