COSMOS core  1.0.2 (beta)
Comprehensive Open-architecture Solution for Mission Operations Systems
scheduler.h
Go to the documentation of this file.
1 /********************************************************************
2 * Copyright (C) 2015 by Interstel Technologies, Inc.
3 * and Hawaii Space Flight Laboratory.
4 *
5 * This file is part of the COSMOS/core that is the central
6 * module for COSMOS. For more information on COSMOS go to
7 * <http://cosmos-project.com>
8 *
9 * The COSMOS/core software is licenced under the
10 * GNU Lesser General Public License (LGPL) version 3 licence.
11 *
12 * You should have received a copy of the
13 * GNU Lesser General Public License
14 * If not, go to <http://www.gnu.org/licenses/>
15 *
16 * COSMOS/core is free software: you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public License
18 * as published by the Free Software Foundation, either version 3 of
19 * the License, or (at your option) any later version.
20 *
21 * COSMOS/core is distributed in the hope that it will be useful, but
22 * WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
25 *
26 * Refer to the "licences" folder for further information on the
27 * condititons and terms to use this software.
28 ********************************************************************/
29 
30 #ifndef COSMOS_SCHEDULER_QUEUE_H
31 #define COSMOS_SCHEDULER_QUEUE_H
32 
37 
42 #include "support/configCosmos.h"
43 #include "agent/agentclass.h"
44 #include "agent/event.h"
45 
46 using std::cout;
47 using std::endl;
48 using std::string;
49 
50 namespace Cosmos
51 {
52  namespace Support
53  {
54 
55  // Class
56  class Scheduler
57  {
58  private:
61  public:
62 
63  Scheduler(string node_name);
64  ~Scheduler();
65 
66  void addEvent(string name, string data, double utc, string condition, uint32_t flag);
67  void addEvent(Event event);
68  void deleteEvent(string name, string data, double utc, string condition, uint32_t flag);
69  void deleteEvent(Event event);
70  int getEventQueueSize();
71  void getEventQueue();
72  }; // end of Scheduler Class
73  } // end of namespace Support
74 } // end of namepsace Cosmos
75 
76 #endif // COSMOS_SCHEDULER_QUEUE_H
Definition: agentclass.cpp:54
Agent * agent
Definition: scheduler.h:59
Class to manage Event information.
Definition: event.h:57
Definition: scheduler.h:56
Definition: jsondef.h:923
Scheduler(string node_name)
Definition: scheduler.cpp:41
beatstruc agent_exec_soh
Definition: scheduler.h:60
void deleteEvent(string name, string data, double utc, string condition, uint32_t flag)
Definition: scheduler.cpp:80
string node_name
Definition: agent_001.cpp:46
int getEventQueueSize()
Definition: scheduler.cpp:108
~Scheduler()
Definition: scheduler.cpp:48
Definition: agentclass.h:139
Headers and definitions common to all COSMOS.
string name
Definition: cubesat2obj.cpp:6
Agent Server and Client header file.
Commanding Class.
void getEventQueue()
Definition: scheduler.cpp:124
void addEvent(string name, string data, double utc, string condition, uint32_t flag)
Definition: scheduler.cpp:52