VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simTask.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <readerWriter/rwBoolean.h>
16 #include <vlutil/vlNetTypes.h>
17 #include "tdbutil/tdbUnits.h"
18 
19 class DtSimTaskFactory;
20 
31 {
32 protected:
35 
37  DtSimTask();
38 
41  DtSimTask(const DtString & writeName,
42  DtReaderWriterRegistry * parentRegistry = 0);
43 
45  DtSimTask(const DtString & writeName, const DtSimTask & orig,
46  DtReaderWriterRegistry * parentRegistry = 0);
47 
49  const DtSimTask & operator=(const DtSimTask & orig);
50 
51 public:
52 
54  virtual ~DtSimTask();
55 
58  virtual bool init();
59 
65  virtual const DtSimTaskMessageType& type() const = 0;
66 
67  virtual bool isTypeRegistered(const DtSimTaskMessageType& taskName);
68 
73  virtual DtSimTask * clone(const DtString & name, DtReaderWriterRegistry *
74  parentRegistry = 0) const = 0;
75 
81  virtual DtString stringRep() const = 0;
82 
86  virtual void setSubtask(bool flag);
87  virtual bool subtask() const;
88 
93  virtual void setAllowTaskVisualizations(bool flag);
94  virtual bool allowTaskVisualizations() const;
95 
98  virtual void putData(std::string& fp, int indentLevel = 0);
99 
102  virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
103  const DtVariableBindingsList& variableBindings);
104 
105  virtual char* netRep();
106 
112  virtual int netRepSize() const;
113 
118  virtual bool setFromNet(const char* contentBuffer,
119  unsigned contentSize);
120 
128  virtual bool setToNet();
129 
130 
141  static DtSimTask * createTask(DtlObjPtr mtlStream);
142  static DtSimTask * createTask(const DtSimTaskMessageType& taskType);
143 
145  static void addTaskCreatorFcn(const DtSimTaskMessageType& taskName,
146  DtSimTaskCreatorFcn fcn);
147 
148  static void setFactory(DtSimTaskFactory * factory);
149  static DtSimTaskFactory* factory();
150 
151 protected:
152  virtual char* createNetworkBuffer();
153 
154 protected:
157  char* myNetRep;
158 
160 };
161 
162 namespace DtBufferSerialize
163 {
166  DT_DLL_vrftasks int getSize(const DtSimTask* const& taskPtr);
167 
172  DT_DLL_vrftasks char *encode(const DtSimTask* const& taskPtr, char *buffer);
173 
182  DT_DLL_vrftasks const char *decode(DtSimTask*& taskPtr, const char *buffer);
183 }
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
Factory for DtSimTask instances used in messages. Overridden from the template class to specialize th...
Definition: simTaskFactory.h:22
static DtSimTaskFactory * myFactory
Definition: simTask.h:159
virtual DtlObjPtr getData(DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
Deriving class overrides these to get/put class specific data.
Definition: readerWriter.h:85
Definition: readerWriterRegistry.h:39
DtRwBoolean mySubtask
Definition: simTask.h:155
DtSimTaskFactory::DtCreatorFcn DtSimTaskCreatorFcn
Definition: simTaskFactory.h:41
static DtReaderWriterFactory * factory()
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer. buffer must have at least the number of bytes returned...
#define DT_DLL_vrftasks
This file is used to determine how to build.
Definition: vrftasksDefines.h:26
virtual void putData(std::string &fp, int indentLevel=0)
Deriving class overrides these to get/put class specific data.
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
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...
char * myNetRep
Definition: simTask.h:157
DtRwBoolean myAllowTaskVisualizations
Definition: simTask.h:156

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)