$treeview $search $mathjax
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