00001 class TIfaceMgr; 00002 #ifndef IFACEMGR_H 00003 #define IFACEMGR_H 00004 00005 #include "SmartPtr.h" 00006 #include "Container.h" 00007 00008 #include "Iface.h" 00009 00010 /* 00011 * InterfaceManager - provides access to all network interfaces present in the system 00012 * @date 2003-10-26 00013 * @author Tomasz Mrugalski <admin@klub.com.pl> 00014 * @licence GNU GPL v2 or later 00015 */ 00016 00017 class TIfaceMgr { 00018 public: 00019 friend ostream & operator <<(ostream & strum, TIfaceMgr &x); 00020 00021 TIfaceMgr(string xmlFile, bool getIfaces); 00022 00023 // ---Iface related--- 00024 void firstIface(); 00025 SmartPtr<TIfaceIface> getIface(); 00026 SmartPtr<TIfaceIface> getIfaceByName(string name); 00027 SmartPtr<TIfaceIface> getIfaceByID(int id); 00028 SmartPtr<TIfaceIface> getIfaceBySocket(int fd); 00029 int countIface(); 00030 00031 // ---other--- 00032 int select(unsigned long time, char *buf, int &bufsize, SmartPtr<TIPv6Addr> peer); 00033 string printMac(char * mac, int macLen); 00034 void dump(); 00035 bool isDone(); 00036 00037 ~TIfaceMgr(); 00038 00039 protected: 00040 string XmlFile; 00041 00042 TContainer< SmartPtr<TIfaceIface> > IfaceLst; //Interface list 00043 00044 bool IsDone; 00045 }; 00046 00047 #endif 00048