summaryrefslogtreecommitdiff
path: root/common/distrio_helper.cpp
diff options
context:
space:
mode:
authorManuel Traut <manut@mecka.net>2012-06-07 16:00:59 +0200
committerManuel Traut <manut@mecka.net>2012-06-07 16:00:59 +0200
commite3f225cd4fb60437d94288849f7af03179d56f6b (patch)
tree7c4ef56f5c83fc6cdd6d74a0aa8011f0f39b0307 /common/distrio_helper.cpp
parentf5e17d19e473e501ffa964ec3ccda1970ecafbf2 (diff)
retriving digital ios inside a device works now
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'common/distrio_helper.cpp')
-rw-r--r--common/distrio_helper.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/common/distrio_helper.cpp b/common/distrio_helper.cpp
index 076719c..ad0a5cd 100644
--- a/common/distrio_helper.cpp
+++ b/common/distrio_helper.cpp
@@ -56,7 +56,7 @@ out:
return ret;
}
-int register_digital (std::string _name, Distrio_Digital_i *digital)
+int register_digital (Distrio_Digital_i *digital)
{
CosNaming::Name name;
CORBA::Object_var obj, manager_obj;
@@ -73,12 +73,13 @@ int register_digital (std::string _name, Distrio_Digital_i *digital)
oid = ref.poa->activate_object (digital);
obj = digital->_this ();
name.length (1);
- name[0].id = CORBA::string_dup (_name.c_str ());
+ e = digital->name (name[0].id);
+ free (e);
name[0].kind = CORBA::string_dup ("digital_io");
ref.nc->rebind (name, obj.in ());
- } catch (CORBA::Exception &e) {
+ } catch (CORBA::Exception &exc) {
std::cerr << "CORBA bind digital io at naming service failed: "
- << e << std::endl;
+ << exc << std::endl;
return -1;
}
@@ -120,9 +121,11 @@ Distrio::Digital_ptr lookup_digital (std::string _name)
for (unsigned int i = 0; i < dig_list->length (); i++) {
::CORBA::String_var name;
Distrio::Error *e;
+
e = dig_list[i]->name (name);
free (e);
- if (! _name.compare (name)) {
+
+ if (! _name.compare (name.in ())) {
Distrio::Digital_ptr ptr = dig_list[i];
return ptr;
}