VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
DtMtlParameterDb Class Reference

Instances of DtMtlParameterDb are a database of DtVrfObjectParameters* entries that are loaded from an MTL (Mak Technologies Lisp) format file.

Inheritance diagram for DtMtlParameterDb:
Inheritance graph
[legend]

Public Member Functions

 DtMtlParameterDb ()
 
virtual ~DtMtlParameterDb ()
 
virtual bool init ()
 
virtual DtMtlParameterDbEntryadd (const DtObjectType &objectType, const DtFilename &filename, bool typeIsMatchType, DtVrfObjectParameters *newParameters=NULL)
 
virtual void createRemoteConfigurationList ()
 
virtual DtVrfObjectParameterslookup (const DtObjectType &objectType, DtObjectType *matchingType, DtString *source=NULL) const
 
virtual bool load (const DtFilename &filename, bool preloadParameters=false)
 
virtual bool loadAll (const DtFilename &filename)
 
DtRemoteConfigurationListremoteConfigurationList ()
 
const DtRemoteConfigurationListremoteConfigurationList () const
 
DtRemoteConfigurationList::CreatorFcn remoteConfigurationListCreatorFcn ()
 
void setRemoteConfigurationListCreatorFcn (DtRemoteConfigurationList::CreatorFcn fcn)
 
virtual bool save (const DtFilename &filename)
 
virtual void removeAll ()
 
virtual void setVersionNumber (int versionNumber)
 
virtual int versionNumber () const
 
virtual void addDependentParameterFileToCopyPair (const DtFilename &fromFilename, const DtFilename &toFilename)
 
virtual void clearDependentParameterFileToCopyPairs ()
 
virtual std::map< std::string,
std::string > 
dependentParameterFileToCopyPairs () const
 
virtual void updateReaderWriterFilePaths (DtVrfObjectParameters &parameters)
 
DtMtlParameterDbReaderdbReader ()
 
DtMtlParameterDbWriterdbWriter ()
 
virtual DtFilename stripExtension (const DtFilename &filename, const DtString &extension)
 
virtual void setReader (DtMtlParameterDbReader *)
 
virtual void setWriter (DtMtlParameterDbWriter *)
 
virtual DtVrfObjectParametersgetParameters (DtMtlParameterDbEntry *entry) const
 
virtual void addVariableBindings (DtVariableBindingsSharedPtr bindings)
 
virtual std::list
< DtVariableBindingsSharedPtr > & 
variableBindings ()
 
virtual DtReaderWriter::SearchPaths searchPaths () const
 
virtual void setSearchPaths (const DtReaderWriter::SearchPaths &searchPaths)
 
- Public Member Functions inherited from DtVrfParameterDb
 DtVrfParameterDb ()
 
virtual ~DtVrfParameterDb ()
 
virtual DtVrfParameterDbEntryadd (const DtObjectType &objectType, DtVrfObjectParameters *parameters)
 
virtual std::list< const
DtVrfObjectParameters * > 
lookupByEquipmentName (const DtString &equipmentName) const
 
virtual DtString equipmentName (const DtObjectType &objectType, int &count) const
 
virtual void remove (const DtObjectType &objectType)
 
virtual const DtList & parameterList () const
 
virtual void addParameters (const DtObjectType &objectType, DtVrfObjectParameters *newParameters)
 
virtual DtVrfObjectParameterslookupParameters (const DtObjectType &objectType, DtObjectType *matchingType) const
 
virtual void removeParameters (const DtObjectType &objectType)
 
virtual void removeAndDeleteAll ()
 
virtual DtVrfParameterDbEntrylookupParameterDbEntry (const DtObjectType &objectType, DtObjectType *matchingType) const
 
virtual int numParameterEntries () const
 
virtual std::list< DtString > * getSysDefExtensionList ()
 
virtual void addExtension (DtString)
 

Static Public Member Functions

static DtVrfParameterDbcreate ()
 
static const DtStringopdFilenameExtension ()
 
static const DtStringopeFilenameExtension ()
 
- Static Public Member Functions inherited from DtVrfParameterDb
static DtVrfParameterDbcreate ()
 

