Rudiments
/home/dmuse/src/rudiments/include/rudiments/networkinterfaces.h
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