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

SrvParsClassOpt.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: SrvParsClassOpt.h,v 1.7 2005/08/03 22:47:34 thomson Exp $
00010  *
00011  * $Log: SrvParsClassOpt.h,v $
00012  * Revision 1.7  2005/08/03 22:47:34  thomson
00013  * Support for 'share' parameter added,
00014  * Support for randomization between classes added.
00015  *
00016  * Revision 1.6  2004/09/28 20:12:39  thomson
00017  * All major values are now unsigned.
00018  *
00019  * Revision 1.5  2004/09/03 23:20:23  thomson
00020  * RAPID-COMMIT support fixed. (bugs #50, #51, #52)
00021  *
00022  * Revision 1.4  2004/07/05 00:12:30  thomson
00023  * Lots of minor changes.
00024  *
00025  * Revision 1.3  2004/06/28 22:37:59  thomson
00026  * Minor changes.
00027  *
00028  */
00029 
00030 class TSrvParsClassOpt;
00031 #ifndef TSRVPARSCLASS_H
00032 #define TSRVPARSCLASS_H
00033 
00034 #include <string>
00035 #include "StationID.h"
00036 #include "DHCPConst.h"
00037 #include "Container.h"
00038 #include "SmartPtr.h"
00039 #include "StationRange.h"
00040 #include "IPv6Addr.h"
00041 
00042 class TSrvParsClassOpt
00043 {
00044  public:
00045     TSrvParsClassOpt(void);
00046     ~TSrvParsClassOpt(void);
00047 
00048     //T1,T2,Valid,Prefered time routines
00049     void setT1Beg(unsigned long t1);
00050     void setT1End(unsigned long t1);
00051     unsigned long getT1Beg();
00052     unsigned long getT1End();
00053 
00054     void setT2Beg(unsigned long t2);
00055     void setT2End(unsigned long t2);
00056     unsigned long getT2Beg();
00057     unsigned long getT2End();
00058     
00059     void setPrefBeg(unsigned long pref);
00060     void setPrefEnd(unsigned long pref);
00061     unsigned long getPrefBeg();
00062     unsigned long getPrefEnd();
00063 
00064     void setShare(unsigned long share);
00065     unsigned long getShare();
00066 
00067     void setValidEnd(unsigned long valid);
00068     void setValidBeg(unsigned long valid);
00069     unsigned long getValidEnd();
00070     unsigned long getValidBeg();
00071         
00072     //Rejected clients access routines
00073     void addRejedClnt(SmartPtr<TStationRange> addr);
00074     void firstRejedClnt();
00075     SmartPtr<TStationRange> getRejedClnt();
00076     void setRejedClnt(TContainer<SmartPtr<TStationRange> > *rejedClnt);
00077     
00078     //Accepted clients access routines
00079     void addAcceptClnt(SmartPtr<TStationRange> addr);
00080     void firstAcceptClnt();
00081     SmartPtr<TStationRange> getAcceptClnt();
00082     void setAcceptClnt(TContainer<SmartPtr<TStationRange> > *acceptClnt);
00083     
00084     //Pool access routines
00085     void addPool(SmartPtr<TStationRange> addr);
00086     void firstPool();
00087     SmartPtr<TStationRange> getPool();
00088     void setPool(TContainer<SmartPtr<TStationRange> > *pool);
00089     long countPool();
00090 
00091     // leases count
00092     void setClassMaxLease(unsigned long maxClntLeases);
00093     unsigned long getClassMaxLease();
00094 
00095 private:
00096     //Ranges of T1 i T2
00097     unsigned long T1Beg;
00098     unsigned long T1End;
00099     unsigned long T2End;
00100     unsigned long T2Beg;
00101     unsigned long PrefBeg;
00102     unsigned long PrefEnd;
00103     unsigned long ValidBeg;
00104     unsigned long ValidEnd;
00105     unsigned long Share;
00106     
00107     TContainer<SmartPtr<TStationRange> > RejedClnt;
00108     TContainer<SmartPtr<TStationRange> > AcceptClnt;
00109     TContainer<SmartPtr<TStationRange> > Pool;
00110     
00111     unsigned long ClassMaxLease;
00112 };
00113 #endif
00114 

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