Protected Member Functions

virtual DtMtlParameterDbReadercreateParamDbReader ()
 
virtual DtMtlParameterDbWritercreateMtlParamDbWriter ()
 
virtual bool copyDependentParameterDirectories (const DtFilename &oldPath, const DtFilename &newPath)
 
virtual DtFilename getPath (const DtFilename &filename)
 
virtual DtVrfParameterDbEntrycreateParameterEntry () const
 
- Protected Member Functions inherited from DtVrfParameterDb
virtual void addParameterDbEntry (DtVrfParameterDbEntry *newParameterEntry)
 
virtual DtListItem * lookupParameters (const DtObjectType &objectType) const
 
void emptyList ()
 

Static Protected Member Functions

static const std::map
< DtString, DtFilename > & 
extensionToPathMap ()
 

Protected Attributes

DtMtlParameterDbReadermyParameterDbReader
 
DtMtlParameterDbWritermyParameterDbWriter
 
int myVersionNumber
 
DtVariableBindingsList myVariableBindings
 
std::map< std::string,
std::string > 
myDependentParameterFileToCopyPairs
 
std::list
< DtVariableBindingsSharedPtr
myVariableBindingsList
 
DtRemoteConfigurationListpMyRemoteConfigurationList
 
DtRemoteConfigurationList::CreatorFcn myRemoteConfigListCreatorFcn
 
DtReaderWriter::SearchPaths mySearchPaths
 
tbb::queuing_mutex myMutex
 
- Protected Attributes inherited from DtVrfParameterDb
DtList myParameterList
 
std::map< DtString, std::list
< const DtVrfObjectParameters * > > 
myEquipmentToParamsMap
 
tbb::spin_rw_mutex myEquipmentToParamsMapMutex
 

Static Protected Attributes

static DtString theOpdFilenameExtension
 
static DtString theOpeFilenameExtension
 
static DtFilename theOldParameterDbDirectory
 
static std::map< DtString,
DtFilename > * 
theExtensionToPathMap
 

Private Member Functions

 DtMtlParameterDb (const DtMtlParameterDb &orig)
 
DtMtlParameterDboperator= (const DtMtlParameterDb &orig)
 

Constructor & Destructor Documentation

DtMtlParameterDb::DtMtlParameterDb ( )

default constructor

virtual DtMtlParameterDb::~DtMtlParameterDb ( )
virtual

destructor

DtMtlParameterDb::DtMtlParameterDb ( const DtMtlParameterDb orig)
private

copy constructor - not implemented

Member Function Documentation

virtual bool DtMtlParameterDb::init ( )
virtual

Initialization - must be called before any other public member functions are called.

Reimplemented from DtVrfParameterDb.

virtual DtMtlParameterDbEntry* DtMtlParameterDb::add ( const DtObjectType objectType,
const DtFilename &  filename,
bool  typeIsMatchType,
DtVrfObjectParameters newParameters = NULL 
)
virtual

Add a new entry to the parameter database, keyed on DtObjectType. If an entry with the exact object type already exists, then it will be removed and deleted before the new one is added. filename is the name of a object parameter entry file (*.ope), which is a MTL file containing the data representing a single DtVrfObjectParameter entry. If the entry is added using a matchType, it will not override entries of the same type that were added using object types.

virtual void DtMtlParameterDb::createRemoteConfigurationList ( )
virtual

discard existing pMyRemoteConfigurationList and recreate using myRemoteConfigListCreatorFcn This is called from init();

virtual DtVrfObjectParameters* DtMtlParameterDb::lookup ( const DtObjectType objectType,
DtObjectType matchingType,
DtString source = NULL 
) const
virtual

Lookup entry in parameter database that most closely matches given objectType. If matchingType is specified, return the object type of the entry (which may be less specific than the object type being looked up). Loads the object parameter entry from given filename, if corresponding data for the entry has not yet been loaded. If source is specified, it will be set to the filename of the OPE file loaded for these parameters.

Reimplemented from DtVrfParameterDb.

virtual bool DtMtlParameterDb::load ( const DtFilename &  filename,
bool  preloadParameters = false 
)
virtual

