diff options
5 files changed, 45 insertions, 77 deletions
diff --git a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.cpp b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.cpp index adc0f45..3c4c887 100644 --- a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.cpp +++ b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.cpp @@ -5,8 +5,6 @@ using namespace v8; using namespace std; -static DBus::Glib::BusDispatcher dispatcher; -static DBus::Connection *connection; Persistent<FunctionTemplate> NavigationCoreConfigurationWrapper::constructor; @@ -52,6 +50,9 @@ void NavigationCoreConfigurationWrapper::Init(Handle<Object> target) { NavigationCoreConfigurationWrapper::NavigationCoreConfigurationWrapper() { } +NavigationCoreConfigurationWrapper::~NavigationCoreConfigurationWrapper() { +} + Handle<Value> NavigationCoreConfigurationWrapper::New(const Arguments& args) { HandleScope scope; @@ -60,12 +61,7 @@ Handle<Value> NavigationCoreConfigurationWrapper::New(const Arguments& args) { String::New("Use the new operator to create instances of this object.")) ); } - dispatcher.attach(NULL); - DBus::default_dispatcher = &dispatcher; - connection = new DBus::Connection(DBus::Connection::SessionBus()); - connection->setup(&dispatcher); - NavigationCoreConfigurationProxy* proxy = new NavigationCoreConfigurationProxy(*connection); - + NavigationCoreProxy* proxy = new NavigationCoreProxy(); // Creates a new instance object of this type and wraps it. NavigationCoreConfigurationWrapper* obj = new NavigationCoreConfigurationWrapper(); @@ -91,8 +87,8 @@ Handle<Value> NavigationCoreConfigurationWrapper::GetProperty(const Arguments& a NavigationCoreConfigurationWrapper* obj = ObjectWrap::Unwrap<NavigationCoreConfigurationWrapper>(args.This()); Local<Object> ret = Object::New(); - - Locale localeValue = obj->mp_proxy->GetLocale(); + Locale localeValue; + obj->mp_proxy->mp_configurationProxy->GetLocale(localeValue.languageCode,localeValue.countryCode,localeValue.scriptCode); ret->Set( 0, String::New(propertyName.c_str()) ); ret->Set( 1, String::New(localeValue.languageCode.c_str()) ); ret->Set( 2, String::New(localeValue.countryCode.c_str()) ); @@ -154,7 +150,7 @@ Handle<Value> NavigationCoreConfigurationWrapper::SetProperty(const Arguments& a // Retrieves the pointer to the wrapped object instance. NavigationCoreConfigurationWrapper* obj = ObjectWrap::Unwrap<NavigationCoreConfigurationWrapper>(args.This()); - obj->mp_proxy->SetLocale(localeValue); + obj->mp_proxy->mp_configurationProxy->SetLocale(localeValue.languageCode,localeValue.countryCode,localeValue.scriptCode); Handle<Value> callBackValue = property_obj->Get(String::New("callBack")); @@ -176,13 +172,13 @@ Handle<Value> NavigationCoreConfigurationWrapper::GetVersion(const Arguments& ar // Retrieves the pointer to the wrapped object instance. NavigationCoreConfigurationWrapper* obj = ObjectWrap::Unwrap<NavigationCoreConfigurationWrapper>(args.This()); - Version version = obj->mp_proxy->GetVersion(); + ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > DBus_version = obj->mp_proxy->mp_configurationProxy->GetVersion(); Local<Object> ret = Object::New(); - ret->Set( 0, Int32::New(version.versionMajor) ); - ret->Set( 1, Int32::New(version.versionMinor) ); - ret->Set( 2, Int32::New(version.versionMicro) ); - ret->Set( 3, String::New(version.date.c_str()) ); + ret->Set( 0, Int32::New(DBus_version._1) ); + ret->Set( 1, Int32::New(DBus_version._2) ); + ret->Set( 2, Int32::New(DBus_version._3) ); + ret->Set( 3, String::New(DBus_version._4.c_str()) ); return scope.Close(ret); } @@ -193,15 +189,15 @@ Handle<Value> NavigationCoreConfigurationWrapper::GetSupportedLocales(const Argu // Retrieves the pointer to the wrapped object instance. NavigationCoreConfigurationWrapper* obj = ObjectWrap::Unwrap<NavigationCoreConfigurationWrapper>(args.This()); - std::vector<Locale > localeList = obj->mp_proxy->GetSupportedLocales(); + std::vector< ::DBus::Struct< std::string, std::string, std::string > > localeList = obj->mp_proxy->mp_configurationProxy->GetSupportedLocales(); Local<Array> ret = Array::New(); for (unsigned i=0;i<localeList.size();i++) { Local<Object> data = Object::New(); - data->Set( 0, String::New(localeList.at(i).languageCode.c_str()) ); - data->Set( 1, String::New(localeList.at(i).countryCode.c_str()) ); - data->Set( 2, String::New(localeList.at(i).scriptCode.c_str()) ); + data->Set( 0, String::New(localeList.at(i)._1.c_str()) ); + data->Set( 1, String::New(localeList.at(i)._2.c_str()) ); + data->Set( 2, String::New(localeList.at(i)._3.c_str()) ); ret->Set(ret->Length(), data); } @@ -215,7 +211,7 @@ Handle<Value> NavigationCoreConfigurationWrapper::GetUnitsOfMeasurement(const Ar // Retrieves the pointer to the wrapped object instance. NavigationCoreConfigurationWrapper* obj = ObjectWrap::Unwrap<NavigationCoreConfigurationWrapper>(args.This()); - NavigationCoreConfigurationProxy::UnitsOfMeasurement unitsOfMeasurement = obj->mp_proxy->GetUnitsOfMeasurement(); + NavigationCoreConfigurationProxy::UnitsOfMeasurement unitsOfMeasurement = obj->mp_proxy->mp_configurationProxy->GetUnitsOfMeasurement(); Local<Array> ret = Array::New(); for (NavigationCoreConfigurationProxy::UnitsOfMeasurement::iterator iter = unitsOfMeasurement.begin(); iter != unitsOfMeasurement.end(); iter++) { diff --git a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.hpp b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.hpp index b519a83..82d98d2 100644 --- a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.hpp +++ b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/NavigationCoreConfigurationWrapper.hpp @@ -24,6 +24,7 @@ public: protected: NavigationCoreConfigurationWrapper(); + ~NavigationCoreConfigurationWrapper(); static v8::Handle<v8::Value> New(const v8::Arguments& args); static v8::Handle<v8::Value> GetVersion(const v8::Arguments& args); @@ -37,7 +38,7 @@ protected: private: - NavigationCoreConfigurationProxy* mp_proxy; + NavigationCoreProxy* mp_proxy; }; #endif diff --git a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/binding.gyp b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/binding.gyp index 366c241..9d230bb 100644 --- a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/binding.gyp +++ b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/binding.gyp @@ -6,7 +6,7 @@ 'type': 'shared_library', 'sources': [ './dbus-proxies/NavigationCoreConfigurationProxy.cpp' ], 'include_dirs': ['./','/usr/include/dbus-c++-1/','/usr/include/glib-2.0/','/usr/lib/i386-linux-gnu/glib-2.0/include/'], - 'cflags_cc': ['-Wall', '-std=gnu++11', '-fexceptions'], + 'cflags_cc': ['-Wall', '-std=gnu++11', '-fexceptions','-fPIC'], 'libraries': ['-ldbus-c++-1 -ldbus-1 -ldbus-c++-glib-1', '-L/usr/lib/i386-linux-gnu/'] }, { diff --git a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.cpp b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.cpp index 8023e55..c5ce609 100644 --- a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.cpp +++ b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.cpp @@ -5,19 +5,14 @@ using namespace v8; using namespace std; +static DBus::Glib::BusDispatcher *dispatcher; +static DBus::Connection *connection; + NavigationCoreConfigurationProxy::NavigationCoreConfigurationProxy(DBus::Connection &connection) : DBus::ObjectProxy(connection, - "/org/genivi/navigationcore/Configuration", + "/org/genivi/navigationcore", "org.genivi.navigationcore.Configuration") { - 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}; @@ -29,34 +24,23 @@ void NavigationCoreConfigurationProxy::ConfigurationChanged(const std::vector< i } -Version NavigationCoreConfigurationProxy::GetVersion() -{ - ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > DBus_version; - Version version; - DBus_version = Configuration_proxy::GetVersion(); - version.versionMajor = DBus_version._1; - version.versionMinor = DBus_version._2; - version.versionMicro = DBus_version._3; - version.date = DBus_version._4; - return version; -} - -Locale NavigationCoreConfigurationProxy::GetLocale() -{ - return m_locale; -} -std::vector<Locale > NavigationCoreConfigurationProxy::GetSupportedLocales() +NavigationCoreConfigurationProxy::UnitsOfMeasurement NavigationCoreConfigurationProxy::GetUnitsOfMeasurement() { - return m_locale_list; + return m_units_of_measurement; } -void NavigationCoreConfigurationProxy::SetLocale(Locale& locale) +NavigationCoreProxy::NavigationCoreProxy() { - m_locale = locale; + dispatcher = new DBus::Glib::BusDispatcher(); + DBus::default_dispatcher = dispatcher; + dispatcher->attach(NULL); + connection = new DBus::Connection(DBus::Connection::SessionBus()); + connection->setup(dispatcher); + mp_configurationProxy = new NavigationCoreConfigurationProxy(*connection); } -NavigationCoreConfigurationProxy::UnitsOfMeasurement NavigationCoreConfigurationProxy::GetUnitsOfMeasurement() +NavigationCoreProxy::~NavigationCoreProxy() { - return m_units_of_measurement; + delete connection; + delete dispatcher; } - diff --git a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.hpp b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.hpp index 3a08929..9f976e1 100644 --- a/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.hpp +++ b/test/navigation/w3c/socket-based-poc/node-cpp-lbs-modules/dbus-proxies/NavigationCoreConfigurationProxy.hpp @@ -17,20 +17,6 @@ // 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() { @@ -87,18 +73,19 @@ public: NavigationCoreConfigurationProxy(DBus::Connection &connection); void ConfigurationChanged(const std::vector< int32_t >& changedSettings); - Version GetVersion(); - Locale GetLocale(); - std::vector<Locale > GetSupportedLocales(); - void SetLocale(Locale& locale); UnitsOfMeasurement GetUnitsOfMeasurement(); -public: private: - Version m_version; - Locale m_locale; - std::vector<Locale > m_locale_list; UnitsOfMeasurement m_units_of_measurement; }; +class NavigationCoreProxy +{ +public: + NavigationCoreProxy(); + ~NavigationCoreProxy(); + + NavigationCoreConfigurationProxy* mp_configurationProxy; +}; + #endif |