VR-Forces 5.0.3 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>
23 #include <readerWriter/rwReal.h>
24 #include <readerWriter/rwBoolean.h>
25 #include <readerWriter/rwInt.h>
27 #include "vrfutil/rwUserQuestion.h"
29 
31 {
32 protected:
33  typedef void (*DtScriptPSRScenarioSaveLoadFcn)(void*);
34 
35 public:
36  typedef std::map<DtSimTaskMessageType, DtRwScriptReactiveTaskEntry*> ReactiveTaskEntryMap;
37  typedef std::map<int, std::list<DtSimTaskMessageType> > PriorityMap;
38  typedef std::map<DtString, int> CategoryReactionLevelMap;
39 
42  const DtString& rwName = DtString::nullString(),
43  DtReaderWriterRegistry* parentRegistry = 0);
44 
47  const DtString& rwName = DtString::nullString(),
48  DtReaderWriterRegistry* parentRegistry = 0);
49 
52 
55 
58  const DtString& rwName = DtString::nullString(),
59  DtReaderWriterRegistry* parentRegistry = 0) const;
60 
63  virtual DtString type() const;
64 
66  static DtVrfProcessStateRepository* creator (const DtString& rwName,
67  DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
68 
69  virtual void putSelf(std::string& fp, int indentLevel, bool writeUnspecified, const DtFilename& path);
70  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths, const DtVariableBindingsList& variableBindings);
71 
72  virtual void addTaskPriority(const DtSimTaskMessageType& scriptId, int priority);
75  virtual void removeTaskPriority(const DtSimTaskMessageType& scriptId);
76  virtual const PriorityMap& priorityMap() const;
77  virtual void updateAllPriorities();
78 
83  virtual void addReactiveTaskEntry(const DtSimTaskMessageType& scriptId, DtRwScriptReactiveTaskEntry* entry, bool deleteOnUpdate = true);
84  virtual void removeReactiveTaskEntry(const DtSimTaskMessageType& scriptId, bool deleteEntry = true);
85  virtual DtRwScriptReactiveTaskEntry* findReactiveTaskEntry(const DtSimTaskMessageType& scriptId) const;
86  virtual const ReactiveTaskEntryMap& reactiveTaskEntryMap() const;
87 
88  virtual void addActionCategories(const std::set<DtString>& actionCategories);
89  virtual int currentReactionLevel(const std::set<DtString>& actionCategories) const;
90  virtual void updateReactionLevels(const std::set<DtString>& actionCategories);
91  virtual void updateAllReactionLevels();
92 
93  virtual void sweepMarkedForDeletion();
94 
96  virtual DtRwUserQuestionHandler& userQuestionHandler();
97  virtual const DtRwUserQuestionHandler& userQuestionHandler() const;
98 
99 protected:
100  bool doCategoriesOverlap(const std::set<DtString>& firstSet, const std::set<DtString>& secondSet, std::set<DtString>& overlap) const;
101 
102 protected:
104 
109 
111 };
std::map< DtSimTaskMessageType, DtRwScriptReactiveTaskEntry * > ReactiveTaskEntryMap
Definition: scriptReactiveTaskControllerPSR.h:36
File: rwRailSegment.h.
ReactiveTaskEntryMap myReactiveTaskEntryMap
Fast access only, though state will be saved through members above these.
Definition: scriptReactiveTaskControllerPSR.h:106
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:107
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtRwTemplatedListPtr< DtRwScriptReactiveTaskEntry, false > myReactiveTasks
Definition: scriptReactiveTaskControllerPSR.h:103
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:108
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:110
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
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
Definition: scriptReactiveTaskControllerPSR.h:30
Definition: rwScriptReactiveTaskEntry.h:21
Process Helper class to handle user questions.
Definition: rwUserQuestionHandler.h:17
std::map< DtString, int > CategoryReactionLevelMap
Definition: scriptReactiveTaskControllerPSR.h:38
virtual DtString type() const =0
Returns the string type of the repository, as defined in procSRTypes.h.
File: rwVector.h.
std::map< int, std::list< DtSimTaskMessageType > > PriorityMap
Definition: scriptReactiveTaskControllerPSR.h:37
const DtVrfProcessStateRepository & operator=(const DtVrfProcessStateRepository &orig)
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)