VR-Forces 4.0.4 Class Documentation
include/vrftasks/simTask.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: simTask.h,v $ $Revision: 1.36 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 
00015 #ifndef DtSimTask_H_
00016 #define DtSimTask_H_
00017 
00018 #include "vrfutil/rdrWritr.h"
00019 #include "vrftasks/taskFactory.h"
00020 #include "vrfutil/rwBoolean.h"
00021 #include <vlutil/vlNetTypes.h>
00022 #include "tdbutil/translation.h"
00023 #include "vrftasks/vrftasksDefines.h"
00024 #include "tdbutil/tdbUnits.h"
00025 
00026 class DtRwString;
00027 class DtSimTaskFactory;
00028 
00032 struct DtNetSimTask
00033 {
00034    DtNetU8 mySubtask;
00035    DtNetU8 padding;
00036    DtNetU16 padding2;
00037    DtNetU32 padding3;
00038 };
00039 
00046 class DT_DLL_vrftasks DtSimTask : public DtReaderWriter
00047 {
00048 protected:
00051 
00053    DtSimTask();
00054 
00057    DtSimTask(const DtString & writeName,
00058       DtReaderWriterRegistry * parentRegistry = 0);
00059 
00061    DtSimTask(const DtString & writeName, const DtSimTask & orig,
00062       DtReaderWriterRegistry * parentRegistry = 0);
00063 
00065    const DtSimTask & operator=(const DtSimTask & orig);
00066 
00067 public:
00068 
00070    virtual ~DtSimTask();
00071 
00074    virtual bool init();
00075 
00081    virtual int type() const = 0;
00082 
00087    virtual DtSimTask * clone(const DtString & name, DtReaderWriterRegistry *
00088       parentRegistry = 0) const = 0;
00089 
00095    virtual DtString stringRep() const = 0;
00096 
00100    virtual void setSubtask(bool flag);
00101    virtual bool subtask() const;
00102 
00105    virtual void putData(FILE *fp, int indentLevel = 0);
00106 
00109    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00110       const DtVariableBindingsList& variableBindings);
00111 
00112    virtual char* netRep();
00113 
00119    virtual int netRepSize() const;
00120 
00125    virtual bool setFromNet(const char* contentBuffer,
00126       unsigned contentSize);
00127 
00135    virtual bool setToNet();
00136 
00137 
00148    static DtSimTask * createTask(DtlObjPtr mtlStream);
00149    static DtSimTask * createTask(int taskType);
00150 
00152    static void addTaskCreatorFcn(const DtString & taskName, int taskType,
00153       DtSimTaskCreatorFcn fcn);
00154 
00155    static void setFactory(DtSimTaskFactory * factory);
00156    static DtSimTaskFactory* factory();
00157 
00158    static bool getTaskNameFromTaskType(int taskType, DtString& taskName);
00159    static bool getTaskTypeFromTaskName(const DtString& taskName,
00160       int& taskType);
00161 
00162 protected:
00163    virtual char* createNetworkBuffer();
00164 
00165 protected:
00166    DtRwBoolean mySubtask;
00167    char*     myNetRep;
00168 
00169 
00170    static DtSimTaskFactory*  myFactory;
00171 };
00172 
00173 namespace DtBufferSerialize
00174 {
00177    DT_DLL_vrftasks int getSize(const DtSimTask* const&  taskPtr);
00178 
00183    DT_DLL_vrftasks char *encode(const DtSimTask* const& taskPtr, char *buffer);
00184 
00193    DT_DLL_vrftasks const char *decode(DtSimTask*& taskPtr, const char *buffer);
00194 }
00195 
00196 #endif
00197 
00198 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)