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_exceptions.hpp> 00015 00016 // Forward declarations. 00017 namespace stdair { 00018 class BookingClass; 00019 } 00020 00021 00022 namespace RMOL { 00023 00024 // Forward declarations 00025 class RMOL_Service; 00026 00027 // ///////// Exceptions /////////// 00031 class OverbookingException : public stdair::RootException { 00032 public: 00034 OverbookingException (const std::string& iWhat) 00035 : stdair::RootException (iWhat) {} 00036 }; 00037 00041 class UnconstrainingException : public stdair::RootException { 00042 public: 00044 UnconstrainingException (const std::string& iWhat) 00045 : stdair::RootException (iWhat) {} 00046 }; 00047 00051 class ForecastException : public stdair::RootException { 00052 public: 00054 ForecastException (const std::string& iWhat) 00055 : stdair::RootException (iWhat) {} 00056 }; 00057 00061 class OptimisationException : public stdair::RootException { 00062 public: 00064 OptimisationException (const std::string& iWhat) 00065 : stdair::RootException (iWhat) {} 00066 }; 00067 00068 00069 // //////// Type definitions ///////// 00073 typedef boost::shared_ptr<RMOL_Service> RMOL_ServicePtr_T; 00074 00076 typedef std::vector<stdair::NbOfRequests_T> UnconstrainedDemandVector_T; 00077 00079 typedef std::vector<stdair::NbOfBookings_T> BookingVector_T; 00080 00082 typedef std::vector<stdair::Flag_T> FlagVector_T; 00083 00086 typedef std::map<stdair::BookingClass*, UnconstrainedDemandVector_T>BookingClassUnconstrainedDemandVectorMap_T; 00087 00090 typedef std::map<stdair::BookingClass*, stdair::NbOfRequests_T>BookingClassUnconstrainedDemandMap_T; 00091 00093 typedef std::map<const stdair::DTD_T, double> FRAT5Curve_T; 00094 00095 } 00096 #endif // __RMOL_RMOL_TYPES_HPP