summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/distrio_helper.cpp28
-rw-r--r--common/distrio_helper.h4
2 files changed, 20 insertions, 12 deletions
diff --git a/common/distrio_helper.cpp b/common/distrio_helper.cpp
index ad0a5cd..362217d 100644
--- a/common/distrio_helper.cpp
+++ b/common/distrio_helper.cpp
@@ -97,25 +97,31 @@ int register_digital (Distrio_Digital_i *digital)
return 0;
}
-Distrio::Digital_ptr lookup_digital (std::string _name)
+void get_digital_list (Distrio::Digital_list_var *dig_list)
{
CORBA::Object_var obj;
- Distrio::Digital_var ret;
- Distrio::Digital_list_var dig_list;
Distrio::Error *e;
if (ref.init != ORB_RUNNING) {
std::cerr << "corba not initialized" << std::endl;
- return NULL;
+ return;
}
try {
- e = ref.manager->digital (dig_list);
+ e = ref.manager->digital (*dig_list);
free (e);
} catch (CORBA::Exception &_e) {
- std::cerr << "CORBA lookup digital io "<< _name <<" failed: "
+ std::cerr << "CORBA get digital list failed: "
<< _e << std::endl;
- return NULL;
+ }
+}
+
+void lookup_digital (std::string _name, Distrio::Digital_list_var dig_list,
+ Distrio::Digital **ptr)
+{
+ if (ref.init != ORB_RUNNING) {
+ std::cerr << "corba not initialized" << std::endl;
+ return;
}
for (unsigned int i = 0; i < dig_list->length (); i++) {
@@ -126,12 +132,12 @@ Distrio::Digital_ptr lookup_digital (std::string _name)
free (e);
if (! _name.compare (name.in ())) {
- Distrio::Digital_ptr ptr = dig_list[i];
- return ptr;
+ *ptr = dig_list[i];
+ (*ptr)->reset ();
+ std::cout << "yeah: " << *ptr << std::endl;
+ return;
}
}
-
- return NULL;
}
int register_device (std::string _name, Distrio_Device_i *dev)
diff --git a/common/distrio_helper.h b/common/distrio_helper.h
index 69a6ef0..b4d2d55 100644
--- a/common/distrio_helper.h
+++ b/common/distrio_helper.h
@@ -44,7 +44,9 @@ int init_corba (int argc, char **argv);
/** register a digital io with a common name at the naming service */
int register_digital (Distrio_Digital_i *digital);
/** lookup a digital io by a common name at the manager */
-Distrio::Digital_ptr lookup_digital (std::string _name);
+void get_digital_list (Distrio::Digital_list_var *dig_list);
+void lookup_digital (std::string _name, Distrio::Digital_list_var dig_list,
+ Distrio::Digital **ptr);
/** register a device with a common name at the naming service */
int register_device (std::string _name, Distrio_Device_i *dev);
/** run the orb - function blocks until orb shutdown */