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