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

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