// -*- C++ -*- // $Id$ /** * Code generated by the The ACE ORB (TAO) IDL Compiler v2.1.2 * TAO and the TAO IDL Compiler have been developed by: * Center for Distributed Object Computing * Washington University * St. Louis, MO * USA * http://www.cs.wustl.edu/~schmidt/doc-center.html * and * Distributed Object Computing Laboratory * University of California at Irvine * Irvine, CA * USA * and * Institute for Software Integrated Systems * Vanderbilt University * Nashville, TN * USA * http://www.isis.vanderbilt.edu/ * * Information about TAO is available at: * http://www.cs.wustl.edu/~schmidt/TAO.html **/ // TAO_IDL - Generated from // be/be_codegen.cpp:1673 #include "distrio_io.h" #include Distrio_Digital_i::Distrio_Digital_i (std::string _name, ::Distrio::Direction _dir) { io_name = _name; dir = _dir; val = -1; } // Implementation skeleton constructor Distrio_Digital_i::Distrio_Digital_i (void) { val = -1; } // Implementation skeleton destructor Distrio_Digital_i::~Distrio_Digital_i (void) { } ::Distrio::Error * Distrio_Digital_i::name ( ::CORBA::String_out _name) { _name = CORBA::string_dup (io_name.c_str ()); return distrio_success (); } ::Distrio::Error * Distrio_Digital_i::set () { return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, "set digital io not implemented"); } ::Distrio::Error * Distrio_Digital_i::reset () { return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, "reset digital io not implemented"); } ::Distrio::Error * Distrio_Digital_i::get (::CORBA::Long_out value) { return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, "get digital io not implemented"); } #include /** TODO: think about locking */ ::Distrio::Error * Distrio_Digital_i::register_callback ( ::Distrio::Device_ptr dev, ::Distrio::Digital_trigger trigger) { std::cout << __func__ << std::endl; switch (trigger) { case Distrio::TRIGGER_VALUE: cb_list_fall.push_back (dev); cb_list_rise.push_back (dev); break; case Distrio::TRIGGER_RISING_EDGE: cb_list_rise.push_back (dev); break; case Distrio::TRIGGER_FALLING_EDGE: cb_list_fall.push_back (dev); break; default: return distrio_error (Distrio::E_INVAL, Distrio::L_NORMAL, dev->id (), "register_callback with unknown type"); }; return distrio_success (); } /** TODO: think about locking */ void Distrio_Digital_i::raise () { val = 1; for (std::list :: iterator it = cb_list_rise.begin (); it != cb_list_rise.end (); it++) (*it)->callback_digital ((::Distrio::Digital_ptr) this); } /** TODO: think about locking */ void Distrio_Digital_i::fall () { val = 0; for (std::list :: iterator it = cb_list_fall.begin (); it != cb_list_fall.end (); it++) (*it)->callback_digital ((::Distrio::Digital_ptr) this); } void Distrio_Digital_i::update_timestamp () { struct timespec _ts; clock_gettime (CLOCK_REALTIME, &_ts); ts.seconds = _ts.tv_sec; ts.nanoseconds = _ts.tv_nsec; } ::Distrio::Direction Distrio_Digital_i::direction ( void) { return dir; } ::Distrio::Timestamp Distrio_Digital_i::last_update ( void) { return ts; } void Distrio_Digital_i::last_update ( const ::Distrio::Timestamp & last_update) { ts = last_update; } ::CORBA::Long Distrio_Digital_i::id ( void) { return io_id; } void Distrio_Digital_i::id ( ::CORBA::Long _id) { io_id = _id; } Distrio_Analog_i::Distrio_Analog_i (std::string _name, Distrio::Direction _dir) { dir = _dir; io_name = _name; } // Implementation skeleton constructor Distrio_Analog_i::Distrio_Analog_i (void) { } // Implementation skeleton destructor Distrio_Analog_i::~Distrio_Analog_i (void) { } ::Distrio::Error * Distrio_Analog_i::name ( ::CORBA::String_out _name) { _name = CORBA::string_dup (io_name.c_str ()); return distrio_success (); } ::Distrio::Error * Distrio_Analog_i::min ( ::CORBA::Long_out min) { return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Analog_i::max ( ::CORBA::Long_out max) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Analog_i::set ( ::CORBA::Long value) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Analog_i::get ( ::CORBA::Long_out value) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Analog_i::register_callback ( ::Distrio::Device_ptr dev, const ::Distrio::Analog_trigger & trigger) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, io_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Timestamp Distrio_Analog_i::last_update ( void) { // Add your implementation here } void Distrio_Analog_i::last_update ( const ::Distrio::Timestamp & last_update) { // Add your implementation here } ::Distrio::Direction Distrio_Analog_i::direction ( void) { return dir; } ::CORBA::Long Distrio_Analog_i::id ( void) { return io_id; } void Distrio_Analog_i::id ( ::CORBA::Long _id) { io_id = _id; } // Implementation skeleton constructor Distrio_Device_i::Distrio_Device_i (void) { } // Implementation skeleton destructor Distrio_Device_i::~Distrio_Device_i (void) { } ::Distrio::Error * Distrio_Device_i::name ( ::CORBA::String_out name) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, dev_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Device_i::execute ( const ::Distrio::Dev_function & func) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, dev_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Device_i::functions ( ::Distrio::Dev_function_list_out funcs) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, dev_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Device_i::callback_digital ( ::Distrio::Digital_ptr io_dig) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, dev_id, std::string (__func__) + std::string (" not implemented")); } ::Distrio::Error * Distrio_Device_i::callback_analog ( ::Distrio::Analog_ptr io_ana) { // Add your implementation here return distrio_error (Distrio::E_NOTSUPPORTED, Distrio::L_NORMAL, dev_id, std::string (__func__) + std::string (" not implemented")); } ::CORBA::Long Distrio_Device_i::id ( void) { return dev_id; } void Distrio_Device_i::id ( ::CORBA::Long _id) { _id = dev_id; }