VR-Forces 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 
15 
17 
18 #include <boost/archive/xml_iarchive.hpp>
19 #include <boost/archive/xml_oarchive.hpp>
20 #include <boost/serialization/nvp.hpp>
21 
22 #include <QtCore/QStringList>
23 
24 #include <vlutil/vlString.h>
25 #include <vlutil/vlPrint.h>
26 #include <vlutil/vlRtiCompilerCheck.h>
27 
28 #include <string>
29 #include <vector>
30 #include <map>
31 #include <unordered_map>
32 
33 
35 typedef std::pair<const char*,const char*> ArgFlagDescriptorPair;
36 typedef std::unordered_map<unsigned int,ArgFlagDescriptorPair> ArgIndexDescriptionMap;
37 typedef ArgIndexDescriptionMap::iterator ArgIndexDescriptionEntry;
38 
39 //Mapping between argument int and command-line value DtString
40 typedef std::map< unsigned int, QString > ConnectionArgValues;
41 typedef ConnectionArgValues::iterator ConnectionArgValuesEntry;
42 typedef ConnectionArgValues::const_iterator ConnectionArgValuesConstEntry;
43 
44 typedef std::map<std::string,std::string> DriverRecordArgValues;
45 typedef DriverRecordArgValues::iterator DriverRecordArgValuesEntry;
46 
49 {
54 };
55 
57 {
60 };
61 
65 {
66 public:
67 
70 
72  DtConnectionSettings( std::string name );
73 
75  DtConnectionSettings( std::string name, DtProtocolTypes protocol );
76 
79 
80  virtual ~DtConnectionSettings() override;
81 
83  virtual bool operator == ( const DtConnectionSettings & orig ) const;
84 
86  virtual bool operator != ( const DtConnectionSettings& orig ) const;
87 
89  virtual bool setFrom( const DtConnectionSettings* other );
90  virtual bool setFrom( const DtConnectionFileRecord& rec );
91 
93  virtual bool connectionWillBeValid() const;
94  //returns true if the connection is valid. Checks the supplied argument.
95  virtual bool connectionWillBeValid(const QString deviceAddress) const;
96 
97 #ifdef _WIN32
98  virtual bool checkRtiVersion(DtHLALib, bool showError = true) const;
100 #endif
101 
102  virtual bool setToFileRecord( DtConnectionFileRecord * rec );
103 
104  virtual void setName( std::string name );
105  virtual std::string name() const override;
106 
107  virtual void setDescription(const std::string&);
108  virtual std::string description() const
109  {
110  return myDescription;
111  }
112 
114  virtual DtProtocolTypes protocolType() const;
115  virtual void setProtocolType( DtProtocolTypes type );
116 
117  //Is this settings object the connect we should automatically connect with
118  virtual bool autoConnection() const ;
119  virtual void setAutoConnection( bool conn );
120 
121  //Whether or not this item is the last selected one, so it can be brought up when the app is selected, if there is no auto connect
122  virtual bool selectAtStart() const;
123  virtual void setSelectAtStart(bool);
124 
126  virtual ConnectionArgValues* argValues();
127 
128  //overload this class so as to take whatever data type comes out of the dialog
129  virtual void updateStringArgValue( unsigned int type, QString qstringValue );
130  virtual void updateBoolArgValue( unsigned int type, bool boolValue );
131  virtual void updateIntArgValue( unsigned int type, int intValue, bool negativeOneOk = false );
132 
133  //returns "false" if the entry does not exist
134  virtual bool getArgValue( unsigned int argType, QString & argValue ) const;
135 
137  virtual void removeArgValueEntry( unsigned int type );
138  virtual bool findArgDescriptor( unsigned int type, ArgFlagDescriptorPair& mappingStorage ) const;
139 
140  virtual QStringList flagsFromLinkConfigFile() const;
141 
142  virtual QStringList frontEndFlags() const;
143  virtual QStringList backEndFlags() const;
144 
145  virtual std::string summary() const;
146 
147  static DtConnectionSettings* createFromDriverRecord( DtConnectionFileRecord & driverRecord, QString connName = "");
148  static DtConnectionSettings* createFromProtocol( DtProtocolTypes protocol, QString connName = "" );
149 
150  void setAutoConnect(bool b) { myAmAutoConnection = b; };
151  bool autoConnect() const { return myAmAutoConnection; };
152 
153 protected:
154 
156  virtual void initialize();
157 
158 private:
159 
160  friend class boost::serialization::access;
161 
165  template<class Archive>
166  void serialize(Archive & ar, const unsigned int version)
167  {
169  ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(DtSettingsObject);
170 
172  ar & BOOST_SERIALIZATION_NVP(myAmAutoConnection);
173  ar & BOOST_SERIALIZATION_NVP(myProtocolType);
174  //ar & BOOST_SERIALIZATION_NVP(myArgsListSetting);
175 
176  if (version >= 2)
177  {
178  ar & BOOST_SERIALIZATION_NVP(mySelectAtStart);
179  if (version >= 3)
180  {
181  ar & BOOST_SERIALIZATION_NVP(myDescription);
182  }
183  }
184  }
185 
186 protected:
187 
188 
190 
193  std::string mySettingsType;
194 
197  bool mySelectAtStart = false;
198 
199  std::string myDescription;
200 
201 };
202 
204 BOOST_SERIALIZATION_ASSUME_ABSTRACT( DtConnectionSettings )
virtual bool operator!=(const DtSettingsObject &orig) const
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
Contains the connectionFileRecord class declaration.This class is used as an intermediate storage for...
virtual bool setFrom(const DtSettingsObject *other)
std::unordered_map< unsigned int, ArgFlagDescriptorPair > ArgIndexDescriptionMap
Definition: connectionSettings.h:36
DtProtocolTypes myProtocolType
Definition: connectionSettings.h:192
ConnectionArgValues::const_iterator ConnectionArgValuesConstEntry
Definition: connectionSettings.h:42
DtProtocolTypes
Enumeration for supported protocol types.
Definition: connectionSettings.h:48
std::string myDescription
Definition: connectionSettings.h:199
std::map< std::string, std::string > DriverRecordArgValues
Definition: connectionSettings.h:44
Definition: settingsObject.h:27
Definition: connectionSettings.h:51
Definition: connectionSettings.h:50
Base class for all Launcher settings objects.
Definition: connectionSettings.h:64
ArgIndexDescriptionMap myArgDescriptors
Definition: connectionSettings.h:189
Definition: connectionSettings.h:58
Definition: connectionSettings.h:59
bool autoConnect() const
Definition: connectionSettings.h:151
virtual std::string name() const
void setAutoConnect(bool b)
Definition: connectionSettings.h:150
std::pair< const char *, const char * > ArgFlagDescriptorPair
Stores two strings - first is the command-line flag, second is a descriptive (?) string.
Definition: connectionSettings.h:35
ArgIndexDescriptionMap::iterator ArgIndexDescriptionEntry
Definition: connectionSettings.h:37
bool myAmAutoConnection
Definition: connectionSettings.h:191
virtual std::string description() const
Definition: connectionSettings.h:108
Definition: connectionSettings.h:52
ConnectionArgValues myArgValues
Holds all the cmd args that have been set for this connection.
Definition: connectionSettings.h:196
void serialize(Archive &ar, const unsigned int version)
Serialization support. Derived classes must call BOOST_SERIALIZATION_BASE_OBJECT_NVP(DtSettingsObject...
Definition: connectionSettings.h:166
DriverRecordArgValues::iterator DriverRecordArgValuesEntry
Definition: connectionSettings.h:45
Definition: connectionFileRecord.h:23
Definition: connectionSettings.h:53
virtual bool operator==(const DtSettingsObject &orig) const
#define DT_DLL_vrfLauncherQt
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfLauncherQtDefines.h:34
ConnectionArgValues::iterator ConnectionArgValuesEntry
Definition: connectionSettings.h:41
std::string mySettingsType
Definition: connectionSettings.h:193
std::map< unsigned int, QString > ConnectionArgValues
Definition: connectionSettings.h:40
DtConnectionSettingsCommonArguments
Definition: connectionSettings.h:56

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)