00001 #ifndef __INTERFACES_H 00002 #define __INTERFACES_H 00003 00004 #include "BasicObject.h" 00005 #include <iostream> 00006 #include <vector> 00007 00008 class Interfaces; 00009 00010 class Interface : public BasicObject { 00011 public: 00012 Interface(); 00013 virtual ~Interface() {} 00014 virtual void toStream(std::ostream& out); 00015 friend Interfaces; 00016 private: 00017 IpAddress m_ipAddr; 00018 IpAddress m_subnetMask; 00019 IpAddress m_broadcastAddress; 00020 bool m_broadcastsSupported; 00021 bool m_multicastsSupported; 00022 bool m_isLoopback; 00023 bool m_isPointToPoint; 00024 bool m_isUp; 00025 }; 00026 00027 class Interfaces : public BasicObject { 00028 public: 00029 Interfaces(); 00030 void init(); 00031 virtual void toStream(std::ostream& out); 00032 IpAddress getPublicIp(); 00033 private: 00034 vector<Interface> m_interface; 00035 }; 00036 00037 00038 #endif