$treeview $search $mathjax
RMOL Logo  1.00.0
$projectbrief
$projectbrief
$searchbox

rmol/RMOL_Types.hpp

Go to the documentation of this file.
00001 #ifndef __RMOL_RMOL_TYPES_HPP
00002 #define __RMOL_RMOL_TYPES_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <map>
00009 #include <vector>
00010 // Boost
00011 #include <boost/shared_ptr.hpp>
00012 // StdAir
00013 #include <stdair/stdair_inventory_types.hpp>
00014 #include <stdair/stdair_rm_types.hpp>
00015 #include <stdair/stdair_exceptions.hpp>
00016 
00017 // Forward declarations.
00018 namespace stdair {
00019   class BookingClass;
00020 }
00021 
00022 
00023 namespace RMOL {
00024 
00025   // Forward declarations
00026   class RMOL_Service;
00027 
00028   // ///////// Exceptions ///////////
00032   class OverbookingException : public stdair::RootException {
00033   public:
00035     OverbookingException (const std::string& iWhat)
00036       : stdair::RootException (iWhat) {}
00037   };
00038 
00042   class UnconstrainingException : public stdair::RootException {
00043   public:
00045     UnconstrainingException (const std::string& iWhat)
00046       : stdair::RootException (iWhat) {}
00047   };
00048 
00052   class EmptyNestingStructException : public UnconstrainingException {
00053   public:
00055     EmptyNestingStructException (const std::string& iWhat)
00056       : UnconstrainingException (iWhat) {}
00057   };
00058 
00062   class MissingDCPException : public UnconstrainingException {
00063   public:
00065     MissingDCPException (const std::string& iWhat)
00066       : UnconstrainingException (iWhat) {}
00067   };
00068 
00072   class OptimisationException : public stdair::RootException {
00073   public:
00075     OptimisationException (const std::string& iWhat)
00076       : stdair::RootException (iWhat) {}
00077   };
00078 
00082   class PolicyException : public stdair::RootException {
00083   public:
00085     PolicyException (const std::string& iWhat)
00086       : stdair::RootException (iWhat) {}
00087   };
00088 
00089 
00093   class ConvexHullException : public PolicyException {
00094   public:
00096     ConvexHullException (const std::string& iWhat)
00097       : PolicyException (iWhat) {}
00098   };
00099 
00103   class EmptyConvexHullException : public ConvexHullException {
00104   public:
00106     EmptyConvexHullException (const std::string& iWhat)
00107       : ConvexHullException (iWhat) {}
00108   };
00109 
00113   class FirstPolicyNotNullException : public ConvexHullException {
00114   public:
00116     FirstPolicyNotNullException (const std::string& iWhat)
00117       : ConvexHullException (iWhat) {}
00118   };
00119 
00123   class YieldConvexHullException : public ConvexHullException {
00124   public:
00126     YieldConvexHullException (const std::string& iWhat)
00127       : ConvexHullException (iWhat) {}
00128   };
00129 
00130   
00134   class FareFamilyException : public stdair::RootException { 
00135   public:
00137     FareFamilyException (const std::string& iWhat) 
00138       : stdair::RootException (iWhat) {}
00139   };
00140 
00144   class EmptyBookingClassListException : public FareFamilyException {
00145   public:
00147     EmptyBookingClassListException (const std::string& iWhat)
00148       : FareFamilyException (iWhat) {}
00149   };
00150 
00154   class MissingBookingClassInFareFamilyException : public FareFamilyException {
00155   public:
00157     MissingBookingClassInFareFamilyException (const std::string& iWhat)
00158       : FareFamilyException (iWhat) {}
00159   };
00160 
00164   class FareFamilyDemandVectorSizeException : public FareFamilyException {
00165   public:
00167     FareFamilyDemandVectorSizeException (const std::string& iWhat)
00168       : FareFamilyException (iWhat) {}
00169   };
00170 
00171 
00172   // //////// Type definitions /////////
00176   typedef boost::shared_ptr<RMOL_Service> RMOL_ServicePtr_T;
00177   
00179   typedef std::vector<stdair::Flag_T> FlagVector_T;
00180 
00182   typedef std::map<stdair::BookingClass*, stdair::MeanStdDevPair_T> BookingClassMeanStdDevPairMap_T;
00183 }
00184 #endif // __RMOL_RMOL_TYPES_HPP