VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
countryCodesManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
10 #include <boost/signals2.hpp>
11 
12 #include <vlutil/vlFilename.h>
13 
14 #include <string>
15 #include <set>
16 #include <map>
17 
18 namespace makVrv
19 {
20  class DtDe;
21 }
22 
23 namespace makVrf
24 {
28  {
29  public:
31  typedef std::map<std::string, std::string> CountryCodes;
32 
33  public:
36  virtual ~DtCountryCodesManager();
37 
39  static DtCountryCodesManager& instance(makVrv::DtDe& de);
40  static void registerInstance(makVrv::DtDe&, DtCountryCodesManager*);
41 
43  virtual const std::set<std::string>& countryCodes() const
44  {
45  return myCountryCodes;
46  }
47 
49  virtual const CountryCodes& countryCodesByCountry() const
50  {
51  return myCountryCodesByCountry;
52  }
53 
55  virtual const CountryCodes& countriesByCountryCode() const
56  {
57  return myCountriesByCountryCode;
58  }
59 
61  virtual void addCountry(const std::string& code, const std::string& name, bool signal = true);
62 
64  virtual std::string country(const std::string& code) const;
65 
67  virtual std::string countryCode(const std::string& country) const;
68 
70  virtual bool loadCountryCodesFile(const std::string&, bool merge = false);
71 
73  virtual bool reload();
74 
76  virtual bool removeCountry(const std::string&, bool signal = true);
77 
80  boost::signals2::signal<void (std::string, std::string)> signal_countryAdded;
81 
83  boost::signals2::signal<void (std::string)> signal_countryRemoved;
84 
86  boost::signals2::signal<void ()> signal_loaded;
87 
88  protected:
90  std::set<std::string> myCountryCodes;
93  DtFilename myLastLoadedFile;
94  };
95 }
CountryCodes myCountryCodesByCountry
Definition: countryCodesManager.h:92
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(std::string, std::string)> signal_countryAdded
Signals Signal when country added (code, name)
Definition: countryCodesManager.h:80
std::set< std::string > myCountryCodes
Definition: countryCodesManager.h:90
makVrv::DtDe & myDe
Definition: countryCodesManager.h:89
This class will read a country codes file (default settings\country-codes.csv) and allow for access o...
Definition: countryCodesManager.h:27
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::map< std::string, std::string > CountryCodes
Map is 2 letter country code followed by engish name.
Definition: countryCodesManager.h:31
DtFilename myLastLoadedFile
Reverse map (for convenience)
Definition: countryCodesManager.h:93
CountryCodes myCountriesByCountryCode
Definition: countryCodesManager.h:91
Contains makVrv::DtVirtualBaseClass class.
virtual const std::set< std::string > & countryCodes() const
Returns the current list of country codes.
Definition: countryCodesManager.h:43
boost::signals2::signal< void(std::string)> signal_countryRemoved
Signal sent when country removed.
Definition: countryCodesManager.h:83
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
boost::signals2::signal< void()> signal_loaded
Signal when loaded.
Definition: countryCodesManager.h:86
virtual const CountryCodes & countriesByCountryCode() const
Returns the current list of country codes mapped to country.
Definition: countryCodesManager.h:55
virtual const CountryCodes & countryCodesByCountry() const
Returns the current list of countries mapped to country codes.
Definition: countryCodesManager.h:49

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)