Rudiments
|
00001 // Copyright (c) 2005 David Muse 00002 // See the COPYING file for more information. 00003 00004 #ifndef RUDIMENTS_NETWORKINTERFACES_H 00005 #define RUDIMENTS_NETWORKINTERFACES_H 00006 00007 #include <rudiments/private/networkinterfacesincludes.h> 00008 00009 #ifdef RUDIMENTS_NAMESPACE 00010 namespace rudiments { 00011 #endif 00012 00013 // @cond 00014 00015 typedef listnode< networkinterface * > networkinterfacelistnode; 00016 typedef list< networkinterface *, networkinterfacelistnode > 00017 networkinterfacelist; 00018 00019 class networkinterfaceprivate; 00020 00021 // FIXME: implement this class 00022 class RUDIMENTS_DLLSPEC networkinterface { 00023 public: 00024 networkinterface(); 00025 ~networkinterface(); 00026 00027 sockaddr getAddress(); 00028 sockaddr getDestinationAddress(); 00029 sockaddr getBroadcastAddress(); 00030 sockaddr getNetmask(); 00031 sockaddr getHardwareAddress(); 00032 00033 int16_t getFlags(); 00034 int32_t getMetric(); 00035 int32_t getMaximumTransmitUnit(); 00036 ifmap getDeviceMap(); 00037 int32_t getSlaveDevice(); 00038 int32_t getForUseByInterfaceData(); 00039 int32_t getIndex(); 00040 int32_t getLinkBandwidth(); 00041 int32_t getQueueLength(); 00042 const char *getNewName(); 00043 00044 #include <rudiments/private/networkinterface.h> 00045 }; 00046 00047 class RUDIMENTS_DLLSPEC networkinterfaces { 00048 public: 00049 static networkinterfacelist *getList(); 00050 static networkinterface *getInterface(const char *name); 00051 #include <rudiments/private/networkinterfaces.h> 00052 } 00053 00054 // @endcond 00055 00056 #ifdef RUDIMENTS_NAMESPACE 00057 } 00058 #endif 00059 00060 #endif