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

SrvParsIfaceOpt.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  * $Id: SrvParsIfaceOpt.h,v 1.7 2005/01/03 21:57:08 thomson Exp $
00010  *
00011  * $Log: SrvParsIfaceOpt.h,v $
00012  * Revision 1.7  2005/01/03 21:57:08  thomson
00013  * Relay support added.
00014  *
00015  * Revision 1.6  2004/10/25 20:45:54  thomson
00016  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00017  *
00018  * Revision 1.5  2004/09/03 23:20:23  thomson
00019  * RAPID-COMMIT support fixed. (bugs #50, #51, #52)
00020  *
00021  * Revision 1.4  2004/07/05 00:12:30  thomson
00022  * Lots of minor changes.
00023  *
00024  * Revision 1.3  2004/06/28 22:37:59  thomson
00025  * Minor changes.
00026  *
00027  */
00028 
00029 #ifndef TSRCPARSIFACEOPT_H_
00030 #define TSRCPARSIFACEOPT_H_
00031 #include "SrvParsClassOpt.h"
00032 
00033 class TSrvParsIfaceOpt : public TSrvParsClassOpt
00034 {
00035 public:
00036     TSrvParsIfaceOpt(void);
00037     ~TSrvParsIfaceOpt(void);
00038 
00039     bool uniAddress();
00040     void setUniAddress(bool isUni);
00041     void setClntMaxLease(long maxLeases);
00042     long getClntMaxLease();
00043     void setIfaceMaxLease(long maxLease);
00044     long getIfaceMaxLease();
00045 
00046     void setPreference(char pref);
00047     char getPreference();
00048 
00049     void setRapidCommit(bool rapidComm);
00050     bool getRapidCommit();
00051 
00052     void setUnicast(SmartPtr<TIPv6Addr> addr);
00053     SmartPtr<TIPv6Addr> getUnicast();
00054 
00055     void setRelayName(string name);
00056     void setRelayID(int ifindex);
00057     void setRelayInterfaceID(int id);
00058     string getRelayName();
00059     int getRelayID();
00060     int getRelayInterfaceID();
00061     bool isRelay();
00062 
00063     //-- options related methods --
00064     // option: DNS Servers
00065     TContainer< SmartPtr<TIPv6Addr> > * getDNSServerLst();
00066     void setDNSServerLst(TContainer< SmartPtr<TIPv6Addr> > *lst);
00067     bool supportDNSServer();
00068 
00069     // option: Domain
00070     TContainer< SmartPtr<string> > * getDomainLst();
00071     void setDomainLst(TContainer< SmartPtr<string> > * domains);
00072     bool supportDomain();
00073 
00074     // option: NTP servers
00075     TContainer< SmartPtr<TIPv6Addr> > * getNTPServerLst();
00076     void setNTPServerLst(TContainer< SmartPtr<TIPv6Addr> > *lst);
00077     bool supportNTPServer();
00078 
00079     // option: Timezone
00080     string getTimezone();
00081     void setTimezone(string timeZone);
00082     bool supportTimezone();
00083 
00084     // option: SIP servers
00085     TContainer< SmartPtr<TIPv6Addr> > * getSIPServerLst();
00086     void setSIPServerLst(TContainer< SmartPtr<TIPv6Addr> > *addr);
00087     bool supportSIPServer();
00088 
00089     // option: SIP domains
00090     TContainer< SmartPtr<string> > * getSIPDomainLst();
00091     void setSIPDomainLst(TContainer< SmartPtr<string> > *domainlist);
00092     bool supportSIPDomain();
00093 
00094     // option: FQDN
00095     string getFQDN();
00096     void setFQDN(string fqdn);
00097     bool supportFQDN();
00098 
00099     // option: NIS servers
00100     TContainer< SmartPtr<TIPv6Addr> > * getNISServerLst();
00101     void setNISServerLst( TContainer< SmartPtr<TIPv6Addr> > *nislist);
00102     bool supportNISServer();
00103 
00104     // option: NIS+ servers
00105     TContainer< SmartPtr<TIPv6Addr> > * getNISPServerLst();
00106     void setNISPServerLst( TContainer< SmartPtr<TIPv6Addr> > *nisplist);
00107     bool supportNISPServer();
00108 
00109     // option: NIS domain
00110     string getNISDomain();
00111     void setNISDomain(string domain);
00112     bool supportNISDomain();
00113 
00114     // option: NISP domain
00115     string getNISPDomain();
00116     void setNISPDomain(string domain);
00117     bool supportNISPDomain();
00118 
00119     // option: LIFETIME
00120     void setLifetime(unsigned int life);
00121     unsigned int getLifetime();
00122     bool supportLifetime();
00123 
00124 private:
00125     char Preference;
00126     bool RapidCommit;
00127     long IfaceMaxLease;
00128     long ClntMaxLease;
00129     SmartPtr<TIPv6Addr> Unicast;
00130 
00131     // relay
00132     bool Relay;
00133     string RelayName;
00134     int RelayID;
00135     int RelayInterfaceID;
00136 
00137     // options
00138     bool DNSServerSupport;
00139     bool DomainSupport;
00140     bool NTPServerSupport;
00141     bool TimezoneSupport;
00142     bool SIPServerSupport;
00143     bool SIPDomainSupport;
00144     bool FQDNSupport;
00145     bool NISServerSupport;
00146     bool NISDomainSupport;
00147     bool NISPServerSupport;
00148     bool NISPDomainSupport;
00149     bool LifetimeSupport;
00150 
00151     TContainer< SmartPtr<TIPv6Addr> > DNSServerLst;
00152     TContainer< SmartPtr<string> > DomainLst;                   
00153     TContainer< SmartPtr<TIPv6Addr> > NTPServerLst;
00154     string Timezone;
00155     TContainer< SmartPtr<TIPv6Addr> > SIPServerLst;
00156     TContainer< SmartPtr<string> > SIPDomainLst;
00157     string FQDN;
00158     TContainer< SmartPtr<TIPv6Addr> > NISServerLst;
00159     TContainer< SmartPtr<TIPv6Addr> > NISPServerLst;
00160     string NISDomain;
00161     string NISPDomain;
00162     unsigned int Lifetime;
00163 };
00164 
00165 #endif
00166 

Generated on Wed Mar 16 00:10:28 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1