Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

SrvIfaceIface.h

Go to the documentation of this file.
00001 /*
00002  * Dibbler - a portable DHCPv6
00003  *
00004  * authors: Tomasz Mrugalski <thomson@klub.com.pl>
00005  *          Marek Senderski <msend@o2.pl>
00006  *
00007  * released under GNU GPL v2 or later licence
00008  *
00009  * $Header: /var/cvs/dibbler/SrvIfaceMgr/SrvIfaceIface.h,v 1.5 2005/05/10 00:02:39 thomson Exp $
00010  *
00011  * $Log: SrvIfaceIface.h,v $
00012  * Revision 1.5  2005/05/10 00:02:39  thomson
00013  * getRelayByLinkAddr() implemented.
00014  *
00015  * Revision 1.4  2005/01/25 00:32:26  thomson
00016  * Global addrs support added.
00017  *
00018  * Revision 1.3  2005/01/08 16:52:04  thomson
00019  * Relay support implemented.
00020  *
00021  * Revision 1.2  2005/01/03 23:13:57  thomson
00022  * Partial relay implementation.
00023  *
00024  * Revision 1.1  2005/01/03 21:56:27  thomson
00025  * Initial version.
00026  *
00027  */
00028 
00029 class TSrvIfaceIface;
00030 #ifndef SRVIFACEIFACE_H
00031 #define SRVIFACEIFACE_H
00032 
00033 #include "Iface.h"
00034 #include "DHCPConst.h"
00035 
00036 struct Relay {
00037     SmartPtr<TSrvIfaceIface> iface;
00038     int ifindex;
00039     int interfaceID;
00040 };
00041 typedef struct Relay TRelay;
00042 
00043 class TSrvIfaceIface: public TIfaceIface {
00044  public:
00045     TSrvIfaceIface(const char * name, int id, unsigned int flags, char* mac, 
00046                    int maclen, char* llAddr, int llAddrCnt, char * globalAddr, 
00047                    int globalAddrCnt, int hwType);
00048 
00049     friend ostream & operator <<(ostream & strum, TSrvIfaceIface &x);
00050 
00051     void setUnderlaying(SmartPtr<TSrvIfaceIface> under);
00052     bool appendRelay(SmartPtr<TSrvIfaceIface> relay, int interfaceID);
00053     SmartPtr<TSrvIfaceIface> getUnderlaying();
00054     SmartPtr<TSrvIfaceIface> getRelayByInterfaceID(int interfaceID);
00055     SmartPtr<TSrvIfaceIface> getRelayByLinkAddr(SmartPtr<TIPv6Addr> addr);
00056     int getRelayCnt();
00057 
00058  private:
00059     SmartPtr<TSrvIfaceIface> UnderRelay;
00060     bool Relay;
00061 
00062     TRelay Relays[HOP_COUNT_LIMIT];
00063     int RelaysCnt;
00064 };
00065 
00066 #endif
00067 

Generated on Sun Aug 7 22:47:17 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1