WSF
SOSM_Manager.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef SOSM_MANAGER_HPP
13#define SOSM_MANAGER_HPP
14
15#include "sosm_export.h"
16
17#include <map>
18#include <string>
19
20class SOSM_Atmosphere;
21class SOSM_CoreBase;
22class SOSM_Sensor;
24class SOSM_Target;
26#include "UtAtmosphere.hpp"
27#include "UtCallback.hpp"
28class UtInput;
29
31class SOSM_EXPORT SOSM_Manager
32{
33public:
34 SOSM_Manager(const UtAtmosphere& aAtmosphere);
36
37 void Load(const std::string& aFileName);
38 void Load(UtInput& aInput);
39 bool ProcessInput(UtInput& aInput);
40
41 UtAtmosphere& GetUtAtmosphere();
42
44
45 SOSM_SensorTarget* AllocateSensorTargetPair(const std::string& aSensorType, const std::string& aTargetType);
46
47 SOSM_Atmosphere* AllocateAtmosphere(const std::string& aTypeName);
48 SOSM_Sensor* AllocateSensor(const std::string& aTypeName);
49 SOSM_Target* AllocateTarget(const std::string& aTypeName);
50
51 SOSM_Atmosphere* FindAtmosphereType(const std::string& aTypeName);
52 SOSM_Sensor* FindSensorType(const std::string& aTypeName);
53 SOSM_Target* FindTargetType(const std::string& aTypeName);
54 SOSM_Atmosphere* LoadAtmosphereType(const std::string& aTypeName, const std::string& aFileName);
55 SOSM_Atmosphere* LoadAtmosphereType(const std::string& aTypeName, const std::string& aCachePrefix, UtInput& aInput);
56
57 SOSM_Sensor* LoadSensorType(const std::string& aTypeName, const std::string& aFileName);
58 SOSM_Sensor* LoadSensorType(const std::string& aTypeName, const std::string& aCachePrefix, UtInput& aInput);
59
60 SOSM_Target* LoadTargetType(const std::string& aTypeName, const std::string& aFileName);
61 SOSM_Target* LoadTargetType(const std::string& aTypeName, const std::string& aCachePrefix, UtInput& aInput);
62
64 std::string& CacheDirectory() { return mCacheDirectory; }
65
68
71
73 bool ShowStatus() { return mShowStatus; }
74
78
80 int DebugLevel() { return mDebugLevel; }
81
84
88
89 UtCallbackListN<void(const std::string&)> FileReferenced;
91
92 std::string CacheFileName(const std::string& aTextFileName, const std::string& aCachePrefix);
93
95
96 void GetSensorTypes(std::vector<std::string>& aTypes) const;
97 void GetTargetTypes(std::vector<std::string>& aTypes) const;
98 bool PreallocatePair(const std::string& aSensorType, const std::string& aTargetType);
101
102protected:
103 // Copy constructor declared but not defined to prevent use.
105
106 // Assignment operator declared but not defined to prevent use.
107 SOSM_Manager operator=(const SOSM_Manager& aRhs) = delete;
108
109 std::string GetCachePrefix(const std::string& aFileName);
110
111 void LoadFromStream(UtInput& aInput);
112
113 void LoadType(SOSM_CoreBase* aTypePtr, UtInput& aInput);
114
115 bool ReadCommand(UtInput& aInput, std::string& aCommand);
116
117 void TestDriver(UtInput& aInput);
118
119 typedef std::map<std::string, SOSM_Atmosphere*> AtmosphereTypes;
120 typedef std::map<std::string, SOSM_Sensor*> SensorTypes;
121 typedef std::map<std::string, SOSM_Target*> TargetTypes;
122 UtAtmosphere mUtAtmosphere;
127 std::string mCacheDirectory;
135};
136
137#endif
void Load(PakI &aBuff, WsfXIO_PlatformPartInfo *&aPtr)
Definition WsfXIO_ObjectInfo.cpp:345
An abstract base class for representing atmospherics.
Definition SOSM_Atmosphere.hpp:23
Definition SOSM_CoreBase.hpp:26
bool WriteCacheFiles()
Indicate if cached binary files should be created.
Definition SOSM_Manager.hpp:70
std::string mCacheDirectory
Definition SOSM_Manager.hpp:127
void LoadFromStream(UtInput &aInput)
SOSM_TestCommands * mTestCommandsPtr
Definition SOSM_Manager.hpp:134
SOSM_Sensor * FindSensorType(const std::string &aTypeName)
Definition SOSM_Manager.cpp:380
bool mShowIRIPP_Data
Definition SOSM_Manager.hpp:133
SOSM_Manager(const SOSM_Manager &aSrc)
bool mIgnoreCacheFiles
Definition SOSM_Manager.hpp:129
bool ShowStatus()
Indicate if status messages should be shown during file loading.
Definition SOSM_Manager.hpp:73
TargetTypes mTargetTypes
Definition SOSM_Manager.hpp:125
SOSM_Atmosphere * AllocateAtmosphere(const std::string &aTypeName)
Definition SOSM_Manager.cpp:305
SOSM_Atmosphere * FindAtmosphereType(const std::string &aTypeName)
Definition SOSM_Manager.cpp:368
void TestDriver(UtInput &aInput)
void LoadType(SOSM_CoreBase *aTypePtr, UtInput &aInput)
Definition SOSM_Manager.cpp:598
bool ShowIRIPP_Data()
Return true if IRIPP comparison data is to be shown.
Definition SOSM_Manager.hpp:83
SOSM_Manager operator=(const SOSM_Manager &aRhs)=delete
bool PreallocateAllPairs()
Definition SOSM_Manager.cpp:749
UtCallbackListN< void(const std::string &)> FileReferenced
Definition SOSM_Manager.hpp:89
std::string mDefaultAtmosphereType
Definition SOSM_Manager.hpp:126
bool mShowStatus
Definition SOSM_Manager.hpp:132
bool mWriteCacheFiles
Definition SOSM_Manager.hpp:130
void GetSensorTypes(std::vector< std::string > &aTypes) const
Definition SOSM_Manager.cpp:711
bool ReadCommand(UtInput &aInput, std::string &aCommand)
Definition SOSM_Manager.cpp:658
bool mUseFastDetectionMode
Definition SOSM_Manager.hpp:131
SOSM_SensorTarget * AllocateSensorTargetPair(const std::string &aSensorType, const std::string &aTargetType)
Definition SOSM_Manager.cpp:294
SOSM_Target * AllocateTarget(const std::string &aTypeName)
Definition SOSM_Manager.cpp:349
SOSM_Manager(const UtAtmosphere &aAtmosphere)
Definition SOSM_Manager.cpp:32
std::map< std::string, SOSM_Atmosphere * > AtmosphereTypes
Definition SOSM_Manager.hpp:119
int mDebugLevel
Definition SOSM_Manager.hpp:128
SOSM_Sensor * AllocateSensor(const std::string &aTypeName)
Definition SOSM_Manager.cpp:327
UtAtmosphere mUtAtmosphere
Definition SOSM_Manager.hpp:122
std::string CacheFileName(const std::string &aTextFileName, const std::string &aCachePrefix)
Definition SOSM_Manager.cpp:681
SOSM_Target * LoadTargetType(const std::string &aTypeName, const std::string &aFileName)
Definition SOSM_Manager.cpp:523
SOSM_Target * FindTargetType(const std::string &aTypeName)
Definition SOSM_Manager.cpp:392
bool IgnoreCacheFiles()
Indicate if cached binary files should be ignored.
Definition SOSM_Manager.hpp:67
bool PreallocatePair(const std::string &aSensorType, const std::string &aTargetType)
Definition SOSM_Manager.cpp:731
SOSM_Sensor * LoadSensorType(const std::string &aTypeName, const std::string &aFileName)
Definition SOSM_Manager.cpp:469
SensorTypes mSensorTypes
Definition SOSM_Manager.hpp:124
SOSM_Atmosphere * AllocateDefaultAtmosphere()
Definition SOSM_Manager.cpp:265
std::string & CacheDirectory()
Return the name of the cache directory.
Definition SOSM_Manager.hpp:64
std::map< std::string, SOSM_Sensor * > SensorTypes
Definition SOSM_Manager.hpp:120
std::string GetCachePrefix(const std::string &aFileName)
Definition SOSM_Manager.cpp:582
UtAtmosphere & GetUtAtmosphere()
Definition SOSM_Manager.cpp:772
AtmosphereTypes mAtmosphereTypes
Definition SOSM_Manager.hpp:123
bool ProcessInput(UtInput &aInput)
Definition SOSM_Manager.cpp:125
bool UseFastDetectionMode()
Definition SOSM_Manager.hpp:77
int DebugLevel()
Return the debug level (<= 0 if no debugging).
Definition SOSM_Manager.hpp:80
SOSM_Atmosphere * LoadAtmosphereType(const std::string &aTypeName, const std::string &aFileName)
Definition SOSM_Manager.cpp:404
std::map< std::string, SOSM_Target * > TargetTypes
Definition SOSM_Manager.hpp:121
void GetTargetTypes(std::vector< std::string > &aTypes) const
Definition SOSM_Manager.cpp:721
Definition SOSM_SensorTarget.hpp:52
A class that represents an optical sensor (IR or visible).
Definition SOSM_Sensor.hpp:30
Abstract base class that represents a target.
Definition SOSM_Target.hpp:31
Commands that can be used to test the model.
Definition SOSM_TestCommands.hpp:19
Copyrights Multiple, All Rights Reserved