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

ClntParsIfaceOpt.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: ClntParsIfaceOpt.h,v 1.6 2004/11/30 00:42:50 thomson Exp $
00010  *
00011  * $Log: ClntParsIfaceOpt.h,v $
00012  * Revision 1.6  2004/11/30 00:42:50  thomson
00013  * Client no longer sends RapidCommit, unless told to do so (bug #55)
00014  *
00015  * Revision 1.5  2004/11/29 21:21:56  thomson
00016  * Client parser now supports 'option lifetime' directive (bug #75)
00017  *
00018  * Revision 1.4  2004/10/25 20:45:52  thomson
00019  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00020  *
00021  * Revision 1.3  2004/10/02 13:11:24  thomson
00022  * Boolean options in config file now can be specified with YES/NO/TRUE/FALSE.
00023  * Unicast communication now can be enable on client side (disabled by default).
00024  *
00025  * Revision 1.2  2004/05/23 22:37:54  thomson
00026  * *** empty log message ***
00027  *
00028  *                                                                           
00029  */
00030 
00031 #ifndef TPARSEIFACEOPT_H
00032 #define TPARSEIFACEOPT_H
00033 
00034 #include "DHCPConst.h"
00035 #include "Container.h"
00036 
00037 #include "ClntParsIAOpt.h"
00038 #include "StationID.h"
00039 #include "IPv6Addr.h"
00040 
00041 #include <iostream>
00042 #include <string>
00043 using namespace std;
00044 
00045 
00046 class TClntParsIfaceOpt : public TClntParsIAOpt
00047 {
00048  public:
00049     TClntParsIfaceOpt();
00050     ~TClntParsIfaceOpt();
00051     void setUnicast(bool unicast);
00052     bool getUnicast();
00053     bool getRapidCommit();
00054     void setRapidCommit(bool rapid);
00055     bool isNewGroup();
00056     void setNewGroup(bool newGr);
00057     bool getIsIAs();
00058     void setIsIAs(bool state);
00059     
00060     //-- options related methods --
00061     // option: DNS Servers
00062     TContainer< SmartPtr<TIPv6Addr> > * getDNSServerLst();
00063     void setDNSServerLst(TContainer< SmartPtr<TIPv6Addr> > *lst);
00064     bool getReqDNSServer();
00065 
00066     // option: Domain
00067     TContainer< SmartPtr<string> > * getDomainLst();
00068     void setDomainLst(TContainer< SmartPtr<string> > * domains);
00069     bool getReqDomain();
00070 
00071     // option: NTP servers
00072     TContainer< SmartPtr<TIPv6Addr> > * getNTPServerLst();
00073     void setNTPServerLst(TContainer< SmartPtr<TIPv6Addr> > *lst);
00074     bool getReqNTPServer();
00075 
00076     // option: Timezone
00077     string getTimezone();
00078     void setTimezone(string timeZone);
00079     bool getReqTimezone();
00080 
00081     // option: SIP servers
00082     TContainer< SmartPtr<TIPv6Addr> > * getSIPServerLst();
00083     void setSIPServerLst(TContainer< SmartPtr<TIPv6Addr> > *addr);
00084     bool getReqSIPServer();
00085 
00086     // option: SIP domains
00087     TContainer< SmartPtr<string> > * getSIPDomainLst();
00088     void setSIPDomainLst(TContainer< SmartPtr<string> > *domainlist);
00089     bool getReqSIPDomain();
00090 
00091     // option: FQDN
00092     string getFQDN();
00093     void setFQDN(string fqdn);
00094     bool getReqFQDN();
00095 
00096     // option: NIS servers
00097     TContainer< SmartPtr<TIPv6Addr> > * getNISServerLst();
00098     void setNISServerLst( TContainer< SmartPtr<TIPv6Addr> > *nislist);
00099     bool getReqNISServer();
00100 
00101     // option: NIS+ servers
00102     TContainer< SmartPtr<TIPv6Addr> > * getNISPServerLst();
00103     void setNISPServerLst( TContainer< SmartPtr<TIPv6Addr> > *nisplist);
00104     bool getReqNISPServer();
00105 
00106     // option: NIS domain
00107     string getNISDomain();
00108     void setNISDomain(string domain);
00109     bool getReqNISDomain();
00110 
00111     // option: NISP domain
00112     string getNISPDomain();
00113     void setNISPDomain(string domain);
00114     bool getReqNISPDomain();
00115 
00116     // option: Lifetime
00117     bool getLifetime();
00118     void setLifetime();
00119     bool getReqLifetime();
00120 
00121 private:
00122     bool NewGroup;//indicates whether new group should be created
00123     bool NoIAs;
00124     bool Unicast; // do we accept unicast?
00125     bool RapidCommit;
00126 
00127     TContainer< SmartPtr<TIPv6Addr> > DNSServerLst;
00128     TContainer< SmartPtr<string> > DomainLst;
00129     TContainer< SmartPtr<TIPv6Addr> > NTPServerLst;
00130     string Timezone;
00131     TContainer< SmartPtr<TIPv6Addr> > SIPServerLst;
00132     TContainer< SmartPtr<string> > SIPDomainLst;
00133     string FQDN;
00134     TContainer< SmartPtr<TIPv6Addr> > NISServerLst;
00135     TContainer< SmartPtr<TIPv6Addr> > NISPServerLst;
00136     string NISDomain;
00137     string NISPDomain;
00138     bool Lifetime;
00139 
00140     bool ReqDNSServer;
00141     bool ReqDomain;
00142     bool ReqNTPServer;
00143     bool ReqTimezone;
00144     bool ReqSIPServer;
00145     bool ReqSIPDomain;
00146     bool ReqFQDN;
00147     bool ReqNISServer;
00148     bool ReqNISPServer;
00149     bool ReqNISDomain;
00150     bool ReqNISPDomain;
00151     bool ReqLifetime;
00152 };
00153 
00154 
00155 #endif
00156 

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