Rudiments
networkinterfaces.h
1 // Copyright (c) 2005 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_NETWORKINTERFACES_H
5 #define RUDIMENTS_NETWORKINTERFACES_H
6 
7 #include <rudiments/private/networkinterfacesincludes.h>
8 
9 // @cond
10 
11 typedef listnode< networkinterface * > networkinterfacelistnode;
12 typedef list< networkinterface *, networkinterfacelistnode >
13  networkinterfacelist;
14 
15 class networkinterfaceprivate;
16 
17 // FIXME: implement this class
18 class RUDIMENTS_DLLSPEC networkinterface {
19  public:
20  networkinterface();
21  ~networkinterface();
22 
23  sockaddr getAddress();
24  sockaddr getDestinationAddress();
25  sockaddr getBroadcastAddress();
26  sockaddr getNetmask();
27  sockaddr getHardwareAddress();
28 
29  int16_t getFlags();
30  int32_t getMetric();
31  int32_t getMaximumTransmitUnit();
32  ifmap getDeviceMap();
33  int32_t getSlaveDevice();
34  int32_t getForUseByInterfaceData();
35  int32_t getIndex();
36  int32_t getLinkBandwidth();
37  int32_t getQueueLength();
38  const char *getNewName();
39 
40  #include <rudiments/private/networkinterface.h>
41 };
42 
43 class RUDIMENTS_DLLSPEC networkinterfaces {
44  public:
45  static networkinterfacelist *getList();
46  static networkinterface *getInterface(const char *name);
47  #include <rudiments/private/networkinterfaces.h>
48 }
49 
50 // @endcond
51 
52 #endif