Loads the contents of an MTL parameter database file (*.opd). If the preloadParameters value is true will load all the parameters found in the database from disk (versus waiting until it is needed)

Reimplemented from DtVrfParameterDb.

virtual bool DtMtlParameterDb::loadAll ( const DtFilename &  filename)
virtual

Loads MTL parameter database file and loads all .ope files it references.

DtRemoteConfigurationList * DtMtlParameterDb::remoteConfigurationList ( )
inline
const DtRemoteConfigurationList * DtMtlParameterDb::remoteConfigurationList ( ) const
inline
DtRemoteConfigurationList::CreatorFcn DtMtlParameterDb::remoteConfigurationListCreatorFcn ( )
inline
void DtMtlParameterDb::setRemoteConfigurationListCreatorFcn ( DtRemoteConfigurationList::CreatorFcn  fcn)
inline
virtual bool DtMtlParameterDb::save ( const DtFilename &  filename)
virtual

Saves contents of parameter database to file. Filename will be given .opd file extension if it does not already exist. Creates subdirectory of the same name minus the .opd extension and places individual object parameter entry files (.ope) for each entry in the database. Object parameter database file will contain list of filenames referencing individual .ope files.

Reimplemented from DtVrfParameterDb.

virtual void DtMtlParameterDb::removeAll ( )
virtual

Overridden to clear out the variable bindings.

Reimplemented from DtVrfParameterDb.

virtual void DtMtlParameterDb::setVersionNumber ( int  versionNumber)
virtual

Version number of parameter database. Version number is stored in parameter databse file as of VR-Forces version 3.7. See CURRENT_PARAMETER_DB_FILE_FORMAT_VERSION at top of this file for latest version number.

virtual int DtMtlParameterDb::versionNumber ( ) const
virtual
virtual void DtMtlParameterDb::addDependentParameterFileToCopyPair ( const DtFilename &  fromFilename,
const DtFilename &  toFilename 
)
virtual

Dependent parameter files (.asl, .hit, .frm, .det, .dmg) to copy upon save. These files are cached when a parameter database is loaded. Only the DtMtlParamDbReader and DtMtlParamDbWriter classes should need to call any of these functions.

virtual void DtMtlParameterDb::clearDependentParameterFileToCopyPairs ( )
virtual
virtual std::map<std::string, std::string> DtMtlParameterDb::dependentParameterFileToCopyPairs ( ) const
virtual
virtual void DtMtlParameterDb::updateReaderWriterFilePaths ( DtVrfObjectParameters parameters)
virtual

Updates paths to use relative-to-container convention for filenames in given parameters object. Stores old/new parameter filenames in parameterDb, so if/when we go to write out the parameter database, it can find all of the files it need (to copy to the new path).

DtMtlParameterDbReader * DtMtlParameterDb::dbReader ( )
inline

References myParameterDbReader.

DtMtlParameterDbWriter * DtMtlParameterDb::dbWriter ( )
inline

References myParameterDbWriter.

virtual DtFilename DtMtlParameterDb::stripExtension ( const DtFilename &  filename,
const DtString extension 
)
virtual

Strips the extension (the trailing portion of a filename starting with ".") from a given filename.

virtual void DtMtlParameterDb::addVariableBindings ( DtVariableBindingsSharedPtr  bindings)
virtual

Returns filename loaded.

See Also
myVariableBindingsList
virtual std::list<DtVariableBindingsSharedPtr>& DtMtlParameterDb::variableBindings ( )
virtual

Returns filename loaded.

See Also
myVariableBindingsList
static DtVrfParameterDb* DtMtlParameterDb::create ( )
static

Returns a new instance of this class.

static const DtString& DtMtlParameterDb::opdFilenameExtension ( )
static

Default filename extension for parameter database file (.opd).

static const DtString& DtMtlParameterDb::opeFilenameExtension ( )
static

Default filename extension for parameter database entry files (.ope).

virtual void DtMtlParameterDb::setReader ( DtMtlParameterDbReader )
virtual

Sets the reader, deleting old reader. Takes ownership of reader.

