00001 // ////////////////////////////////////////////////////////////////////// 00002 // Import section 00003 // ////////////////////////////////////////////////////////////////////// 00004 // C 00005 #include <assert.h> 00006 // RMOL 00007 #include <rmol/basic/BasConst_RMOL_Service.hpp> 00008 #include <rmol/field/FldYieldRange.hpp> 00009 #include <rmol/field/FldDistributionParameters.hpp> 00010 #include <rmol/bom/Demand.hpp> 00011 #include <rmol/bom/Bucket.hpp> 00012 #include <rmol/bom/BucketHolder.hpp> 00013 #include <rmol/factory/FacSupervisor.hpp> 00014 #include <rmol/factory/FacDemand.hpp> 00015 #include <rmol/factory/FacBucket.hpp> 00016 #include <rmol/factory/FacBucketHolder.hpp> 00017 #include <rmol/command/FileMgr.hpp> 00018 #include <rmol/service/RMOL_ServiceContext.hpp> 00019 00020 namespace RMOL { 00021 00022 // ////////////////////////////////////////////////////////////////////// 00023 RMOL_ServiceContext:: 00024 RMOL_ServiceContext (const ResourceCapacity_T iResourceCapacity) : 00025 _bucketHolder (NULL), _capacity (iResourceCapacity) { 00026 init (iResourceCapacity); 00027 } 00028 00029 // ////////////////////////////////////////////////////////////////////// 00030 RMOL_ServiceContext::RMOL_ServiceContext () : 00031 _bucketHolder (NULL), _capacity (DEFAULT_RMOL_SERVICE_CAPACITY) { 00032 init (DEFAULT_RMOL_SERVICE_CAPACITY); 00033 } 00034 00035 // ////////////////////////////////////////////////////////////////////// 00036 RMOL_ServiceContext::RMOL_ServiceContext (const RMOL_ServiceContext&) : 00037 _bucketHolder (NULL), _capacity (DEFAULT_RMOL_SERVICE_CAPACITY) { 00038 init (DEFAULT_RMOL_SERVICE_CAPACITY); 00039 } 00040 00041 // ////////////////////////////////////////////////////////////////////// 00042 RMOL_ServiceContext::~RMOL_ServiceContext() { 00043 } 00044 00045 // ////////////////////////////////////////////////////////////////////// 00046 void RMOL_ServiceContext::init (const ResourceCapacity_T iResourceCapacity) { 00047 _bucketHolder = &FacBucketHolder::instance().create (iResourceCapacity); 00048 } 00049 00050 // ////////////////////////////////////////////////////////////////////// 00051 void RMOL_ServiceContext::addBucket (const double iYieldRange, 00052 const double iDemandMean, 00053 const double iDemandStandardDev) { 00054 const FldYieldRange aYieldRange (iYieldRange); 00055 const FldDistributionParameters aDistribParams (iDemandMean, 00056 iDemandStandardDev); 00057 Demand& aDemand = 00058 FacDemand::instance().create (aDistribParams, aYieldRange); 00059 Bucket& aBucket = FacBucket::instance().create (aYieldRange, aDemand); 00060 00061 assert (_bucketHolder != NULL); 00062 FacBucketHolder::instance().addBucket (*_bucketHolder, aBucket); 00063 } 00064 00065 // ////////////////////////////////////////////////////////////////////// 00066 void RMOL_ServiceContext:: 00067 readFromInputFile (const std::string& iInputFileName) { 00068 assert (_bucketHolder != NULL); 00069 FileMgr::readAndProcessInputFile (iInputFileName, *_bucketHolder); 00070 } 00071 00072 }
Generated on Sun Jun 14 23:33:59 2009 for RMOL by Doxygen 1.5.8