SEvMgr Logo  0.2.0
C++ Simulation-Oriented Discrete Event Management Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines
SEVMGR_Service.hpp
Go to the documentation of this file.
00001 #ifndef __SEVMGR_SEVMGR_SERVICE_HPP
00002 #define __SEVMGR_SEVMGR_SERVICE_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // StdAir
00008 #include <stdair/stdair_basic_types.hpp>
00009 #include <stdair/stdair_service_types.hpp>
00010 #include <stdair/bom/EventTypes.hpp>
00011 
00012 // Forward declarations
00013 namespace stdair {
00014   class EventQueue;
00015   struct ProgressStatusSet;
00016   struct BasLogParams;
00017   struct BasDBParams;
00018   struct EventStruct;
00019 }
00020 
00021 namespace SEVMGR {
00022 
00024   class SEVMGR_ServiceContext;
00025   
00029   class SEVMGR_Service {
00030   public:
00031     // ////////////////// Constructors and Destructors //////////////////    
00047     SEVMGR_Service (const stdair::BasLogParams&, const stdair::BasDBParams&);
00048 
00060     SEVMGR_Service (const stdair::BasLogParams&);
00061 
00077     SEVMGR_Service (stdair::STDAIR_ServicePtr_T);
00078     
00082     ~SEVMGR_Service();
00083 
00084 
00085   public:
00086     // ////////////////// Business support methods //////////////////    
00090     void buildSampleBom();
00091 
00108     stdair::ProgressStatusSet popEvent (stdair::EventStruct&) const;
00109 
00115     bool isQueueDone() const;
00116 
00121     void reset() const;
00122 
00123 
00124   public:
00125     // //////////////// Display support methods /////////////////
00133     std::string csvDisplay() const;
00134 
00135 
00136   private:
00137     // ////////////////// Constructors and Destructors //////////////////    
00141     SEVMGR_Service();
00142     
00146     SEVMGR_Service (const SEVMGR_Service&);
00147 
00152     void initServiceContext();
00153 
00165     stdair::STDAIR_ServicePtr_T initStdAirService (const stdair::BasLogParams&,
00166                                                    const stdair::BasDBParams&);
00167     
00177     stdair::STDAIR_ServicePtr_T initStdAirService (const stdair::BasLogParams&);
00178     
00187     void addStdAirService (stdair::STDAIR_ServicePtr_T ioSTDAIR_ServicePtr,
00188                            const bool iOwnStdairService);
00189     
00196     void initSevmgrService();
00197 
00201     void finalise();
00202 
00203     
00204   private:
00205     // ///////// Service Context /////////
00209     SEVMGR_ServiceContext* _sevmgrServiceContext;
00210   };
00211 
00212 }
00213 #endif // __SEVMGR_SEVMGR_SERVICE_HPP