VR-Forces Developer's Guide
 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>
22 #include <readerWriter/rwReal.h>
23 #include <readerWriter/rwBoolean.h>
24 #include <readerWriter/rwInt.h>
26 #include "vrfutil/rwUserQuestion.h"
28 
30 {
31 protected:
32  typedef void (*DtScriptPSRScenarioSaveLoadFcn)(void*);
33 
34 public:
35  typedef std::map<DtSimTaskMessageType, DtRwScriptReactiveTaskEntry*> ReactiveTaskEntryMap;
36  typedef std::map<int, std::list<DtSimTaskMessageType> > PriorityMap;
37  typedef std::map<DtString, int> CategoryReactionLevelMap;
38 
41  const DtString& rwName = DtString::nullString(),
42  DtReaderWriterRegistry* parentRegistry = 0);
43 
46  const DtString& rwName = DtString::nullString(),
47  DtReaderWriterRegistry* parentRegistry = 0);
48 
50  virtual ~DtScriptReactiveTaskControllerPSR() override;
51 
54 
57  const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0) const override;
58 
61  virtual DtString type() const override;
62 
64  static DtVrfProcessStateRepository* creator (const DtString& rwName,
65  DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
66 
67  virtual void putSelf(std::string& fp, int indentLevel, bool writeUnspecified, const DtFilename& path) override;
68  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
69  const DtVariableBindingsList& variableBindings) override;
70 
71  virtual void addTaskPriority(const DtSimTaskMessageType& scriptId, int priority);
74  virtual void removeTaskPriority(const DtSimTaskMessageType& scriptId);
75  virtual const PriorityMap& priorityMap() const;
76  virtual void updateAllPriorities();
77 
82  virtual void addReactiveTaskEntry(const DtSimTaskMessageType& scriptId, DtRwScriptReactiveTaskEntry* entry, bool deleteOnUpdate = true);
83  virtual void removeReactiveTaskEntry(const DtSimTaskMessageType& scriptId, bool deleteEntry = true);
84  virtual DtRwScriptReactiveTaskEntry* findReactiveTaskEntry(const DtSimTaskMessageType& scriptId) const;
85  virtual const ReactiveTaskEntryMap& reactiveTaskEntryMap() const;
86 
87  virtual void addActionCategories(const std::set<DtString>& actionCategories);
88  virtual int currentReactionLevel(const std::set<DtString>& actionCategories) const;
89  virtual void updateReactionLevels(const std::set<DtString>& actionCategories);
90  virtual void updateAllReactionLevels();
91 
92  virtual void sweepMarkedForDeletion();
93 
95  virtual DtRwUserQuestionHandler& userQuestionHandler();
96  virtual const DtRwUserQuestionHandler& userQuestionHandler() const;
97 
98 protected:
99  bool doCategoriesOverlap(const std::set<DtString>& firstSet, const std::set<DtString>& secondSet, std::set<DtString>& overlap) const;
100 
101 protected:
103 
108 
110 };
std::map< DtSimTaskMessageType, DtRwScriptReactiveTaskEntry * > ReactiveTaskEntryMap
Definition: scriptReactiveTaskControllerPSR.h:35
File: rwRailSegment.h.
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
ReactiveTaskEntryMap myReactiveTaskEntryMap
Fast access only, though state will be saved through members above these.
Definition: scriptReactiveTaskControllerPSR.h:105
Definition: readerWriterRegistry.h:39
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
PriorityMap myPriorityMap
Definition: scriptReactiveTaskControllerPSR.h:106
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtRwTemplatedListPtr< DtRwScriptReactiveTaskEntry, false > myReactiveTasks
Definition: scriptReactiveTaskControllerPSR.h:102
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const =0
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
CategoryReactionLevelMap myCategoryReactionLevelMap
Definition: scriptReactiveTaskControllerPSR.h:107
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. If write unspecified is true, will write entries that are uns...
DtRwUserQuestionHandler myUserQuestionHandler
Definition: scriptReactiveTaskControllerPSR.h:109
Class DtVrfProcessStateRepository: Abstract base class for all process state repositories. Process state repositories represent (potentially) shared, savable information for one or more components functioning together to achieve some process or set of processes; such as aiming and firing a weapon; moving an object; or just waiting a specified amount of time.
Definition: vrfProcessStateRepository.h:45
Definition: scriptReactiveTaskControllerPSR.h:29
Definition: rwScriptReactiveTaskEntry.h:20
Process Helper class to handle user questions.
Definition: rwUserQuestionHandler.h:17
std::map< DtString, int > CategoryReactionLevelMap
Definition: scriptReactiveTaskControllerPSR.h:37
virtual DtString type() const =0
Returns the string type of the repository, as defined in psrTypes.h.
File: rwVector.h.
std::map< int, std::list< DtSimTaskMessageType > > PriorityMap
Definition: scriptReactiveTaskControllerPSR.h:36
const DtVrfProcessStateRepository & operator=(const DtVrfProcessStateRepository &orig)
A locally simulated VRF object.
Definition: localObject.h:98

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)