VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptReactiveTaskControllerPSR.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
10 
14 #include <readerWriter/rwReal.h>
15 #include <readerWriter/rwString.h>
17 #include "vrfutil/railSegment.h"
18 #include "vrfutil/rwRailSegment.h"
19 #include "readerWriter/rwVector.h"
20 #include <set>
23 #include <readerWriter/rwReal.h>
24 #include <readerWriter/rwBoolean.h>
25 #include <readerWriter/rwInt.h>
27 #include "vrfobjcore/vrfObject.h"
28 #include "vrfutil/rwUserQuestion.h"
30 
32 {
33 protected:
34  typedef void (*DtScriptPSRScenarioSaveLoadFcn)(void*);
35 
36 public:
39  const DtString& rwName = DtString::nullString(),
40  DtReaderWriterRegistry* parentRegistry = 0);
41 
44  const DtString& rwName = DtString::nullString(),
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
49 
52 
55  const DtString& rwName = DtString::nullString(),
56  DtReaderWriterRegistry* parentRegistry = 0) const;
57 
60  virtual DtString type() const;
61 
63  static DtVrfProcessStateRepository* creator (const DtString& rwName,
64  DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
65 
66  virtual void putSelf(std::string& fp, int indentLevel, bool writeUnspecified, const DtFilename& path);
67  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& variableBindings);
68 
69  virtual void addTaskPriority(const DtSimTaskMessageType& scriptId, int priority);
72  virtual void removeTaskPriority(const DtSimTaskMessageType& scriptId);
73  virtual const std::map<int, std::list<DtSimTaskMessageType> >& priorityMap() const;
74  virtual void updateAllPriorities();
75 
80  virtual void addReactiveTaskEntry(const DtSimTaskMessageType& scriptId, DtRwScriptReactiveTaskEntry* entry, bool deleteOnUpdate = true);
81  virtual void removeReactiveTaskEntry(const DtSimTaskMessageType& scriptId, bool deleteEntry = true);
82  virtual DtRwScriptReactiveTaskEntry* findReactiveTaskEntry(const DtSimTaskMessageType& scriptId) const;
83  virtual const std::map<DtSimTaskMessageType, DtRwScriptReactiveTaskEntry*>& reactiveTaskEntryMap() const;
84 
85  virtual void addActionCategories(const std::set<DtString>& actionCategories);
86  virtual int currentReactionLevel(const std::set<DtString>& actionCategories) const;
87  virtual void updateReactionLevels(const std::set<DtString>& actionCategories);
88  virtual void updateAllReactionLevels();
89 
90  virtual void sweepMarkedForDeletion();
91 
93  virtual DtRwUserQuestionHandler& userQuestionHandler();
94  virtual const DtRwUserQuestionHandler& userQuestionHandler() const;
95 
96 protected:
97  bool doCategoriesOverlap(const std::set<DtString>& firstSet, const std::set<DtString>& secondSet, std::set<DtString>& overlap) const;
98 
99 protected:
101 
103  std::map<DtSimTaskMessageType, DtRwScriptReactiveTaskEntry*> myReactiveTaskEntryMap;
104  std::map<int, std::list<DtSimTaskMessageType> > myPriorityMap;
105  std::map<DtString, int> myCategoryReactionLevelMap;
106 
108 };
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
File: rwRailSegment.h.
Definition: readerWriterRegistry.h:39
std::map< int, std::list< DtSimTaskMessageType > > myPriorityMap
Definition: scriptReactiveTaskControllerPSR.h:104
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtRwTemplatedListPtr< DtRwScriptReactiveTaskEntry, false > myReactiveTasks
Definition: scriptReactiveTaskControllerPSR.h:100
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const =0
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file.
DtRwUserQuestionHandler myUserQuestionHandler
Definition: scriptReactiveTaskControllerPSR.h:107
Class DtVrfProcessStateRepository: Abstract base class for all process state repositories.
Definition: vrfProcessStateRepository.h:43
std::map< DtSimTaskMessageType, DtRwScriptReactiveTaskEntry * > myReactiveTaskEntryMap
Fast access only, though state will be saved through members above these.
Definition: scriptReactiveTaskControllerPSR.h:103
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Top level to read itself from an input stream.
Definition: scriptReactiveTaskControllerPSR.h:31
Definition: rwScriptReactiveTaskEntry.h:21
Process Helper class to handle user questions.
Definition: rwUserQuestionHandler.h:17
virtual DtString type() const =0
Returns the string type of the repository, as defined in procSRTypes.h.
File: rwVector.h.
std::map< DtString, int > myCategoryReactionLevelMap
Definition: scriptReactiveTaskControllerPSR.h:105
const DtVrfProcessStateRepository & operator=(const DtVrfProcessStateRepository &orig)

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)