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

Generated on Mon Dec 27 21:55:22 2004 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1