diff options
| author | Manuel Traut <manut@mecka.net> | 2012-09-23 21:23:08 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2012-09-23 21:23:08 +0200 |
| commit | 2a81bd3d5cc7f6653adef9f6653ff4a20709b0d7 (patch) | |
| tree | b4b11094534907acb27272e4ea3c10cf6b75bda3 /common/distrio_helper.cpp | |
| parent | bdf4c406cd80fe0e25df68ef98a8b626093290c4 (diff) | |
client/test: test client to lookup devices /functions etc
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'common/distrio_helper.cpp')
| -rw-r--r-- | common/distrio_helper.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/common/distrio_helper.cpp b/common/distrio_helper.cpp index 6146265..451af40 100644 --- a/common/distrio_helper.cpp +++ b/common/distrio_helper.cpp @@ -220,6 +220,25 @@ int register_device (Distrio_Device_i *dev) return 0; } +void get_device_list (Distrio::Device_list_var *dev_list) +{ + CORBA::Object_var obj; + Distrio::Error *e; + + if (ref.init != ORB_RUNNING) { + std::cerr << "corba not initialized" << std::endl; + return; + } + + try { + e = ref.manager->device (*dev_list); + free (e); + } catch (CORBA::Exception &_e) { + std::cerr << "CORBA get digital list failed: " + << _e << std::endl; + } +} + void get_analog_list (Distrio::Analog_list_var *ana_list) { CORBA::Object_var obj; @@ -309,3 +328,29 @@ int lookup_digital (std::string _name, Distrio::Digital_list_var dig_list, } return -EHOSTDOWN; } + +int lookup_device (std::string _name, Distrio::Device_list_var dev_list, + Distrio::Device **ptr) +{ + if (ref.init != ORB_RUNNING) { + std::cerr << "corba not initialized" << std::endl; + return -EINVAL; + } + + for (unsigned int i = 0; i < dev_list->length (); i++) { + ::CORBA::String_var name; + Distrio::Error *e; + try { + e = dev_list[i]->name (name); + if (!::CORBA::is_nil (e)) + free (e); + if (! _name.compare (name.in ())) { + *ptr = dev_list[i]; + return 0; + } + } catch (::CORBA::Exception &ex) { + std::cerr << "get name of device failed\n" << ex << std::cerr; + } + } + return -EHOSTDOWN; +} |
