diff options
Diffstat (limited to 'test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfiguration.hpp')
-rw-r--r-- | test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfiguration.hpp | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfiguration.hpp b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfiguration.hpp new file mode 100644 index 0000000..1e294cb --- /dev/null +++ b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfiguration.hpp @@ -0,0 +1,158 @@ +#ifndef NAVIGATIONCORECONFIGURATION_HPP +#define NAVIGATIONCORECONFIGURATION_HPP + +#include <node.h> +#include <node_buffer.h> + +#include <string> +#include <vector> +#include <map> + +// Do not include this line. It's generally frowned upon to use namespaces +// in header files as it may cause issues with other code that includes your +// header file. +// using namespace v8; + +class Version { +public: + Version() { + versionMajor = 1; + versionMinor = 0; + versionMicro = 0; + date = "19:02:2016"; + } + uint16_t versionMajor; + uint16_t versionMinor; + uint16_t versionMicro; + std::string date; +}; + +class Locale { +public: + Locale() { + languageCode = "eng"; + countryCode = "USA"; + scriptCode = "Latn"; + } + Locale(std::string language, std::string country, std::string script) { + languageCode = language; + countryCode = country; + scriptCode = script; + } + + std::string languageCode; + std::string countryCode; + std::string scriptCode; +}; + + +namespace org { +namespace genivi { +namespace navigationcore { + +class Configuration_proxy +{ +public: + + union UnitsOfMeasurementValue { + int32_t intValue; + double doubleValue; + }; + + enum UnitsOfMeasurementValueType { + intValue=0, + doubleValue=1 + }; + + typedef struct { + UnitsOfMeasurementValueType type; + UnitsOfMeasurementValue value; + } UnitsOfMeasurementValueStruct; + + enum UnitsOfMeasurementAttribute { + INVALID, + LENGTH=1 + }; + + enum Units { + METER = 50, + MILE = 51, + KM = 52, + YARD = 53, + FOOT = 54 + }; + + typedef std::map<UnitsOfMeasurementAttribute,UnitsOfMeasurementValueStruct > UnitsOfMeasurement; + + Configuration_proxy() + { + Locale en_US { "eng","USA", "Latn" }; + Locale de_DE { "deu","DEU", "Latn" }; + Locale fr_FR { "fra","FRA", "Latn" }; + Locale jp_JP { "jpn","JPN", "Hrkt" }; + m_locale_list.push_back(en_US); + m_locale_list.push_back(de_DE); + m_locale_list.push_back(fr_FR); +// m_locale_list.push_back(jp_JP); //For the test Japanese is not supported + + UnitsOfMeasurementValueStruct value {intValue,METER}; + + m_units_of_measurement[LENGTH] = value; + } + + Version GetVersion() + { + return m_version; + } + + Locale GetLocale() + { + return m_locale; + } + std::vector<Locale > GetSupportedLocales() + { + return m_locale_list; + } + + void SetLocale(Locale& locale) + { + m_locale = locale; + } + + UnitsOfMeasurement GetUnitsOfMeasurement() + { + return m_units_of_measurement; + } + +public: +private: + Version m_version; + Locale m_locale; + std::vector<Locale > m_locale_list; + UnitsOfMeasurement m_units_of_measurement; +}; +} } } + +class NavigationCoreConfiguration : public node::ObjectWrap { +public: + static v8::Persistent<v8::FunctionTemplate> constructor; + static void Init(v8::Handle<v8::Object> target); + +protected: + NavigationCoreConfiguration(); + + static v8::Handle<v8::Value> New(const v8::Arguments& args); + static v8::Handle<v8::Value> GetVersion(const v8::Arguments& args); + static v8::Handle<v8::Value> GetSupportedLocales(const v8::Arguments& args); + static v8::Handle<v8::Value> GetUnitsOfMeasurement(const v8::Arguments& args); + + static v8::Handle<v8::Value> GetProperty(const v8::Arguments& args); + static v8::Handle<v8::Value> SetProperty(const v8::Arguments& args); + + static void ConfigurationChanged(const v8::Handle<v8::Function> &callback, const v8::Handle<v8::Array>& array); + + // Your own object variables here + org::genivi::navigationcore::Configuration_proxy m_proxy; +}; + +#endif |