summaryrefslogtreecommitdiff
path: root/manager/distrio_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'manager/distrio_manager.cpp')
-rw-r--r--manager/distrio_manager.cpp160
1 files changed, 0 insertions, 160 deletions
diff --git a/manager/distrio_manager.cpp b/manager/distrio_manager.cpp
deleted file mode 100644
index b7671fb..0000000
--- a/manager/distrio_manager.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- * distrio manager implementation
- *
- * - instances a manager object
- * - registers the manager object at the NamingService
- *
- * @author Manuel Traut <manut@mecka.net>
- * @licence GPLv2
- */
-
-#include "distrio_manager.h"
-
-#include <orbsvcs/CosNamingC.h>
-
-#include <iostream>
-
-// Implementation skeleton constructor
-Distrio_Manager_i::Distrio_Manager_i (void)
-{
-}
-
-// Implementation skeleton destructor
-Distrio_Manager_i::~Distrio_Manager_i (void)
-{
-}
-
-::Distrio::Error * Distrio_Manager_i::digital (
- ::Distrio::Digital_list_out io_list)
-{
- io_list = &digital_list;
-}
-
-::Distrio::Error * Distrio_Manager_i::analog (
- ::Distrio::Analog_list_out io_list)
-{
- io_list = &analog_list;
-}
-
-::Distrio::Error * Distrio_Manager_i::device (
- ::Distrio::Device_list_out dev_list)
-{
- dev_list = &device_list;
-}
-
-/* TODO: think about locking!!! */
-
-::Distrio::Error * Distrio_Manager_i::register_io_digital (
- ::Distrio::Digital_ptr & io_digi)
-{
- io_digi->id (new_id ());
- digital_list.length (digital_list.length () + 1);
- digital_list [digital_list.length () - 1] = io_digi;
-}
-
-::Distrio::Error * Distrio_Manager_i::register_io_analog (
- ::Distrio::Analog_ptr & io_ana)
-{
- io_ana->id (new_id ());
- analog_list.length (digital_list.length () + 1);
- analog_list [analog_list.length () - 1] = io_ana;
-}
-
-::Distrio::Error * Distrio_Manager_i::register_io_device (
- ::Distrio::Device_ptr & io_dev)
-{
- io_dev->id (new_id ());
- device_list.length (device_list.length () + 1);
- device_list [device_list.length () - 1] = io_dev;
-}
-
-::Distrio::Error * Distrio_Manager_i::unregister_io_digital (
- ::Distrio::Digital_ptr io_dig)
-{
- // Add your implementation here
-}
-
-::Distrio::Error * Distrio_Manager_i::unregister_io_analog (
- ::Distrio::Analog_ptr io_ana)
-{
- // Add your implementation here
-}
-
-::Distrio::Error * Distrio_Manager_i::unregister_io_device (
- ::Distrio::Device_ptr io_dev)
-{
- // Add your implementation here
-}
-
-void Distrio_Manager_i::log_error (
- const ::Distrio::Error & error)
-{
- // Add your implementation here
-}
-
-ACE_TMAIN (int argc, ACE_TCHAR *argv[])
-{
- std::cout << __FILE__ << " build " << __DATE__ << " " << __TIME__ <<std::endl;
-
- int ret = 0;
- CORBA::ORB_var orb;
- CORBA::Object_var distrio_manager_obj, root_poa, naming_service;
- PortableServer::POA_var poa;
- PortableServer::POAManager_var poa_mgr;
- CosNaming::NamingContext_var nc;
- CosNaming::Name name;
-
- Distrio_Manager_i *distrio_manager;
- PortableServer::ObjectId_var distrio_manager_oid;
-
- distrio_manager = new Distrio_Manager_i ();
-
- try {
- std::cout << "initialize CORBA orb" << std::endl;
- orb = CORBA::ORB_init (argc, argv);
- root_poa = orb->resolve_initial_references ("RootPOA");
- poa = PortableServer::POA::_narrow (root_poa.in ());
- distrio_manager_oid = poa->activate_object (distrio_manager);
- distrio_manager_obj = distrio_manager->_this ();
-
- std::cout << "get context of NameService" << std::endl;
- naming_service = orb->resolve_initial_references ("NameService");
- if (CORBA::is_nil (naming_service)) {
- std::cerr << "can't resolve NameService" << std::endl;
- ret = -EINVAL;
- goto out;
- }
- nc = CosNaming::NamingContext::_narrow (naming_service.in ());
- if (CORBA::is_nil (nc)) {
- std::cerr << "resolved invalid NameService object" << std::endl;
- ret = -EINVAL;
- goto out;
- }
-
- std::cout << "bind manager object at NameService" << std::endl;
- /* TODO: find out how to build a tree @ the nameservice "distrio/manager" */
- name.length (1);
- name[0].id = CORBA::string_dup ("distrio_manager");
- nc->rebind (name, distrio_manager_obj.in ());
-
- std::cout << "activate POA Manager" << std::endl;
- poa_mgr = poa->the_POAManager ();
- poa_mgr->activate ();
-
- std::cout << "distrio_manager ready" << std::endl;
- orb->run ();
- orb->destroy ();
- } catch (CORBA::SystemException &e) {
- std::cerr << "CORBA initialization failed: " << e << std::endl;
- ret = -EINVAL;
- goto out;
- } catch(CORBA::Exception &e) {
- std::cerr << "CORBA initialization failed: " << e << std::endl;
- ret = -EINVAL;
- goto out;
- }
-
-out:
- free (distrio_manager);
- return ret;
-}