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

FacBucketHolder.cpp

Go to the documentation of this file.
00001 // //////////////////////////////////////////////////////////////////////
00002 // Import section
00003 // //////////////////////////////////////////////////////////////////////
00004 // C
00005 #include <assert.h>
00006 // RMOL
00007 #include <rmol/bom/BucketHolder.hpp>
00008 #include <rmol/factory/FacSupervisor.hpp>
00009 #include <rmol/factory/FacBucketHolder.hpp>
00010 
00011 namespace RMOL {
00012 
00013   FacBucketHolder* FacBucketHolder::_instance = NULL;
00014 
00015   // //////////////////////////////////////////////////////////////////////
00016   FacBucketHolder::~FacBucketHolder () {
00017     _instance = NULL;
00018   }
00019 
00020   // //////////////////////////////////////////////////////////////////////
00021   FacBucketHolder& FacBucketHolder::instance () {
00022 
00023     if (_instance == NULL) {
00024       _instance = new FacBucketHolder();
00025       assert (_instance != NULL);
00026       
00027       FacSupervisor::instance().registerBomFactory (_instance);
00028     }
00029     return *_instance;
00030   }
00031 
00032   // //////////////////////////////////////////////////////////////////////
00033   BucketHolder& FacBucketHolder::create (const double iCabinCapacity) {
00034     BucketHolder* aBucketHolder_ptr = NULL;
00035 
00036     aBucketHolder_ptr = new BucketHolder (iCabinCapacity);
00037     assert (aBucketHolder_ptr != NULL);
00038 
00039     // The new object is added to the Bom pool
00040     _pool.push_back (aBucketHolder_ptr);
00041 
00042     return *aBucketHolder_ptr;
00043   }
00044 
00045   // //////////////////////////////////////////////////////////////////////
00046   void FacBucketHolder::addBucket (BucketHolder& ioBucketHolder, 
00047                                    Bucket& ioBucket) {
00048     ioBucketHolder._bucketList.push_back (&ioBucket);
00049   }
00050 
00051 }
SourceForge Logo

Generated on Sat Jun 6 13:48:51 2009 for RMOL by Doxygen 1.5.7.1