diff options
| author | Manuel Traut <manut@mecka.net> | 2012-06-03 18:41:09 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2012-06-03 18:41:09 +0200 |
| commit | b4438ec8043b2d803eb3c5da979ed4c9a3b1f53e (patch) | |
| tree | 611e13cb5e15a456b852ed0e7da91526c37f0903 | |
| parent | 5a4291a430d1584d05382510449408f4d70327a9 (diff) | |
manager: fix bugs in io registration
- an error needs to be returned
- narrow ptr into corba obj
Signed-off-by: Manuel Traut <manut@mecka.net>
| -rw-r--r-- | manager/bin/Makefile | 2 | ||||
| -rw-r--r-- | manager/bin/distrio_manager.cpp | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/manager/bin/Makefile b/manager/bin/Makefile index 05c14d7..994c384 100644 --- a/manager/bin/Makefile +++ b/manager/bin/Makefile @@ -6,7 +6,7 @@ DISTRIO_COMMON := ../../common DISTRIO_IO := ../../io LDFLAGS += -L$(DISTRIO_COMMON) -ldistrio_common -L$(DISTRIO_IO) -ldistrio_io \ - -lACE -lTAO -lTAO_AnyTypeCode -lTAO_CosNaming -lTAO_PortableServer + -lrt -lACE -lTAO -lTAO_AnyTypeCode -lTAO_CosNaming -lTAO_PortableServer CFLAGS += -fPIC -I$(DISTRIO_COMMON) -I$(DISTRIO_IO) CXXFLAGS += $(CFLAGS) diff --git a/manager/bin/distrio_manager.cpp b/manager/bin/distrio_manager.cpp index b7671fb..b808d89 100644 --- a/manager/bin/distrio_manager.cpp +++ b/manager/bin/distrio_manager.cpp @@ -10,6 +10,8 @@ #include "distrio_manager.h" +#include <distrio_error.h> + #include <orbsvcs/CosNamingC.h> #include <iostream> @@ -47,9 +49,18 @@ Distrio_Manager_i::~Distrio_Manager_i (void) ::Distrio::Error * Distrio_Manager_i::register_io_digital ( ::Distrio::Digital_ptr & io_digi) { - io_digi->id (new_id ()); + Distrio::Digital_var dig; + + try { + dig = Distrio::Digital::_narrow (io_digi); + dig->id (new_id ()); + } catch (::CORBA::Exception *exc) { + std::cerr << "register io failed" << std::endl; + } digital_list.length (digital_list.length () + 1); - digital_list [digital_list.length () - 1] = io_digi; + digital_list [digital_list.length () - 1] = dig; + + return distrio_success (); } ::Distrio::Error * Distrio_Manager_i::register_io_analog ( |
