VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
currentTasksAdminContent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 #pragma once
11 
12 #include "vrftasks/adminContent.h"
13 #include <vlutil/vlString.h>
15 #include <list>
16 #include <vector>
19 
20 class DtSimTask;
21 class DtSetDataRequest;
22 
26 {
27  DtCurrentTaskData() {task = 0;}
29  task(orig.task), subtasks(orig.subtasks), status(orig.status), conflictingTaskIds(orig.conflictingTaskIds),
30  controller(orig.controller), taskId(orig.taskId) {};
31 
33  DtSimTask* task;
34  int taskId;
36 
37  std::list<DtCurrentTaskData> subtasks;
38 
43  int status;
44 
46  std::vector<DtSimTaskMessageType> conflictingTaskIds;
47 };
48 
52 {
55  set(orig.set), controller(orig.controller), setId(orig.setId) {};
56 
58  DtSetDataRequest* set;
59  int setId;
61 };
62 
63 #ifdef _MSC_VER
64 namespace DtBufferSerialize
65 {
66 #endif
70 
75  DT_DLL_vrftasks char *encode(const DtCurrentTaskData& val, char *buffer);
76 
80  DT_DLL_vrftasks const char *decode(DtCurrentTaskData& val, const char *buffer);
81 #ifdef _MSC_VER
82 }
83 #endif
84 
85 #ifdef _MSC_VER
86 namespace DtBufferSerialize
87 {
88 #endif
92 
97  DT_DLL_vrftasks char *encode(const DtCurrentScriptedSetData& val, char *buffer);
98 
102  DT_DLL_vrftasks const char *decode(DtCurrentScriptedSetData& val, const char *buffer);
103 #ifdef _MSC_VER
104 }
105 #endif
106 
114 {
115 public:
116  typedef std::list<DtCurrentTaskData> DtTaskList;
117  typedef std::list<DtCurrentScriptedSetData> DtScriptedSetList;
118 
121 
124 
128 
130  virtual ~DtCurrentTasksAdminContent();
131 
133  static DtAdminContent* create();
134 
136  virtual bool init();
137 
139  virtual const DtAdminContentMessageType& type() const;
140 
143  virtual void addTaskToList(const DtSimTask* task, const std::vector<DtSimTaskMessageType>& conflictingTaskTypes, int taskId,
144  int status, const DtString& controller);
145 
147  virtual void addScriptedSetToList(const DtSetDataRequest* set, int taskId,
148  const DtString& controller);
149 
151  virtual void addSubtask(const DtSimTask* task, int subtaskId, int spawningTaskId, int status, const DtString& controller,
152  bool addIfNoParent = false);
153 
155  virtual void clearTaskList();
156 
158  virtual void clearScriptedSetsList();
159 
164  virtual const DtTaskList& taskList() const;
165 
170  virtual const DtScriptedSetList& scriptedSetList() const;
171 
175  virtual bool testTaskForConflict(const DtSimTaskMessageType& taskType) const;
176 
179  virtual DtAdminContent * clone() const;
180 
182  virtual DtString stringRep() const;
183 
185  virtual int netRepSize() const;
186 
188  virtual bool setFromNet(const char* contentBuffer,
189  unsigned contentSize);
190 
192  virtual bool setToNet();
193 
195  virtual void resolveUnparentedSubtasks();
196 
198  virtual void clearUnparentedSubtasks();
199 
200 protected:
203  virtual void addUnparentedSubtask(const DtSimTask* task, int subtaskId, int spawningTaskId, int status, const DtString& controller);
204 
207  void clearTaskList(DtTaskList& taskList);
208 
210  virtual void clearAllTasks();
211 
215  void copyTaskList(const DtTaskList& taskList, DtTaskList& into);
216 
220  void copyScriptedSetList(const DtScriptedSetList& taskList, DtScriptedSetList& into);
221 
223  virtual DtString printTasksToString(const DtTaskList& tasks) const;
224  virtual DtString printSetsToString(const DtScriptedSetList& tasks) const;
225 
227  virtual void addTaskWithStatus(DtTaskList& list, const DtSimTask* task, int status, const std::vector<DtSimTaskMessageType>& conflictingTaskTypes,
228  int taskId, const DtString& controller);
229 
230 protected:
233 
235  typedef std::map<int, DtCurrentTaskData*> InternalTaskMap;
237 
239  {
241  int parentId;
243  int status;
245  };
246 
247  typedef std::vector<UnparentedSubtask> UnparentedSubtasks;
249 };
virtual bool setFromNet(const char *contentBuffer, unsigned contentSize)
Sets the contents of this set request based on the network buffer.
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
virtual int netRepSize() const
std::vector< DtSimTaskMessageType > conflictingTaskIds
The task types of all the tasks that conflict with the task.
Definition: currentTasksAdminContent.h:46
int status
The status of the task can be: 1 - Active 2 - Suspended 3 - Enabled to checking for reaction (if reac...
Definition: currentTasksAdminContent.h:43
virtual DtAdminContent * clone() const =0
Make a copy of this content.
int setId
Definition: currentTasksAdminContent.h:59
DtTaskList myTaskList
Definition: currentTasksAdminContent.h:231
Definition: vrfObjectMessageTypeTemplate.h:24
DtSimTask * task
Definition: currentTasksAdminContent.h:240
Structure holding the current task information for one of the current tasks for an entity...
Definition: currentTasksAdminContent.h:25
DtCurrentScriptedSetData()
Definition: currentTasksAdminContent.h:53
int status
Definition: currentTasksAdminContent.h:243
DtString controller
Definition: currentTasksAdminContent.h:60
DtCurrentTaskData()
Definition: currentTasksAdminContent.h:27
InternalTaskMap myInternalTaskMap
Definition: currentTasksAdminContent.h:236
int parentId
Definition: currentTasksAdminContent.h:241
UnparentedSubtasks myUnparentedSubtasks
Definition: currentTasksAdminContent.h:248
DtSetDataRequest is an abstract base class from which real setDataRequests can derive.
Definition: setDataRequest.h:40
const DtAdminContent & operator=(const DtAdminContent &orig)
assignment operator; same as copy costructor.
DtCurrentTaskData(const DtCurrentTaskData &orig)
Definition: currentTasksAdminContent.h:28
int taskId
Definition: currentTasksAdminContent.h:34
int subtaskId
Definition: currentTasksAdminContent.h:242
DtString controller
Definition: currentTasksAdminContent.h:244
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer.
*array controller(no time code)*/template< class Instance
//!//!//!//!//!//!//!//!//!//!//!//
DtScriptedSetList myScriptedSetList
Definition: currentTasksAdminContent.h:232
std::list< DtCurrentTaskData > DtTaskList
Definition: currentTasksAdminContent.h:116
#define DT_DLL_vrftasks
This file is used to determine how to build.
Definition: vrftasksDefines.h:26
std::vector< UnparentedSubtask > UnparentedSubtasks
Definition: currentTasksAdminContent.h:247
virtual bool init()
Base class init does nothing, but this will be called by create, in case any other deriving class nee...
Admin content that is used to send the current tasks status from a specific entity.
Definition: currentTasksAdminContent.h:113
DtAdminContent.
Definition: adminContent.h:24
virtual const DtAdminContentMessageType & type() const =0
DtString controller
Definition: currentTasksAdminContent.h:35
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:33
std::list< DtCurrentTaskData > subtasks
Definition: currentTasksAdminContent.h:37
Definition: currentTasksAdminContent.h:238
virtual bool setToNet()
Sets netRep buffer to the contents of this set request.
Structure holding the current set information for one of the current scripted sets for an entity...
Definition: currentTasksAdminContent.h:51
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
virtual DtString stringRep() const =0
Get a readable string representation of this content.
DtCurrentScriptedSetData(const DtCurrentScriptedSetData &orig)
Definition: currentTasksAdminContent.h:54
std::map< int, DtCurrentTaskData * > InternalTaskMap
Internal map that keeps track of tasks such that when adding a subtask it can be added efficiently...
Definition: currentTasksAdminContent.h:235
std::list< DtCurrentScriptedSetData > DtScriptedSetList
Definition: currentTasksAdminContent.h:117

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)