VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
connectionSettings.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2013 MAK Technologies, Inc.
3  * All rights reserved.
4  ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <connectionFileRecord.h>
15 
16 #include <boost/archive/xml_iarchive.hpp>
17 #include <boost/archive/xml_oarchive.hpp>
18 #include <boost/serialization/nvp.hpp>
19 #include <boost/unordered_map.hpp>
20 
21 #include <QtCore/QStringList>
22 
23 #include <vlutil/vlString.h>
24 #include <vlutil/vlPrint.h>
25 #include <vlutil/vlRtiCompilerCheck.h>
26 
27 #include <string>
28 #include <vector>
29 #include <map>
30 
31 
32 // Stores two strings - first is the command-line flag, second is a descriptive (?) string
33 typedef std::pair<const char*,const char*> ArgFlagDescriptorPair;
34 typedef boost::unordered_map<unsigned int,ArgFlagDescriptorPair> ArgIndexDescriptionMap;
35 typedef ArgIndexDescriptionMap::iterator ArgIndexDescriptionEntry;
36 
37 //Mapping between argument int and command-line value DtString
38 typedef std::map< unsigned int, QString > ConnectionArgValues;
39 typedef ConnectionArgValues::iterator ConnectionArgValuesEntry;
40 
41 typedef std::map<std::string,std::string> DriverRecordArgValues;
42 typedef DriverRecordArgValues::iterator DriverRecordArgValuesEntry;
43 
46 {
52 };
53 
55 {
58 };
59 
63 {
64 public:
65 
66  // Default constructor, required for deserialization
68 
69  // Constructor
70  DtConnectionSettings( std::string name );
71 
72  // Constructor
73  DtConnectionSettings( std::string name, DtProtocolTypes protocol );
74 
75  // Copy constructor
77 
78  virtual ~DtConnectionSettings();
79 
80  // Equality operator
81  virtual bool operator == ( const DtConnectionSettings & orig ) const;
82 
83  // Inequality operator
84  virtual bool operator != ( const DtConnectionSettings& orig ) const;
85 
86  // Reset this object based on another, used by DtSettingsManager::setSetting
87  virtual bool setFrom( const DtConnectionSettings* other );
88  virtual bool setFrom( const DtConnectionFileRecord& rec );
89 
90  // Returns true if the connection will be valid. Checks the connection settings.
91  virtual bool connectionWillBeValid() const;
92  //returns true if the connection is valid. Checks the supplied argument.
93  virtual bool connectionWillBeValid(const QString deviceAddress) const;
94 
95 #ifdef _WIN32
96  // Call to VR-Link routine to check to make sure RTI version is compatible. If not give an error and return false
97  virtual bool checkRtiVersion(DtHLALib, bool showError = true) const;
98 #endif
99 
100  virtual bool setToFileRecord( DtConnectionFileRecord * rec );
101 
102  virtual void setName( std::string name );
103  virtual std::string name();
104 
105  // What protocol is this connection
106  virtual DtProtocolTypes protocolType() const;
107  virtual void setProtocolType( DtProtocolTypes type );
108 
109  //Is this settings object the connect we should automatically connect with
110  virtual bool autoConnection() const ;
111  virtual void setAutoConnection( bool conn );
112 
113  // accessor to myArgsMap
114  virtual ConnectionArgValues* argValues();
115 
116  //overload this class so as to take whatever data type comes out of the dialog
117  virtual void updateStringArgValue( unsigned int type, QString qstringValue );
118  virtual void updateBoolArgValue( unsigned int type, bool boolValue );
119  virtual void updateIntArgValue( unsigned int type, int intValue, bool negativeOneOk = false );
120 
121  //returns "false" if the entry does not exist
122  virtual bool getArgValue( unsigned int argType, QString & argValue ) const;
123 
125  virtual void removeArgValueEntry( unsigned int type );
126  virtual bool findArgDescriptor( unsigned int type, ArgFlagDescriptorPair& mappingStorage );
127 
128  virtual QStringList frontEndFlags();
129  virtual QStringList backEndFlags();
130 
131  static DtConnectionSettings* createFromDriverRecord( DtConnectionFileRecord & driverRecord, QString connName = "");
132  static DtConnectionSettings* createFromProtocol( DtProtocolTypes protocol, QString connName = "" );
133 
134 protected:
135 
136  // Stores the available command line args for this connection. Override to add new args
137  virtual void initialize();
138 
139 private:
140 
142 
143  // Serialization support. Derived classes must call
144  // BOOST_SERIALIZATION_BASE_OBJECT_NVP(DtSettingsObject) in their
145  // implementation of serialize.
146  template<class Archive>
147  void serialize(Archive & ar, const unsigned int version)
148  {
149  // Serialize the base class
150  ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(DtSettingsObject);
151 
152  // Serialize our values
153  ar & BOOST_SERIALIZATION_NVP(myAmAutoConnection);
154  ar & BOOST_SERIALIZATION_NVP(myProtocolType);
155  //ar & BOOST_SERIALIZATION_NVP(myArgsListSetting);
156  }
157 
158 protected:
159 
160 
162 
165  std::string mySettingsType;
166 
167  // Holds all the cmd args that have been set for this connection
169 
170 };
171 
172 // Setup this class as abstract in boost
173 BOOST_SERIALIZATION_ASSUME_ABSTRACT( DtConnectionSettings )
Definition: connectionSettings.h:48
virtual bool operator==(const DtConnectionSettings &orig) const
Contains the connectionFileRecord class declaration.This class is used as an intermediate storage for...
virtual bool setToFileRecord(DtConnectionFileRecord *rec)
virtual ConnectionArgValues * argValues()
DtProtocolTypes myProtocolType
Definition: connectionSettings.h:164
virtual bool getArgValue(unsigned int argType, QString &argValue) const
static DtConnectionSettings * createFromProtocol(DtProtocolTypes protocol, QString connName="")
virtual bool operator!=(const DtConnectionSettings &orig) const
virtual std::string name()
DtProtocolTypes
Enumeration for supported protocol types.
Definition: connectionSettings.h:45
static DtConnectionSettings * createFromDriverRecord(DtConnectionFileRecord &driverRecord, QString connName="")
std::map< std::string, std::string > DriverRecordArgValues
Definition: connectionSettings.h:41
Definition: settingsObject.h:27
Definition: connectionSettings.h:47
Base class for all Launcher settings objects.
Definition: connectionSettings.h:62
ArgIndexDescriptionMap myArgDescriptors
Definition: connectionSettings.h:161
Definition: connectionSettings.h:56
virtual ~DtConnectionSettings()
virtual bool setFrom(const DtConnectionSettings *other)
virtual QStringList frontEndFlags()
Definition: connectionSettings.h:57
virtual void updateStringArgValue(unsigned int type, QString qstringValue)
virtual bool autoConnection() const
std::pair< const char *, const char * > ArgFlagDescriptorPair
Definition: connectionSettings.h:33
Definition: connectionSettings.h:49
ArgIndexDescriptionMap::iterator ArgIndexDescriptionEntry
Definition: connectionSettings.h:35
bool myAmAutoConnection
Definition: connectionSettings.h:163
virtual void setAutoConnection(bool conn)
Definition: connectionSettings.h:50
ConnectionArgValues myArgValues
Definition: connectionSettings.h:168
void serialize(Archive &ar, const unsigned int version)
Definition: connectionSettings.h:147
virtual DtProtocolTypes protocolType() const
virtual void updateBoolArgValue(unsigned int type, bool boolValue)
virtual QStringList backEndFlags()
virtual void setName(std::string name)
DriverRecordArgValues::iterator DriverRecordArgValuesEntry
Definition: connectionSettings.h:42
virtual void setProtocolType(DtProtocolTypes type)
Definition: connectionFileRecord.h:24
virtual void initialize()
Definition: connectionSettings.h:51
boost::unordered_map< unsigned int, ArgFlagDescriptorPair > ArgIndexDescriptionMap
Definition: connectionSettings.h:34
virtual bool findArgDescriptor(unsigned int type, ArgFlagDescriptorPair &mappingStorage)
virtual void updateIntArgValue(unsigned int type, int intValue, bool negativeOneOk=false)
ConnectionArgValues::iterator ConnectionArgValuesEntry
Definition: connectionSettings.h:39
std::string mySettingsType
Definition: connectionSettings.h:165
virtual void removeArgValueEntry(unsigned int type)
Removes setting from map so it is no longer on the command line.
friend class boost::serialization::access
Definition: connectionSettings.h:141
virtual bool connectionWillBeValid() const
std::map< unsigned int, QString > ConnectionArgValues
Definition: connectionSettings.h:38
DtConnectionSettingsCommonArguments
Definition: connectionSettings.h:54

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)