SEvMgr Logo  1.00.0
C++ Simulation-Oriented Discrete Event Management Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
EventQueueManager.hpp
Go to the documentation of this file.
1 #ifndef __SEVMGR_CMD_EVENTQUEUEMANAGER_HPP
2 #define __SEVMGR_CMD_EVENTQUEUEMANAGER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // StdAir
8 #include <stdair/stdair_basic_types.hpp>
9 #include <stdair/command/CmdAbstract.hpp>
10 #include <stdair/stdair_service_types.hpp>
11 // SEvMgr
12 #include <sevmgr/SEVMGR_Types.hpp>
13 
14 // Forward declarations
15 namespace stdair {
16  struct ProgressStatusSet;
17 }
18 
19 namespace SEVMGR {
20 
21  // Forward declarations
22  class EventQueue;
23 
27  class EventQueueManager : public stdair::CmdAbstract {
28  friend class SEVMGR_Service;
29 
30  private:
31  // //////// Business methodes //////////
35  static void buildSampleQueue (stdair::STDAIR_ServicePtr_T,
36  EventQueue&);
37 
41  static stdair::BookingRequestStruct buildSampleBookingRequest(stdair::STDAIR_ServicePtr_T,
42  const bool isForCRS = false);
43 
47  static void reset (EventQueue&);
48 
52  static void addEvent (EventQueue&, stdair::EventStruct&);
53 
57  static const std::string describeKey (const EventQueue&);
58 
62  static const std::string list (const EventQueue&);
63 
67  static const std::string list (const EventQueue&,
68  const stdair::EventType::EN_EventType&);
69 
73  static stdair::ProgressStatusSet popEvent (EventQueue&,
74  stdair::EventStruct&);
75 
79  static void run (EventQueue&, stdair::EventStruct&);
80 
97  static bool select (EventQueue&, stdair::EventStruct&, const stdair::DateTime_T&);
98 
102  static void updateStatus (EventQueue&,
103  const stdair::EventType::EN_EventType&,
104  const stdair::Count_T&);
109  static void addStatus (EventQueue&,
110  const stdair::EventType::EN_EventType&,
111  const stdair::Count_T&);
112 
117  static bool hasProgressStatus (const EventQueue&,
118  const stdair::EventType::EN_EventType&);
119 
123  static bool isQueueDone (const EventQueue&);
124 
125 
129  static const stdair::Count_T& getQueueSize(const EventQueue&);
130 
134  static const stdair::Count_T&
135  getExpectedTotalNumberOfEventsToBeGenerated(const EventQueue&);
136 
140  static const stdair::Count_T&
141  getExpectedTotalNumberOfEventsToBeGenerated(const EventQueue&,
142  const stdair::EventType::EN_EventType&);
143 
147  static const stdair::Count_T&
148  getActualTotalNumberOfEventsToBeGenerated(const EventQueue&);
149 
153  static const stdair::Count_T&
154  getActualTotalNumberOfEventsToBeGenerated(const EventQueue&,
155  const stdair::EventType::EN_EventType&);
156 
160  static const stdair::ProgressStatus& getStatus (const EventQueue&,
161  const stdair::EventType::EN_EventType&);
162 
167  static const stdair::ProgressStatus& getStatus (const EventQueue&);
168 
169  };
170 
171 }
172 #endif // __SEVMGR_CMD_EVENTQUEUEMANAGER_HPP