VR-Forces 4.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
appsrc
vrfSim
vrfApp.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2001 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
/*******************************************************************************
6
** $RCSfile: vrfApp.h,v $ $Revision: 1.24 $ $State: Exp $
7
*******************************************************************************/
8
#ifndef vrfApp_H_
9
#define vrfApp_H_
10
11
#include <vlutil/vlString.h>
12
#include <vlutil/vlList.h>
13
#include <vlutil/vlUtil.h>
14
#include <vl/hostStructs.h>
15
#include <vlutil/vlFilename.h>
16
#include <vl/rprFomMap.h>
17
#include <vlutil/vlTime.h>
18
#include <vl/exerciseConn.h>
19
20
class
DtCgf
;
21
class
DtCgfDispatcher
;
22
class
DtExerciseConn;
23
class
DtFomMapper;
24
class
DtBatchManager
;
25
class
DtVrfCreator
;
26
class
DtVrfSimOptions
;
27
#ifdef WIN32
28
class
DtFilePrinter;
29
class
DtWindowsConsolePrinter;
30
#endif
31
class
DtBackendConsoleNetworkPrinter
;
32
33
// class DtVrfApp:
34
//
35
// Instances of DtVrfApp are the main class for the VR-Forces simulation
36
// back-end application.
37
38
class
DtVrfApp
39
{
40
public
:
41
42
// constructor
43
DtVrfApp
(
int
argc,
char
** argv);
44
45
// destructor
46
virtual
~DtVrfApp
();
47
48
// Initialization. Must be called before any other member functions
49
// are called.
50
virtual
bool
init
(
DtVrfCreator
* creator = 0);
51
52
// Main execution loop. Calls our DtCgf's tick(). Calls DtSleep() for a
53
// given time interval (the main loop sleep interval). Polls the keyboard
54
// for input. If a 'q' key press is received, exits the application.
55
virtual
void
mainLoop
();
56
57
// Accessor for the DtCgf
58
virtual
DtCgf
*
cgf
();
59
60
// Accessor for the DtExerciseConn
61
virtual
DtExerciseConn*
exerciseConn
();
62
63
#ifdef WIN32
64
virtual
void
setConsoleWindow(HWND consoleWindow);
65
#endif
66
67
protected
:
68
69
// Process mtl file. Also reads off mtl file (optionally) added to
70
// command line by -d command
71
virtual
bool
processMtlFile
(
int
argc,
char
** argv);
72
73
// Creates our cgf (called from init())
74
virtual
DtCgf
*
createCgf
(
const
DtSimulationAddress& addr, DtU32 sessionId);
75
76
// Creates our simOptions (called from init())
77
virtual
DtVrfSimOptions
*
createSimOptions
();
78
79
// This routine will read in the simulation options from the vrfSim.mtl
80
// file by default of the supplied filename
81
virtual
bool
readSimOptions
(
const
DtFilename& mtlFile);
82
83
// This routine will process the options read from the mtl file and set
84
// them in the appropriate places in the cgf. This method is called
85
// after the cgf has been initialized
86
virtual
void
processCgfOptions
();
87
88
// This routine will process app level options (parameter database, port,
89
// etc). This is called before processCgfOptions and before
90
// processCommandLine such that the command line options will take
91
// precedence over the .mtl options
92
virtual
void
processAppOptions
();
93
94
// Calls down to myCgf to schedule to load up all plugins from command line and vrfSim.mtl
95
virtual
void
addPluginsToLoad
();
96
97
private
:
98
// copy constructor - not implemented
99
DtVrfApp
(
const
DtVrfApp
& orig);
100
101
// assignment operator - not implemented
102
DtVrfApp
&
operator=
(
const
DtVrfApp
& orig);
103
104
protected
:
105
106
// Our DIS/RPR (site id, application id) simulation address that
107
// uniquely identifies our application in an exercise.
108
DtSimulationAddress
mySimAddress
;
109
110
// VR-Link exercise connection. Provides means by which all network
111
// interactions (PDUs/HLA objects and interactions) are sent/recieved.
112
DtExerciseConn*
myExerciseConn
;
113
114
// Command line arguments are cached in our constructor so we can process
115
// them later in init().
116
int
myArgc
;
117
char
**
myArgv
;
118
119
// Driver for our CGF object that responds to network messages
120
DtCgfDispatcher
*
myDispatcher
;
121
122
// Driver for CGF Object that handles execution of scenario batches.
123
DtBatchManager
*
myBatchManager
;
124
125
// Options that are read in from the vrfSim.mtl file
126
DtVrfSimOptions
*
mySimOptions
;
127
128
DtCgf
*
myCgf
;
129
130
#ifdef WIN32
131
HWND myConsoleWindow;
132
133
// Writes diagnostics to vrfSim.log
134
DtFilePrinter* myFilePrinter;
135
#endif
136
137
// Publishes all diagnostics to network in comment interactions.
138
DtBackendConsoleNetworkPrinter
*
myBackendConsoleNetworkPrinter
;
139
140
bool
myWarnedFailedGetExitCode
;
141
};
142
143
#endif
144
145
Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (
www.mak.com
)