RMOL Logo Get Revenue Management Optimisation Library at SourceForge.net. Fast, secure and Free Open Source software downloads

PartialSumHolderHolder.hpp

Go to the documentation of this file.
00001 #ifndef __RMOL_BOM_PARTIALSUMHOLDERHOLDER_HPP
00002 #define __RMOL_BOM_PARTIALSUMHOLDERHOLDER_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <iostream>
00009 // RMOL
00010 #include <rmol/bom/BomAbstract.hpp>
00011 #include <rmol/bom/PartialSumHolderList.hpp>
00012 
00013 namespace RMOL {
00014 
00017   class PartialSumHolderHolder : public BomAbstract {
00021     friend class FacPartialSumHolderHolder;
00022     
00023   public:
00024     // ///////// Getters /////////
00027     const short getSize () const;
00028     
00030     PartialSumHolder& getPreviousPartialSumHolder () const;
00031 
00033     PartialSumHolder& getCurrentPartialSumHolder () const;
00034 
00038     void begin ();
00039 
00042     void iterate ();
00043 
00046     bool hasNotReachedEnd () const;
00047 
00048   public:
00049     // ///////// Display methods ////////
00052     void toStream (std::ostream&) const;
00053 
00056     void fromStream (std::istream&);
00057 
00059     std::string toString() const;
00060 
00063     const std::string describeKey() const;
00064 
00067     const std::string describeShortKey() const;
00068     
00070     const std::string display() const;
00071 
00073     const std::string shortDisplay() const;
00074 
00075     
00076   private:
00078     PartialSumHolderHolder();
00080     PartialSumHolderHolder (const int iSize);
00081 
00083     virtual ~PartialSumHolderHolder();
00084 
00085     
00086   private:
00091     void addPartialSumHolder (PartialSumHolder&);
00092 
00093     
00094   private:
00095     // //////// Attributes /////////
00097     PartialSumHolderList_T _partialSumHolderList;
00098 
00100     PartialSumHolderList_T::iterator _itPreviousPartialSumHolder;
00101     PartialSumHolderList_T::iterator _itCurrentPartialSumHolder;
00102   };
00103 }
00104 #endif // __RMOL_BOM_PARTIALSUMHOLDERHOLDER_HPP