virtual void DtMtlParameterDb::setWriter ( DtMtlParameterDbWriter )
virtual

Sets the writer, deleting old writer. Takes ownership of writer.

virtual DtReaderWriter::SearchPaths DtMtlParameterDb::searchPaths ( ) const
virtual

List of additional search paths from included SMSs.

virtual void DtMtlParameterDb::setSearchPaths ( const DtReaderWriter::SearchPaths searchPaths)
virtual

List of additional search paths from included SMSs.

virtual DtVrfObjectParameters* DtMtlParameterDb::getParameters ( DtMtlParameterDbEntry entry) const
virtual

Retrieves the parameters from a given parameter entry object. If the parameters component of an entry is non-NULL, returns the parameters. If the parameters component of an entry is NULL, loads the parameters from the filename given in the entry, storing the parameters in the entry, and then returns the parameters.

virtual DtMtlParameterDbReader* DtMtlParameterDb::createParamDbReader ( )
protectedvirtual

Factory method that creates parameter database reader object used in load(). Creates an instance of DtMtlParameterDbReader.

virtual DtMtlParameterDbWriter* DtMtlParameterDb::createMtlParamDbWriter ( )
protectedvirtual

Factory method that creates parameter database writer object used in save(). Creates an instance of DtMtlParameterDbWriter.

virtual bool DtMtlParameterDb::copyDependentParameterDirectories ( const DtFilename &  oldPath,
const DtFilename &  newPath 
)
protectedvirtual

Copies ammoselect, damage, detection, and hit subdirectories from oldPath location to newPath location.

virtual DtFilename DtMtlParameterDb::getPath ( const DtFilename &  filename)
protectedvirtual

Extracts path from a given filename.

virtual DtVrfParameterDbEntry* DtMtlParameterDb::createParameterEntry ( ) const
protectedvirtual

Override to create entry of type DtMtlParameterDbEntry.

Reimplemented from DtVrfParameterDb.

static const std::map<DtString, DtFilename>& DtMtlParameterDb::extensionToPathMap ( )
staticprotected

Map of filename extensions of dependent parameter files (.dmg, .hit, .asl, .frm, .det) to corrsponding directory paths (.\damage, .\hit, .\ammoselect, .\formation, .\detection). Used in updating legacy format parameter database files that mapped these supporting files relative to the application path.

DtMtlParameterDb& DtMtlParameterDb::operator= ( const DtMtlParameterDb orig)
private

assignment operator - not implemented

Member Data Documentation

DtMtlParameterDbReader* DtMtlParameterDb::myParameterDbReader
protected

Referenced by dbReader().

DtMtlParameterDbWriter* DtMtlParameterDb::myParameterDbWriter
protected

Referenced by dbWriter().

DtString DtMtlParameterDb::theOpdFilenameExtension
staticprotected
DtString DtMtlParameterDb::theOpeFilenameExtension
staticprotected
DtFilename DtMtlParameterDb::theOldParameterDbDirectory
staticprotected
int DtMtlParameterDb::myVersionNumber
protected
DtVariableBindingsList DtMtlParameterDb::myVariableBindings
protected
std::map<std::string, std::string> DtMtlParameterDb::myDependentParameterFileToCopyPairs
protected
std::list<DtVariableBindingsSharedPtr> DtMtlParameterDb::myVariableBindingsList
protected

List of all top level variable bindings for each OPD file read in. Additional OPD files read will add their bindings to the end if the list.

DtRemoteConfigurationList* DtMtlParameterDb::pMyRemoteConfigurationList
protected

List of DtRemoteConfigurationEntry* objects.

Referenced by remoteConfigurationList().

DtRemoteConfigurationList::CreatorFcn DtMtlParameterDb::myRemoteConfigListCreatorFcn
protected
DtReaderWriter::SearchPaths DtMtlParameterDb::mySearchPaths
protected

List of additional search paths from included SMSs.

tbb::queuing_mutex DtMtlParameterDb::myMutex
mutableprotected
std::map<DtString, DtFilename>* DtMtlParameterDb::theExtensionToPathMap
staticprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)