diff options
97 files changed, 385 insertions, 8474 deletions
diff --git a/ChangeLog b/ChangeLog index 70e208eb583..e0ded993b1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,120 @@ +Wed Dec 5 12:37:56 2001 Carlos O'Ryan <coryan@uci.edu> + + * Removed all code to support Orbix and any references to it in + the documentation (at least all references that I found). + We haven't tested this code in ages, so it was probably broken, + furthermore, IONA does not sell Orbix-2.X nor Orbix-3.X (the + versions our code was based on), and will probably stop + supporting old versions of Orbix before ACE-5.3 (or 6.0) come + out. + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/ace-dll.icc: + * ace/ace-lib.icc: + * ace/ace.icc: + * ace/CORBA_Handler.h: + * ace/CORBA_Handler.i: + * ace/CORBA_Handler.cpp: + * ace/CORBA_Ref.h: + * ace/CORBA_Ref.cpp: + * ace/config-hpux-9.x-orbix.h: + * ace/config-sunos4-sun4.x-orbix.h: + * ace/config-sunos5.4-sunc++-4.x-orbix.h: + * ace/config-sunos5.x-sunc++-4.x-orbix.h: + * apps/Makefile: + * apps/Makefile.am: + * apps/Orbix-Examples/Makefile: + * apps/Orbix-Examples/Event_Comm/Makefile: + * apps/Orbix-Examples/Event_Comm/README: + * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h: + * apps/Orbix-Examples/Event_Comm/Consumer/Makefile: + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h: + * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h: + * apps/Orbix-Examples/Event_Comm/Supplier/Makefile: + * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h: + * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp: + * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh: + * apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h: + * apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h: + * apps/Orbix-Examples/Event_Comm/include/Notifier_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Makefile: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h: + * apps/Orbix-Examples/Logger/Logger.cpp: + * apps/Orbix-Examples/Logger/Logger.h: + * apps/Orbix-Examples/Logger/Makefile: + * apps/Orbix-Examples/Logger/Orbix.hostgroups: + * apps/Orbix-Examples/Logger/Orbix.hosts: + * apps/Orbix-Examples/Logger/README: + * apps/Orbix-Examples/Logger/a1.tex: + * apps/Orbix-Examples/Logger/client.cpp: + * apps/Orbix-Examples/Logger/logger.hh: + * apps/Orbix-Examples/Logger/logger.idl: + * apps/Orbix-Examples/Logger/loggerS.cpp: + * apps/Orbix-Examples/Logger/logger_i.cpp: + * apps/Orbix-Examples/Logger/logger_i.h: + * apps/Orbix-Examples/Logger/server.cpp: + * examples/CORBA/Makefile: + * examples/CORBA/Test.idl: + * examples/CORBA/Test_i.cpp: + * examples/CORBA/Test_i.h: + * examples/CORBA/client.cpp: + * examples/CORBA/server.cpp: + * include/makeinclude/platform_hpux_orbix.GNU: + * include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU: + * include/makeinclude/platform_sunos5_centerline_orbix.GNU: + * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: + Removed examples and classes to support orbix with ACE. + + * ACE-INSTALL.html: + * FAQ: + * README: + * TODO: + * acconfig.h: + * ace/README: + * ace/config-win32-common.h: + * apps/README: + * ace/config-tandem.h: + * docs/ACE-configuration.txt: + * include/makeinclude/platform_aix4_cset++.GNU: + * include/makeinclude/platform_dgux4_epc.GNU: + * include/makeinclude/platform_m88k.GNU: + * include/makeinclude/platform_sunos4_g++.GNU: + * include/makeinclude/platform_sunos5_g++.GNU: + * include/makeinclude/platform_sunos5_kcc.GNU: + * include/makeinclude/platform_sunos5_sunc++.GNU: + * include/makeinclude/platform_unixware_g++.GNU: + * include/makeinclude/platform_unixware_udk.GNU: + * include/makeinclude/rules.local.GNU: + * include/makeinclude/wrapper_macros.GNU: + * m4/ace.m4: + * performance-tests/README: + * performance-tests/TTCP/C/README: + Files that referenced Orbix support or documented how to use + it. + + * examples/Reactor/Multicast/Log_Wrapper.h: + * examples/Reactor/Multicast/Log_Wrapper.cpp: + Fixed documentation, it was referencing Orbix but actually it + uses UDP multicast, looks like a cut&paste error to me. + Wed Dec 5 12:15:36 2001 Carlos O'Ryan <coryan@uci.edu> * ace/SString.cpp: diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a index 70e208eb583..e0ded993b1b 100644 --- a/ChangeLogs/ChangeLog-02a +++ b/ChangeLogs/ChangeLog-02a @@ -1,3 +1,120 @@ +Wed Dec 5 12:37:56 2001 Carlos O'Ryan <coryan@uci.edu> + + * Removed all code to support Orbix and any references to it in + the documentation (at least all references that I found). + We haven't tested this code in ages, so it was probably broken, + furthermore, IONA does not sell Orbix-2.X nor Orbix-3.X (the + versions our code was based on), and will probably stop + supporting old versions of Orbix before ACE-5.3 (or 6.0) come + out. + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/ace-dll.icc: + * ace/ace-lib.icc: + * ace/ace.icc: + * ace/CORBA_Handler.h: + * ace/CORBA_Handler.i: + * ace/CORBA_Handler.cpp: + * ace/CORBA_Ref.h: + * ace/CORBA_Ref.cpp: + * ace/config-hpux-9.x-orbix.h: + * ace/config-sunos4-sun4.x-orbix.h: + * ace/config-sunos5.4-sunc++-4.x-orbix.h: + * ace/config-sunos5.x-sunc++-4.x-orbix.h: + * apps/Makefile: + * apps/Makefile.am: + * apps/Orbix-Examples/Makefile: + * apps/Orbix-Examples/Event_Comm/Makefile: + * apps/Orbix-Examples/Event_Comm/README: + * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h: + * apps/Orbix-Examples/Event_Comm/Consumer/Makefile: + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h: + * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h: + * apps/Orbix-Examples/Event_Comm/Supplier/Makefile: + * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h: + * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp: + * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh: + * apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h: + * apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h: + * apps/Orbix-Examples/Event_Comm/include/Notifier_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Makefile: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h: + * apps/Orbix-Examples/Logger/Logger.cpp: + * apps/Orbix-Examples/Logger/Logger.h: + * apps/Orbix-Examples/Logger/Makefile: + * apps/Orbix-Examples/Logger/Orbix.hostgroups: + * apps/Orbix-Examples/Logger/Orbix.hosts: + * apps/Orbix-Examples/Logger/README: + * apps/Orbix-Examples/Logger/a1.tex: + * apps/Orbix-Examples/Logger/client.cpp: + * apps/Orbix-Examples/Logger/logger.hh: + * apps/Orbix-Examples/Logger/logger.idl: + * apps/Orbix-Examples/Logger/loggerS.cpp: + * apps/Orbix-Examples/Logger/logger_i.cpp: + * apps/Orbix-Examples/Logger/logger_i.h: + * apps/Orbix-Examples/Logger/server.cpp: + * examples/CORBA/Makefile: + * examples/CORBA/Test.idl: + * examples/CORBA/Test_i.cpp: + * examples/CORBA/Test_i.h: + * examples/CORBA/client.cpp: + * examples/CORBA/server.cpp: + * include/makeinclude/platform_hpux_orbix.GNU: + * include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU: + * include/makeinclude/platform_sunos5_centerline_orbix.GNU: + * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: + Removed examples and classes to support orbix with ACE. + + * ACE-INSTALL.html: + * FAQ: + * README: + * TODO: + * acconfig.h: + * ace/README: + * ace/config-win32-common.h: + * apps/README: + * ace/config-tandem.h: + * docs/ACE-configuration.txt: + * include/makeinclude/platform_aix4_cset++.GNU: + * include/makeinclude/platform_dgux4_epc.GNU: + * include/makeinclude/platform_m88k.GNU: + * include/makeinclude/platform_sunos4_g++.GNU: + * include/makeinclude/platform_sunos5_g++.GNU: + * include/makeinclude/platform_sunos5_kcc.GNU: + * include/makeinclude/platform_sunos5_sunc++.GNU: + * include/makeinclude/platform_unixware_g++.GNU: + * include/makeinclude/platform_unixware_udk.GNU: + * include/makeinclude/rules.local.GNU: + * include/makeinclude/wrapper_macros.GNU: + * m4/ace.m4: + * performance-tests/README: + * performance-tests/TTCP/C/README: + Files that referenced Orbix support or documented how to use + it. + + * examples/Reactor/Multicast/Log_Wrapper.h: + * examples/Reactor/Multicast/Log_Wrapper.cpp: + Fixed documentation, it was referencing Orbix but actually it + uses UDP multicast, looks like a cut&paste error to me. + Wed Dec 5 12:15:36 2001 Carlos O'Ryan <coryan@uci.edu> * ace/SString.cpp: diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index 70e208eb583..e0ded993b1b 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,120 @@ +Wed Dec 5 12:37:56 2001 Carlos O'Ryan <coryan@uci.edu> + + * Removed all code to support Orbix and any references to it in + the documentation (at least all references that I found). + We haven't tested this code in ages, so it was probably broken, + furthermore, IONA does not sell Orbix-2.X nor Orbix-3.X (the + versions our code was based on), and will probably stop + supporting old versions of Orbix before ACE-5.3 (or 6.0) come + out. + + * ace/Makefile: + * ace/Makefile.am: + * ace/Makefile.bor: + * ace/ace-dll.icc: + * ace/ace-lib.icc: + * ace/ace.icc: + * ace/CORBA_Handler.h: + * ace/CORBA_Handler.i: + * ace/CORBA_Handler.cpp: + * ace/CORBA_Ref.h: + * ace/CORBA_Ref.cpp: + * ace/config-hpux-9.x-orbix.h: + * ace/config-sunos4-sun4.x-orbix.h: + * ace/config-sunos5.4-sunc++-4.x-orbix.h: + * ace/config-sunos5.x-sunc++-4.x-orbix.h: + * apps/Makefile: + * apps/Makefile.am: + * apps/Orbix-Examples/Makefile: + * apps/Orbix-Examples/Event_Comm/Makefile: + * apps/Orbix-Examples/Event_Comm/README: + * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h: + * apps/Orbix-Examples/Event_Comm/Consumer/Makefile: + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h: + * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h: + * apps/Orbix-Examples/Event_Comm/Supplier/Makefile: + * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp: + * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h: + * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp: + * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh: + * apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h: + * apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h: + * apps/Orbix-Examples/Event_Comm/include/Notifier_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Makefile: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp: + * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h: + * apps/Orbix-Examples/Logger/Logger.cpp: + * apps/Orbix-Examples/Logger/Logger.h: + * apps/Orbix-Examples/Logger/Makefile: + * apps/Orbix-Examples/Logger/Orbix.hostgroups: + * apps/Orbix-Examples/Logger/Orbix.hosts: + * apps/Orbix-Examples/Logger/README: + * apps/Orbix-Examples/Logger/a1.tex: + * apps/Orbix-Examples/Logger/client.cpp: + * apps/Orbix-Examples/Logger/logger.hh: + * apps/Orbix-Examples/Logger/logger.idl: + * apps/Orbix-Examples/Logger/loggerS.cpp: + * apps/Orbix-Examples/Logger/logger_i.cpp: + * apps/Orbix-Examples/Logger/logger_i.h: + * apps/Orbix-Examples/Logger/server.cpp: + * examples/CORBA/Makefile: + * examples/CORBA/Test.idl: + * examples/CORBA/Test_i.cpp: + * examples/CORBA/Test_i.h: + * examples/CORBA/client.cpp: + * examples/CORBA/server.cpp: + * include/makeinclude/platform_hpux_orbix.GNU: + * include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU: + * include/makeinclude/platform_sunos5_centerline_orbix.GNU: + * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: + Removed examples and classes to support orbix with ACE. + + * ACE-INSTALL.html: + * FAQ: + * README: + * TODO: + * acconfig.h: + * ace/README: + * ace/config-win32-common.h: + * apps/README: + * ace/config-tandem.h: + * docs/ACE-configuration.txt: + * include/makeinclude/platform_aix4_cset++.GNU: + * include/makeinclude/platform_dgux4_epc.GNU: + * include/makeinclude/platform_m88k.GNU: + * include/makeinclude/platform_sunos4_g++.GNU: + * include/makeinclude/platform_sunos5_g++.GNU: + * include/makeinclude/platform_sunos5_kcc.GNU: + * include/makeinclude/platform_sunos5_sunc++.GNU: + * include/makeinclude/platform_unixware_g++.GNU: + * include/makeinclude/platform_unixware_udk.GNU: + * include/makeinclude/rules.local.GNU: + * include/makeinclude/wrapper_macros.GNU: + * m4/ace.m4: + * performance-tests/README: + * performance-tests/TTCP/C/README: + Files that referenced Orbix support or documented how to use + it. + + * examples/Reactor/Multicast/Log_Wrapper.h: + * examples/Reactor/Multicast/Log_Wrapper.cpp: + Fixed documentation, it was referencing Orbix but actually it + uses UDP multicast, looks like a cut&paste error to me. + Wed Dec 5 12:15:36 2001 Carlos O'Ryan <coryan@uci.edu> * ace/SString.cpp: diff --git a/ace/CORBA_Handler.cpp b/ace/CORBA_Handler.cpp deleted file mode 100644 index 9c19a38d52b..00000000000 --- a/ace/CORBA_Handler.cpp +++ /dev/null @@ -1,593 +0,0 @@ -// CORBA_Handler.cpp -// $Id$ - -#include "ace/CORBA_Handler.h" - -#include "ace/Object_Manager.h" -#include "ace/Thread_Manager.h" - -#if !defined (__ACE_INLINE__) -#include "ace/CORBA_Handler.i" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, CORBA_Handler, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) -ACE_ALLOC_HOOK_DEFINE(ACE_ST_CORBA_Handler) -ACE_ALLOC_HOOK_DEFINE(ACE_CORBA_Handler) - -void -ACE_CORBA_Handler::dump (void) const -{ - ACE_TRACE ("ACE_CORBA_Handler::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nreference_count_ = %d"), this->reference_count_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -ACE_CORBA_Handler::ACE_CORBA_Handler (const ACE_CORBA_Handler &rhs) -{ - ACE_TRACE ("ACE_CORBA_Handler::ACE_CORBA_Handler"); -} - -const ACE_CORBA_Handler & -ACE_CORBA_Handler::operator= (const ACE_CORBA_Handler &rhs) -{ - ACE_TRACE ("ACE_CORBA_Handler::operator="); - return *this; -} - -void -ACE_ST_CORBA_Handler::dump (void) const -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::dump"); - - ACE_CORBA_Handler::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"), this->instance_)); - ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\niteration_ = %d"), this->iterations_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -ACE_CORBA_Handler::~ACE_CORBA_Handler (void) -{ - ACE_TRACE ("ACE_CORBA_Handler::~ACE_CORBA_Handler"); -} - -ACE_CORBA_Handler::ACE_CORBA_Handler (void) - : reference_count_ (0) -{ - ACE_TRACE ("ACE_CORBA_Handler::ACE_CORBA_Handler"); - reactor (ACE_Reactor::instance ()); -} - -// Only one ST CORBA Handler per-process... -/* static */ -ACE_ST_CORBA_Handler *ACE_ST_CORBA_Handler::instance_ = 0; - -#if defined (ACE_TAKEOVER_ORBIX_CALLBACKS) -// Define the class statics -int ACE_ST_CORBA_Handler::set_callbacks_ = 0; -OrbixIOCallback ACE_ST_CORBA_Handler::previous_orbix_open_callback_ = 0; -OrbixIOCallback ACE_ST_CORBA_Handler::previous_orbix_close_callback_ = 0; -#endif /* ACE_TAKEOVER_ORBIX_CALLBACKS */ - - -// Insert a descriptor into the ACE_Reactor that Orbix has just added. - -/* static */ -void -ACE_ST_CORBA_Handler::insert_handle (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::insert_handle"); -// ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("+++ inserting %d\n"), handle)); - -#if defined (ACE_TAKEOVER_ORBIX_CALLBACKS) - if (ACE_ST_CORBA_Handler::previous_orbix_open_callback_ != 0) - ACE_ST_CORBA_Handler::previous_orbix_open_callback_ (handle); -#endif /* ACE_TAKEOVER_ORBIX_CALLBACKS */ - - if (ACE_ST_CORBA_Handler::instance_ == 0) - return; - - if (ACE_ST_CORBA_Handler::instance_->reactor() != 0) - ACE_ST_CORBA_Handler::instance_->reactor()->register_handler - (handle, ACE_ST_CORBA_Handler::instance_, ACE_Event_Handler::READ_MASK); - else - ; -// ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("insert_handle: reactor NULL\n"))); -} - -// Remove a descriptor from the ACE_Reactor that Orbix has just deleted. - -/* static */ -void -ACE_ST_CORBA_Handler::remove_handle (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::remove_handle"); -// ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("--- removing %d\n"), handle)); - -#if defined (ACE_TAKEOVER_ORBIX_CALLBACKS) - if (ACE_ST_CORBA_Handler::previous_orbix_close_callback_ != 0) - ACE_ST_CORBA_Handler::previous_orbix_close_callback_ (handle); -#endif /* ACE_TAKEOVER_ORBIX_CALLBACKS */ - - if (ACE_ST_CORBA_Handler::instance_ == 0) - return; - - if (ACE_ST_CORBA_Handler::instance_->reactor () != 0) - ACE_ST_CORBA_Handler::instance_->reactor ()->remove_handler - (handle, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL); - else - ; -// ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("remove_handle: reactor NULL\n"))); -} - -/* static */ -void ACE_ST_CORBA_Handler::instance_cleaner (void *object, void *param) -{ - ACE_UNUSED_ARG (param); - delete ACE_reinterpret_cast (ACE_ST_CORBA_Handler *, object); - return; -} - - -// Process the next Orbix event. - -int -ACE_ST_CORBA_Handler::handle_input (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::handle_input"); - // ACE_DEBUG ((LM_DEBUG, "dispatching Orbix handle = %d in process - // = %P\n", handle)); - - TRY { - // Loop up to <ACE_ST_CORBA_Handler::iterations_> dispatching the - // next event. Note the trade off between efficiency and - // fairness... - - for (size_t i = 0; i < this->iterations_; i++) - if (ACE_CORBA_1 (Orbix.isEventPending) (IT_X)) - // Process the next Orbix event (don't block). - ACE_CORBA_1 (Orbix.processNextEvent) (0, IT_X); - else - break; - } - CATCHANY { - // an error occured calling processNextEvent () - output the - // error. - cerr << IT_X << endl; - } ENDTRY; - return 0; -} - -int -ACE_ST_CORBA_Handler::suspend (void) -{ - // Create an iterator. - ACE_Handle_Set set (ACE_CORBA_1 (Orbix.getFileDescriptors) ()); - ACE_Handle_Set_Iterator orbix_descriptors (set); - - // Suspend all the HANDLEs registered by Orbix. - for (ACE_HANDLE h; - (h = orbix_descriptors ()) != ACE_INVALID_HANDLE; - ++orbix_descriptors) - this->reactor ()->suspend_handler (h); - - return 0; -} - -int -ACE_ST_CORBA_Handler::resume (void) -{ - // Create an iterator. - ACE_Handle_Set set (ACE_CORBA_1 (Orbix.getFileDescriptors) ()); - ACE_Handle_Set_Iterator orbix_descriptors (set); - - // Resume all the HANDLEs registered by Orbix. - for (ACE_HANDLE h; - (h = orbix_descriptors ()) != ACE_INVALID_HANDLE; - ++orbix_descriptors) - this->reactor ()->resume_handler (h); - - return 0; -} - -// Dummy constructor. -ACE_ST_CORBA_Handler::ACE_ST_CORBA_Handler (void) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::ACE_ST_CORBA_Handler"); - - // This is set by default for backward compatibility. The user can - // use the set/get operations to change the iterations - this->iterations_ = 5; - - // Set up the callbacks so that we get informed when Orbix changes - // its descriptors. - OrbixIOCallback old_open, old_close; - - old_open = ACE_CORBA_1 (Orbix.registerIOCallback) ((OrbixIOCallback) &ACE_ST_CORBA_Handler::insert_handle, - FD_OPEN_CALLBACK); - old_close = ACE_CORBA_1 (Orbix.registerIOCallback) ((OrbixIOCallback) &ACE_ST_CORBA_Handler::remove_handle, - FD_CLOSE_CALLBACK); -#if defined (ACE_TAKEOVER_ORBIX_CALLBACKS) - if (ACE_ST_CORBA_Handler::set_callbacks_ == 0) - { - ACE_ST_CORBA_Handler::previous_orbix_open_callback = old_open; - ACE_ST_CORBA_Handler::previous_orbix_close_callback = old_close; - ACE_ST_CORBA_Handler::set_callbacks_ = 1; - } -#endif -} - -void -ACE_ST_CORBA_Handler::get_orbix_descriptors (void) -{ - // Create an iterator. - ACE_Handle_Set set (ACE_CORBA_1 (Orbix.getFileDescriptors) ()); - ACE_Handle_Set_Iterator orbix_descriptors (set); - - // Preinitialize anything that's already registered. - for (ACE_HANDLE h; - (h = orbix_descriptors ()) != ACE_INVALID_HANDLE; - ++orbix_descriptors) - ACE_ST_CORBA_Handler::insert_handle (h); -} - -// Register <service_name> by doing a "putit" to register the -// <service_name> using the <marker_name> at <service_location> with -// orbixd. - -/* static */ -int -ACE_CORBA_Handler::register_service (const char *service_name, - const char *marker_name, - const char *service_location) -{ - ACE_TRACE ("ACE_CORBA_Handler::register_service"); - char buf[BUFSIZ * 2]; // I hope this is enough space... - - // Be defensive here... - if (service_name == 0 || service_location == 0) - { - errno = EINVAL; - return -1; - } - else if (marker_name == 0) - ACE_OS::sprintf (buf, "putit %s %s", service_name, service_location); - else - ACE_OS::sprintf (buf, "putit -marker %s %s %s", - marker_name, service_name, service_location); - - return ACE_OS::system (buf); // Use system(3S) to execute Orbix putit. -} - -// Register <service_name> by doing a "putit" to register -// <service_name> using the <marker_name> with orbixd. - -/* static */ -int -ACE_CORBA_Handler::remove_service (const char *service_name, - const char *marker_name) -{ - ACE_TRACE ("ACE_CORBA_Handler::remove_service"); - char buf[BUFSIZ * 2]; // I hope this is enough space! - if (service_name == 0) - { - errno = EINVAL; - return -1; - } - else if (marker_name == 0) - ACE_OS::sprintf (buf, "rmit %s\n", service_name); - else - ACE_OS::sprintf (buf, "rmit -marker %s %s\n", marker_name, service_name); - return ACE_OS::system (buf); // Use system(3S) to execute Orbix rmit. -} - -ACE_ST_CORBA_Handler::~ACE_ST_CORBA_Handler (void) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::~ACE_ST_CORBA_Handler"); - // Create an iterator. - ACE_Handle_Set set (ACE_CORBA_1 (Orbix.getFileDescriptors) ()); - ACE_Handle_Set_Iterator orbix_descriptors (set); - - // Remove everything! - - for (ACE_HANDLE h; - (h = orbix_descriptors ()) != ACE_INVALID_HANDLE; - ++orbix_descriptors) - ACE_ST_CORBA_Handler::remove_handle (h); - - // Keep Orbix from calling us back and crashing the system! - ACE_CORBA_1 (Orbix.registerIOCallback) (0, FD_OPEN_CALLBACK); - ACE_CORBA_1 (Orbix.registerIOCallback) (0, FD_CLOSE_CALLBACK); - ACE_ST_CORBA_Handler::instance_ = 0; -} - -// Decrement the reference count and free up all the resources if this -// is the last service to be using the ACE_ST_CORBA_Handler... - -/* static */ -int -ACE_CORBA_Handler::deactivate_service (const char *service_name, - const char *marker_name) -{ - ACE_TRACE ("ACE_CORBA_Handler::deactivate_service"); - if (service_name != 0 - && this->remove_service (service_name, marker_name) == -1) - return -1; - - int ref_count = this->reference_count_; - - this->reference_count_--; - - // Close everything down if the count drops to 0. - if (this->reference_count_ == 0) - // Commit suicide! - delete this; - - if (ref_count < 0) - ; -// ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("warning, reference count == %d\n"), -// ref_count)); - return 0; -} - -/* static */ -ACE_CORBA_Handler * -ACE_ST_CORBA_Handler::instance (void) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::instance"); - - // Note that this does not need a double-check since it should be - // called from a single-threaded environment. - - if (ACE_ST_CORBA_Handler::instance_ == 0) - { - ACE_NEW_RETURN (ACE_ST_CORBA_Handler::instance_, - ACE_ST_CORBA_Handler, - 0); - // Set up so that instance_cleaner() is called to destroy the instance - // at program shutdown when the static objects are destroyed. - // This should be _before_ the singleton reactor is destroyed since - // cleanup objects are destroyed in LIFO order, and if the reactor - // is not yet created, it will be by ACE_CORBA_Handler's constructor, - // executed during ACE_NEW_RETURN, above. - ACE_Object_Manager::at_exit (ACE_ST_CORBA_Handler::instance_, - &ACE_ST_CORBA_Handler::instance_cleaner, - 0); - - ACE_ST_CORBA_Handler::instance_->get_orbix_descriptors (); - } - - return ACE_ST_CORBA_Handler::instance_; -} - -// Activate and register <service_name> with the Orbix daemon. If -// <marker_name> and <service_location> are != 0 then do a "putit" to -// register this service with orbixd. This method also increments the -// reference count of active services using the ACE_ST_CORBA_Handler. - -int -ACE_CORBA_Handler::activate_service (const char *service_name, - const char *marker_name, - const char *service_location) -{ - ACE_TRACE ("ACE_CORBA_Handler::activate_service"); - // Since the ACE_CORBA_Handler is a singleton, make sure not to - // allocate and initialize more than one copy. By incrementing the - // reference count we ensure this. - - this->reference_count_++; - - if (service_name != 0 && service_location != 0 - && this->register_service (service_name, marker_name, - service_location) == -1) - return -1; - - // Tell Orbix that we have completed the server's initialization. - // Note that we don't block by giving a timeout of 0... - - TRY { - ACE_CORBA_1 (Orbix.impl_is_ready) ((char *) service_name, 0, IT_X); - } CATCHANY { - return -1; - } ENDTRY - - return 0; -} - -#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0) - -ACE_ALLOC_HOOK_DEFINE(ACE_MT_CORBA_Handler) - -void -ACE_MT_CORBA_Handler::dump (void) const -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::dump"); - ACE_CORBA_Handler::dump (); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("instance_ = %x"), this->instance_)); - ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nthr_mgr_ = %x"), this->thr_mgr_)); - this->pipe_.dump (); - ACE_MT (ACE_Thread_Mutex *lock = - ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object - (ACE_Object_Manager::ACE_MT_CORBA_HANDLER_LOCK); - if (lock != 0) lock->dump ()); - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -// Only one MT CORBA Handler per-process... -/* static */ -ACE_MT_CORBA_Handler *ACE_MT_CORBA_Handler::instance_ = 0; - -/* static */ -ACE_CORBA_Handler * -ACE_MT_CORBA_Handler::instance (void) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::instance"); - - if (ACE_MT_CORBA_Handler::instance_ == 0) - { - ACE_MT (ACE_Thread_Mutex *lock = - ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object - (ACE_Object_Manager::ACE_MT_CORBA_HANDLER_LOCK); - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0)); - - if (ACE_MT_CORBA_Handler::instance_ == 0) - ACE_NEW_RETURN (ACE_MT_CORBA_Handler::instance_, - ACE_MT_CORBA_Handler, 0); - } - - return ACE_MT_CORBA_Handler::instance_; -} - -int -ACE_MT_CORBA_Handler::suspend (void) -{ - // Suspend the event handler listening for new CORBA requests to - // dispatch. - this->reactor ()->suspend_handler (this->pipe_.read_handle ()); - - // Suspend the daemon thread. - this->thr_mgr ()->suspend_all (); - return 0; -} - -int -ACE_MT_CORBA_Handler::resume (void) -{ - // Resume the event handler listening for new CORBA requests to - // dispatch. - this->reactor ()->resume_handler (this->pipe_.read_handle ()); - - // Resume the daemon thread. - this->thr_mgr ()->resume_all (); - return 0; -} - -ACE_MT_CORBA_Handler::ACE_MT_CORBA_Handler (void) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::ACE_MT_CORBA_Handler"); - this->thr_mgr (ACE_Thread_Manager::instance ()); - - int result = 0; - - if (this->pipe_.open () == -1) - result = -1; - // Register one end of the pipe with the reactor with a READ mask. - else if (this->reactor ()->register_handler - (this->pipe_.read_handle (), this, ACE_Event_Handler::READ_MASK) == -1) - result = -1; - // Create a new thread that processes events for the Orbix event - // queue. - else if (this->thr_mgr ()->spawn (ACE_THR_FUNC (ACE_MT_CORBA_Handler::process_events), - 0, THR_DETACHED | THR_NEW_LWP) == -1) - result = -1; - - if (result == -1) - { - delete ACE_MT_CORBA_Handler::instance_; - ACE_MT_CORBA_Handler::instance_ = 0; - } -} - -void * -ACE_MT_CORBA_Handler::process_events (void *) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::process_events"); - - // Special knowlege, we "know" that we are dealing with a singleton - // and that we are invoked in a context where the mutex controlling - // instance creation is held, so by the time we get the mutex - // the instance must exist. - if (ACE_MT_CORBA_Handler::instance_ == 0) - { - ACE_MT (ACE_Thread_Mutex *lock = - ACE_Managed_Object<ACE_Thread_Mutex>::get_preallocated_object - (ACE_Object_Manager::ACE_MT_CORBA_HANDLER_LOCK); - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, *lock, 0)); - - ACE_ASSERT (ACE_MT_CORBA_Handler::instance_ != 0); - } - - ACE_Thread_Control t (ACE_MT_CORBA_Handler::instance_->thr_mgr ()); - - // This thread only processes events. - TRY { - // it is OK to block - ACE_CORBA_1 (Orbix.processEvents) (ACE_CORBA_1 (Orbix.INFINITE_TIMEOUT), IT_X); - } CATCHANY { - // An error occured calling processEvents () - output the error. - cerr << IT_X << endl; - } ENDTRY; - - // Thread dies if we reach here : error occured in processEvents. - return 0; -} - -int -ACE_MT_CORBA_Handler::inRequestPreMarshal (ACE_CORBA_1 (Request) &req, - ACE_CORBA_1 (Environment) &IT_env) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::inRequestPreMarshal"); - - // Pump the request through the pipe. - u_long request_addr = (u_long) &req; - - ssize_t result = ACE::send (this->pipe_.write_handle (), - (const char *) &request_addr, - sizeof request_addr); - - if (result != sizeof request_addr) - { - // Don't continue with request - return 0; - } - - // Everything is fine: we have delegated the work to a different - // thread Tell Orbix we will dispatch the request later... - return -1; -} - -int -ACE_MT_CORBA_Handler::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::handle_input"); - ACE_CORBA_1 (Request) *req = 0; - - u_long request_addr; - - // Read the request from the pipe. - ssize_t result = ACE::recv (this->pipe_.read_handle (), - (char *) &request_addr, - sizeof request_addr); - - if (result != sizeof request_addr) - // We are in trouble: bail out. - return -1; - - req = (ACE_CORBA_1 (Request) *) request_addr; - - // Tell Orbix to dispatch the request. - ACE_CORBA_1 (Orbix.continueThreadDispatch) (*req); - return 0; -} - -ACE_MT_CORBA_Handler::~ACE_MT_CORBA_Handler (void) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::~ACE_MT_CORBA_Handler"); - - // Unregister one end of the pipe with the reactor - this->reactor ()->remove_handler - (this->pipe_.read_handle (), - ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL); - - this->pipe_.close (); - - ACE_MT_CORBA_Handler::instance_ = 0; -} -#endif /* ACE_HAS_MT_ORBIX */ -#endif /* ACE_HAS_ORBIX */ diff --git a/ace/CORBA_Handler.h b/ace/CORBA_Handler.h deleted file mode 100644 index 658567f5ddf..00000000000 --- a/ace/CORBA_Handler.h +++ /dev/null @@ -1,263 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CORBA_Handler.h - * - * $Id$ - * - * @author Douglas C. Schmidt (schmidt@cs.wustl.edu) - * @author Irfan Pyarali (irfan@cs.wustl.edu) - */ -//============================================================================= - - -#ifndef ACE_CORBA_HANDLER_H -#define ACE_CORBA_HANDLER_H -#include "ace/pre.h" - -#include "ace/Service_Config.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Pipe.h" - -#if (defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)) || (defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0)) -#define EXCEPTIONS -#define WANT_ORBIX_FDS -#include /**/ <CORBA.h> -// #include /**/ <daemon.hh> -#undef EXCEPTIONS -#undef WANT_ORBIX_FDS - -/** - * @class ACE_CORBA_Handler - * - * @brief Handle Orbix requests in conjunction with ACE. - * - * Note, do *NOT* inherit from this class! Instead, use the - * <ACE_MT_CORBA_HAndler> and <ACE_ST_CORBA_Handler> as - * Singletons. - */ -class ACE_Export ACE_CORBA_Handler : public ACE_Service_Object -{ -public: - // = Activation and deactivation methods. - - /** - * Activate and register <service_name> with the Orbix daemon. If - * <marker_name> and <service_location> are != 0 then do a "putit" - * to register this service with orbixd. This method also - * increments the reference count of active services using the - * ACE_ST_CORBA_Handler. - */ - virtual int activate_service (const char *service_name, - const char *marker_name = 0, - const char *service_location = 0); - - /** - * Decrement the reference count and free up all the - * resources if this is the last service to be using - * the ACE_ST_CORBA_Handler... - */ - virtual int deactivate_service (const char *service_name = 0, - const char *marker_name = 0); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Make this into an "abstract" class... - ACE_CORBA_Handler (void); - - /// Note virtual destructor... - virtual ~ACE_CORBA_Handler (void); - - /** - * Register <service_name> by doing a "putit" to register the - * <service_name> using the <marker_name> at <service_location> with - * orbixd. - */ - virtual int register_service (const char *service_name, - const char *marker_name, - const char *service_location); - - /// Register <service_name> by doing a "putit" to register - /// <service_name> using the <marker_name> with orbixd. - virtual int remove_service (const char *service_name, - const char *marker_name = 0); - - /// Keep track of the number of active CORBA_Handlers. - ssize_t reference_count_; - -private: - // = Disallow assignment and initialization. - ACE_CORBA_Handler (const ACE_CORBA_Handler &rhs); - const ACE_CORBA_Handler &operator= (const ACE_CORBA_Handler &rhs); -}; - -/** - * @class ACE_ST_CORBA_Handler - * - * @brief Handle single-threaded Orbix requests in conjunction with the - * <ACE_Reactor>. - * - * You should NOT use this class unless you've got a VERY old - * version of Orbix that only supports single-threading. If - * you're using a more recent version of Orbix use the - * <ACE_MT_CORBA_Handler>. - */ -class ACE_Export ACE_ST_CORBA_Handler : public ACE_CORBA_Handler -{ -public: - // = Singleton access point. - /// Returns a Singleton. - static ACE_CORBA_Handler *instance (void); - - // = Demuxing hook. - /// Process the next Orbix event. - virtual int handle_input (ACE_HANDLE); - - // = Dynamic linking hooks. - /// Atomically suspend all the threads associated with the <thr_mgr>. - virtual int suspend (void); - - /// Atomically resume all the threads associated with the <thr_mgr>. - virtual int resume (void); - - // = Iterations dictate # of <processNextEvent> calls per-callback. - /// Get the current iteration. - size_t iterations (void); - - /// Set the current iteration. - void iterations (size_t); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// Preinitialize any descriptors that Orbix is using. This is - /// called in <instance>. - void get_orbix_descriptors (void); - - /// Constructors (ensure Singleton...). - ACE_ST_CORBA_Handler (void); - - /// Destructor cleans up resources. - virtual ~ACE_ST_CORBA_Handler (void); - - /// Insert a descriptor into the ACE_Reactor that Orbix has just added. - static void insert_handle (ACE_HANDLE); - - /// Remove a descriptor from the ACE_Reactor that Orbix has just deleted. - static void remove_handle (ACE_HANDLE); - - /// Clean up the singleton at program rundown. - static void instance_cleaner (void *object, void *param); - - /// ACE_ST_CORBA_Handler is a singleton object. - static ACE_ST_CORBA_Handler *instance_; - - /// Number of iterations to process per <processNextEvent> call. - size_t iterations_; - - // If the user has complete control of all Orbix callback processing and - // really, really knows how to handle all of the involved interworkings, - // they can set up to daisy-chain Orbix callbacks from this class to - // other handlers established outside the control of this class. This is - // an intrinsically dangerous thing to do, and is most often the wrong - // thing to do. But if you must, set ACE_TAKEOVER_ORBIX_CALLBACKS in the - // config.h file before including the platform's config file. -# if defined (ACE_TAKEOVER_ORBIX_CALLBACKS) - static int set_callbacks_; - static OrbixIOCallback previous_orbix_open_callback_; - static OrbixIOCallback previous_orbix_close_callback_; -# endif /* ACE_TAKEOVER_ORBIX_CALLBACKS */ -}; - -#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0) - -/** - * @class ACE_MT_CORBA_Handler - * - * @brief Handle multi-threaded Orbix requests in conjunction with the - * <ACE_Reactor>. - * - * If you are using MT-Orbix (which has been the default Orbix - * for years) you should use this class rather than - * <ACE_ST_CORBA_Handler>. See - * www.cs.wustl.edu/~schmidt/COOTS-96.ps.gz - * for an explanation of what this class does for Orbix. - */ -class ACE_Export ACE_MT_CORBA_Handler : public ACE_CORBA_Handler, public ACE_CORBA_1 (ThreadFilter) -{ -public: - // = Singleton access point. - /// Returns a Singleton. - static ACE_CORBA_Handler *instance (void); - - // = Demuxing hook. - /// Process the next Orbix event. - virtual int handle_input (ACE_HANDLE); - - // = Threading hook. - /// Set the Thread_Manager used by ACE_MT_CORBA_Handler - void thr_mgr (ACE_Thread_Manager *tm); - - /// Get the Thread_Manager used by ACE_MT_CORBA_Handler - ACE_Thread_Manager *thr_mgr (void) const; - - // = Dynamic linking hooks. - /// Atomically suspend all the threads associated with the <thr_mgr>. - virtual int suspend (void); - - /// Atomically resume all the threads associated with the <thr_mgr>. - virtual int resume (void); - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -protected: - /// function executed by new thread - static void *process_events (void *); - - /// Constructors (ensure Singleton...). - ACE_MT_CORBA_Handler (void); - - /// Destructor cleans up resources. - virtual ~ACE_MT_CORBA_Handler (void); - - /// Take the incoming request and pass it to <handle_input> through - /// the Reactor. - virtual int inRequestPreMarshal (ACE_CORBA_1 (Request) &r, - ACE_CORBA_1 (Environment) &IT_env = ACE_CORBA_1 (default_environment)); - - /// ACE_MT_CORBA_Handler is a singleton object. - static ACE_MT_CORBA_Handler *instance_; - - /// Event demultiplexor used by ACE_ST_CORBA_Handler. - ACE_Thread_Manager *thr_mgr_; - - /// Used to send CORBA::Requests through the server - ACE_Pipe pipe_; -}; -#endif /* ACE_HAS_MT_ORBIX */ - -#if defined (__ACE_INLINE__) -#include "ace/CORBA_Handler.i" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_HAS_ORBIX */ -#include "ace/post.h" -#endif /* ACE_CORBA_HANDLER_H */ diff --git a/ace/CORBA_Handler.i b/ace/CORBA_Handler.i deleted file mode 100644 index a1f3bfbd774..00000000000 --- a/ace/CORBA_Handler.i +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// CORBA_Handler.i - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) -// = Set/get the number of iterations per processNextEvent() call. - -/* static */ -ACE_INLINE size_t -ACE_ST_CORBA_Handler::iterations (void) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::iterations"); - return this->iterations_; -} - -/* static */ -ACE_INLINE void -ACE_ST_CORBA_Handler::iterations (size_t i) -{ - ACE_TRACE ("ACE_ST_CORBA_Handler::iterations"); - this->iterations_ = i; -} - -#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0) -ACE_INLINE void -ACE_MT_CORBA_Handler::thr_mgr (ACE_Thread_Manager *tm) -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::thr_mgr"); - this->thr_mgr_ = tm; -} - -ACE_INLINE ACE_Thread_Manager * -ACE_MT_CORBA_Handler::thr_mgr (void) const -{ - ACE_TRACE ("ACE_MT_CORBA_Handler::thr_mgr"); - return this->thr_mgr_; -} -#endif /* ACE_HAS_MT_ORBIX */ -#endif /* ACE_HAS_ORBIX */ diff --git a/ace/CORBA_Ref.cpp b/ace/CORBA_Ref.cpp deleted file mode 100644 index cc3b23e0f06..00000000000 --- a/ace/CORBA_Ref.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// CORBA_Ref.cpp -// $Id$ - -#if !defined (ACE_CORBA_REF_C) -#define ACE_CORBA_REF_C - -#include "ace/CORBA_Ref.h" -#include "ace/Log_Msg.h" - -ACE_RCSID(ace, CORBA_Ref, "$Id$") - -template<class CORBA_REF> -ACE_CORBA_Ref<CORBA_REF>::ACE_CORBA_Ref (void) - : ref_ (0) -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::ACE_CORBA_Ref"); -} - -template<class CORBA_REF> -ACE_CORBA_Ref<CORBA_REF>::ACE_CORBA_Ref (CORBA_REF *ref) -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::ACE_CORBA_Ref"); - if (ref != 0) - ref_ = ref->_duplicate (); - else - ref_ = 0; -} - -template<class CORBA_REF> CORBA_REF * -ACE_CORBA_Ref<CORBA_REF>::operator= (CORBA_REF *ref) -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::operator="); - if (ref_ != 0) - ref_->_release (); - if (ref == 0) - { - ref_ = 0; - return 0; - } - else - return ref_ = ref->_duplicate (); -} - -template<class CORBA_REF> -ACE_CORBA_Ref<CORBA_REF>::operator CORBA_REF * (void) const -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::operator CORBA_REF *"); - ACE_ASSERT (ref_ != 0); - return ref_; -} - -template<class CORBA_REF> CORBA_REF * -ACE_CORBA_Ref<CORBA_REF>::operator-> (void) const -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::operator->"); - ACE_ASSERT (ref_ != 0); - return ref_; -} - -template<class CORBA_REF> int -ACE_CORBA_Ref<CORBA_REF>::operator== (CORBA_REF *rhs) const -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::operator=="); - // pointer comparison. - return ref_ == rhs; -} - -template<class CORBA_REF> int -ACE_CORBA_Ref<CORBA_REF>::operator!= (CORBA_REF *rhs) const -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::operator!="); - // pointer comparison. - return ref_ != rhs; -} - -template<class CORBA_REF> -ACE_CORBA_Ref<CORBA_REF>::~ACE_CORBA_Ref () -{ - ACE_TRACE ("ACE_CORBA_Ref<CORBA_REF>::~ACE_CORBA_Ref"); - if (ref_ != 0) - ref_->_release (); -} - -#endif /* ACE_CORBA_REF_C */ diff --git a/ace/CORBA_Ref.h b/ace/CORBA_Ref.h deleted file mode 100644 index 9010c8c82fd..00000000000 --- a/ace/CORBA_Ref.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file CORBA_Ref.h - * - * $Id$ - * - * @author Irfan Pyarali (irfan@wuerl.wustl.edu) - * @author Tim Harrison (harrison@cs.wustl.edu) - * - * A wrapper for helping with Orbix object references. - * - * - */ -//============================================================================= - - -#ifndef ACE_CORBA_REF_H -#define ACE_CORBA_REF_H -#include "ace/pre.h" - -#include "ace/ACE.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class ACE_CORBA_Ref - * - * @brief A wrapper for helping with Orbix object references. - * - * <ACE_CORBA_Ref> is parameterized by the type of orbix object - * reference to be used. The construtor, operator=, and the - * destructor of <ACE_CORBA_Ref> perform implicit duplicates and - * releases in order to help make the use of Orbix object - * references transparent. - */ -template <class CORBA_REF> -class ACE_CORBA_Ref -{ -public: - /// Null construction. - ACE_CORBA_Ref (void); - - /// Contruction with an orbix ref. - /// performs a <CORBA_REF::_duplicate>. - ACE_CORBA_Ref (CORBA_REF *ref); - - /// Assignment performs a <CORBA_REF::_duplicate>. - CORBA_REF *operator= (CORBA_REF *ref); - - /// Type operator - operator CORBA_REF *(void) const; - - /// Smart pointer to forward all CORBA_REF calls to the underlying - /// Orbix reference. - CORBA_REF *operator-> (void) const; - - /// Pointer comparison. - int operator== (CORBA_REF *) const; - - /// Pointer comparison. - int operator!= (CORBA_REF *) const; - - /// Destruction: calls <CORBA_REF::_release>. - ~ACE_CORBA_Ref (void); - -private: - CORBA_REF *ref_; -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/CORBA_Ref.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("CORBA_Ref.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* CORBA_REF_H */ diff --git a/ace/Makefile b/ace/Makefile index 949ba7bc13c..e0414979956 100644 --- a/ace/Makefile +++ b/ace/Makefile @@ -224,8 +224,6 @@ TOKEN_FILES = \ Token_Manager \ Token_Request_Reply OTHER_FILES = \ - CORBA_Handler \ - CORBA_Ref \ Local_Name_Space \ Name_Proxy \ Name_Request_Reply \ @@ -16709,176 +16707,6 @@ endif # GHS Time_Value.h \ Token_Request_Reply.i -.obj/CORBA_Handler.o .obj/CORBA_Handler.so .shobj/CORBA_Handler.o .shobj/CORBA_Handler.so: CORBA_Handler.cpp \ - CORBA_Handler.h \ - pre.h \ - Service_Config.h \ - Service_Object.h \ - Shared_Object.h \ - ACE.h \ - OS.h \ - config-all.h \ - config.h \ - config-linux.h \ - config-linux-common.h \ - config-g++-common.h \ - post.h \ - ACE_export.h \ - svc_export.h \ - ace_wchar.h \ - ace_wchar.inl \ - OS_Errno.h \ - OS_Export.h \ - OS_Errno.inl \ - OS_Dirent.h \ - OS_Dirent.inl \ - OS_String.h \ - OS_String.inl \ - OS_Memory.h \ - OS_Memory.inl \ - OS_TLI.h \ - OS_TLI.inl \ - Min_Max.h \ - streams.h \ - Basic_Types.h \ - Basic_Types.i \ - Trace.h \ - OS.i \ - Flag_Manip.h \ - Flag_Manip.i \ - Handle_Ops.h \ - Handle_Ops.i \ - Lib_Find.h \ - Lib_Find.i \ - Init_ACE.h \ - Init_ACE.i \ - Sock_Connect.h \ - Sock_Connect.i \ - ACE.i \ - Shared_Object.i \ - Event_Handler.h \ - Event_Handler.i \ - Service_Object.i \ - Signal.h \ - Synch.h \ - Synch.i \ - Synch_T.h \ - Synch_T.i \ - Thread.h \ - Thread_Adapter.h \ - Base_Thread_Adapter.h \ - OS_Log_Msg_Attributes.h \ - OS_Log_Msg_Attributes.inl \ - Base_Thread_Adapter.inl \ - Thread_Adapter.inl \ - Thread.i \ - Atomic_Op.i \ - Synch_T.cpp \ - Log_Msg.h \ - Log_Record.h \ - Log_Priority.h \ - Log_Record.i \ - Signal.i \ - Unbounded_Queue.h \ - Node.h \ - Node.cpp \ - Unbounded_Queue.inl \ - Unbounded_Queue.cpp \ - Malloc_Base.h \ - Unbounded_Set.h \ - Unbounded_Set.inl \ - Unbounded_Set.cpp \ - SString.h \ - SString.i \ - Service_Config.i \ - Reactor.h \ - Handle_Set.h \ - Handle_Set.i \ - Timer_Queue.h \ - Timer_Queue_T.h \ - Free_List.h \ - Free_List.i \ - Free_List.cpp \ - Test_and_Set.h \ - Test_and_Set.i \ - Test_and_Set.cpp \ - Timer_Queue_T.i \ - Timer_Queue_T.cpp \ - Reactor.i \ - Reactor_Impl.h \ - Svc_Conf_Tokens.h \ - Pipe.h \ - Pipe.i \ - Object_Manager.h \ - Object_Manager.i \ - Managed_Object.h \ - Managed_Object.i \ - Managed_Object.cpp \ - Thread_Manager.h \ - Containers.h \ - Containers.i \ - Containers_T.h \ - Array_Base.h \ - Array_Base.inl \ - Array_Base.cpp \ - Containers_T.i \ - Containers_T.cpp \ - Singleton.h \ - Singleton.i \ - Singleton.cpp \ - Thread_Manager.i - -.obj/CORBA_Ref.o .obj/CORBA_Ref.so .shobj/CORBA_Ref.o .shobj/CORBA_Ref.so: CORBA_Ref.cpp \ - CORBA_Ref.h \ - pre.h \ - ACE.h \ - OS.h \ - config-all.h \ - config.h \ - config-linux.h \ - config-linux-common.h \ - config-g++-common.h \ - post.h \ - ACE_export.h \ - svc_export.h \ - ace_wchar.h \ - ace_wchar.inl \ - OS_Errno.h \ - OS_Export.h \ - OS_Errno.inl \ - OS_Dirent.h \ - OS_Dirent.inl \ - OS_String.h \ - OS_String.inl \ - OS_Memory.h \ - OS_Memory.inl \ - OS_TLI.h \ - OS_TLI.inl \ - Min_Max.h \ - streams.h \ - Basic_Types.h \ - Basic_Types.i \ - Trace.h \ - OS.i \ - Flag_Manip.h \ - Flag_Manip.i \ - Handle_Ops.h \ - Handle_Ops.i \ - Lib_Find.h \ - Lib_Find.i \ - Init_ACE.h \ - Init_ACE.i \ - Sock_Connect.h \ - Sock_Connect.i \ - ACE.i \ - CORBA_Ref.cpp \ - Log_Msg.h \ - Log_Record.h \ - Log_Priority.h \ - Log_Record.i \ - OS_Log_Msg_Attributes.h \ - OS_Log_Msg_Attributes.inl - .obj/Local_Name_Space.o .obj/Local_Name_Space.so .shobj/Local_Name_Space.o .shobj/Local_Name_Space.so: Local_Name_Space.cpp \ ACE.h \ pre.h \ diff --git a/ace/Makefile.am b/ace/Makefile.am index 1a61be5fbfd..c1b9bc49bda 100644 --- a/ace/Makefile.am +++ b/ace/Makefile.am @@ -374,8 +374,6 @@ libACE_Timer_la_SOURCES = \ EXTRA_libACE_Timer_la_SOURCES = gethrtime.cpp libACE_Other_la_SOURCES = \ - CORBA_Handler.cpp \ - CORBA_Ref.cpp \ Local_Name_Space.cpp \ Name_Proxy.cpp \ Name_Request_Reply.cpp \ @@ -542,8 +540,6 @@ HEADER_FILES = \ Bound_Ptr.h \ CDR_Base.h \ CDR_Stream.h \ - CORBA_Handler.h \ - CORBA_Ref.h \ CORBA_macros.h \ Cache_Map_Manager_T.h \ Cached_Connect_Strategy_T.h \ @@ -836,7 +832,6 @@ INLINE_FILES = \ Basic_Types.i \ Bound_Ptr.i \ CDR_Stream.i \ - CORBA_Handler.i \ Cache_Map_Manager_T.i \ Caching_Strategies_T.i \ Capabilities.i \ diff --git a/ace/Makefile.bor b/ace/Makefile.bor index c05e187e571..cc7eb673387 100644 --- a/ace/Makefile.bor +++ b/ace/Makefile.bor @@ -41,8 +41,6 @@ OBJFILES = \ $(OBJDIR)\Configuration.obj \ $(OBJDIR)\Configuration_Import_Export.obj \ $(OBJDIR)\Containers.obj \ - $(OBJDIR)\CORBA_Handler.obj \ - $(OBJDIR)\CORBA_Ref.obj \ $(OBJDIR)\Date_Time.obj \ $(OBJDIR)\DEV.obj \ $(OBJDIR)\DEV_Addr.obj \ @@ -245,7 +243,6 @@ INCLUDES = \ Unbounded_Queue.cpp \ Auto_Ptr.cpp \ Connector.cpp \ - CORBA_Ref.cpp \ Dynamic_Service.cpp \ Free_List.cpp \ Future.cpp \ diff --git a/ace/README b/ace/README index 300bea1c3fb..3afe15a523b 100644 --- a/ace/README +++ b/ace/README @@ -403,8 +403,6 @@ ACE_HAS_OPTIMIZED_MESSAGE_QUEUE Use the semaphore ACE_Message_Queue rather than the emulated condition variable (NT and VxWorks). -ACE_HAS_ORBIX Platform has Orbix CORBA - implementation ACE_HAS_OSF_TIMOD_H Platform supports the OSF TLI timod STREAMS module ACE_HAS_PENTIUM Platform is an Intel Pentium diff --git a/ace/ace-dll.icc b/ace/ace-dll.icc index 534ee0efc3d..f43a5186871 100644 --- a/ace/ace-dll.icc +++ b/ace/ace-dll.icc @@ -89,9 +89,7 @@ option 'Connector.h', 'Containers.h', 'Containers_T.h', - 'CORBA_Handler.h', 'CORBA_macros.h', - 'CORBA_Ref.h', 'Date_Time.h', 'DEV.h', 'DEV_Addr.h', @@ -330,8 +328,6 @@ option source type(cpp) "CDR_Stream.cpp" source type(cpp) "Configuration.cpp" source type(cpp) "Containers.cpp" - source type(cpp) "CORBA_Handler.cpp" - source type(cpp) "CORBA_Ref.cpp" source type(cpp) "Date_Time.cpp" source type(cpp) "DEV.cpp" source type(cpp) "DEV_Addr.cpp" diff --git a/ace/ace-lib.icc b/ace/ace-lib.icc index b9d5717a6a8..7951e013873 100644 --- a/ace/ace-lib.icc +++ b/ace/ace-lib.icc @@ -37,8 +37,6 @@ option source type(cpp) "CDR_Base.cpp" source type(cpp) "CDR_Stream.cpp" source type(cpp) "Containers.cpp" - source type(cpp) "CORBA_Handler.cpp" - source type(cpp) "CORBA_Ref.cpp" source type(cpp) "Date_Time.cpp" source type(cpp) "DEV.cpp" source type(cpp) "DEV_Addr.cpp" @@ -229,8 +227,6 @@ option source type (cpp) "Containers.cpp" source type (cpp) "Asynch_Acceptor.cpp" source type (cpp) "Auto_Ptr.cpp" - source type (cpp) "CORBA_Ref.cpp" - source type (cpp) "Connector.cpp" source type (cpp) "Containers_T.cpp" source type (cpp) "Dump_T.cpp" source type (cpp) "Env_Value_T.cpp" diff --git a/ace/ace.icc b/ace/ace.icc index 0d804e3dee9..77b66ee2250 100755 --- a/ace/ace.icc +++ b/ace/ace.icc @@ -447,8 +447,6 @@ group TOKEN_INCLUDES = "Token_Request_Reply.h" group OTHER_FILES = - "CORBA_Handler.cpp", - "CORBA_Ref.cpp", "Local_Name_Space.cpp", "Name_Proxy.cpp", "Name_Request_Reply.cpp", @@ -458,8 +456,6 @@ group OTHER_FILES = "Remote_Name_Space.cpp" group OTHER_INCLUDES = - "CORBA_Handler.h", - "CORBA_Ref.h", "Local_Name_Space.h", "Name_Proxy.h", "Name_Request_Reply.h", diff --git a/ace/config-hpux-9.x-orbix.h b/ace/config-hpux-9.x-orbix.h deleted file mode 100644 index e81e1ceed89..00000000000 --- a/ace/config-hpux-9.x-orbix.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// The following configuration file is designed to work for HP -// platforms running HP/UX 9.x. Dave added Orbix stuff - -#ifndef ACE_CONFIG_H -#define ACE_CONFIG_H -#include "ace/pre.h" - -// Compiling for HPUX. -#if !defined (HPUX) -#define HPUX -#endif /* HPUX */ - -#if __cplusplus < 199707L -#define ACE_HAS_BROKEN_HPUX_TEMPLATES -#endif /* __cplusplus < 199707L */ - -#define ACE_HAS_BROKEN_CONVERSIONS -// Optimize ACE_Handle_Set for select(). -#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT - -// They forgot a const in the prototype of const_timewait... -#define ACE_LACKS_CONST_TIMESPEC_PTR - -// ************* HERE IS THE ORBIX STUFF - Dave 4/2/96 -#define ACE_HAS_ORBIX 1 - -#define ACE_LACKS_SYSCALL -#define ACE_LACKS_STRRECVFD - -// Compiler doesn't support static data member templates. -#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES - -// Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC - -// Platform supports recvmsg and sendmsg. -#define ACE_HAS_MSG - -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYSCALL_H - -// Fixes a problem with HP/UX not wrapping the mmap(2) header files -// with extern "C". -#define ACE_HAS_BROKEN_MMAP_H - -// Prototypes for both signal() and struct sigaction are consistent. -#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES - -// Compiler/platform has correctly prototyped header files. -#define ACE_HAS_CPLUSPLUS_HEADERS - -// Header files lack t_errno for ACE_TLI. -#define ACE_LACKS_T_ERRNO - -// Compiler/platform supports poll(). -#define ACE_HAS_POLL - -// Platform supports POSIX O_NONBLOCK semantics. -#define ACE_HAS_POSIX_NONBLOCK - -// Compiler/platform defines the sig_atomic_t typedef -#define ACE_HAS_SIG_ATOMIC_T - -// Compiler supports the ssize_t typedef. -#define ACE_HAS_SSIZE_T - -// Defines the page size of the system. -#define ACE_PAGE_SIZE 4096 - -// Compiler/platform supports strerror (). -#define ACE_HAS_STRERROR - -// ??? -#define ACE_HAS_SUNOS4_GETTIMEOFDAY - -// HP/UX has an undefined syscall for GETRUSAGE... -#define ACE_HAS_SYSCALL_GETRUSAGE - -// Note, this only works if the flag is set above! -#define ACE_HAS_GETRUSAGE - -// Platform uses int for select() rather than fd_set. -// Dave 4/2/96 took this out. It appears that HP -can- use fd_set for int -// But time.h has a prototype defined so that int must be used ! so it goes -// back in -#define ACE_SELECT_USES_INT - -// Platform has prototypes for ACE_TLI. -//#define ACE_HAS_TLI_PROTOTYPES -// Platform has the XLI version of ACE_TLI. -// #define ACE_HAS_XLI - -#define ACE_LACKS_ACE_IOSTREAM - -#define ACE_NEEDS_DEV_IO_CONVERSION - -// Turns off the tracing feature. -#if !defined (ACE_NTRACE) -#define ACE_NTRACE 1 -#endif /* ACE_NTRACE */ - -#include "ace/post.h" -#endif /* ACE_CONFIG_H */ diff --git a/ace/config-sunos4-sun4.x-orbix.h b/ace/config-sunos4-sun4.x-orbix.h deleted file mode 100644 index 98dab1ac8c0..00000000000 --- a/ace/config-sunos4-sun4.x-orbix.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// The following configuration file is designed to work -// for SunOS4 platforms using the SunC++ 4.x compiler. - -#ifndef ACE_CONFIG_H -#define ACE_CONFIG_H -#include "ace/pre.h" - -#define ACE_LACKS_GETPGID -#define ACE_LACKS_SETPGID - -#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT - -#define ACE_HAS_CHARPTR_SPRINTF -#define ACE_HAS_UNION_WAIT - -// Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC - -// Platform supports recvmsg and sendmsg. -#define ACE_HAS_MSG - -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYSCALL_H - -// ACE sparcworks 4.01 signal handling under SunOS -#define ACE_HAS_SPARCWORKS_401_SIGNALS - -// Compiler/platform has the getrusage() system call. -#define ACE_HAS_GETRUSAGE - -// Platform contains Orbix CORBA implementation. -#define ACE_HAS_ORBIX 1 - -// Compiler/platform supports strerror (). -// #define ACE_HAS_STRERROR -#define ACE_HAS_SYS_ERRLIST - -// Header files lack t_errno for ACE_TLI. -// #define ACE_LACKS_T_ERRNO - -// Compiler/platform uses old malloc()/free() prototypes (ugh). -#define ACE_HAS_OLD_MALLOC - -// Defines the page size of the system. -#define ACE_PAGE_SIZE 4096 - -// Compiler/platform supports poll(). -#define ACE_HAS_POLL - -// Compiler/platform defines a union semun for SysV shared memory. -#define ACE_HAS_SEMUN - -// Compiler/platform provides the sockio.h file. -#define ACE_HAS_SOCKIO_H - -// Compiler has brain-damaged SPARCwork signal prototype... -#define ACE_HAS_SPARCWORKS_401_SIGNALS - -// Compiler/platform supports struct strbuf -#define ACE_HAS_STRBUF_T - -// Platform supports STREAMS. -#define ACE_HAS_STREAMS - -// SunOS 4 style prototype. -#define ACE_HAS_SUNOS4_GETTIMEOFDAY - -// Compiler/platform supports SVR4 dynamic linking semantics. -#define ACE_HAS_SVR4_DYNAMIC_LINKING - -// Platform provides <sys/filio.h> header. -#define ACE_HAS_SYS_FILIO_H - -// Platform supports ACE_TLI tiuser header. -// #define ACE_HAS_TIUSER_H - -// Platform has ACE_TLI. -// #define ACE_HAS_TLI - -#define ACE_LACKS_LINEBUFFERED_STREAMBUF -#define ACE_LACKS_SIGNED_CHAR - -#define ACE_NEEDS_DEV_IO_CONVERSION - -#define ACE_LACKS_U_LONGLONG_T - -#define ACE_LACKS_DIFFTIME - -// Turns off the tracing feature. -#if !defined (ACE_NTRACE) -#define ACE_NTRACE 1 -#endif /* ACE_NTRACE */ - -#include "ace/post.h" -#endif /* ACE_CONFIG_H */ diff --git a/ace/config-sunos5.4-sunc++-4.x-orbix.h b/ace/config-sunos5.4-sunc++-4.x-orbix.h deleted file mode 100644 index e908543be52..00000000000 --- a/ace/config-sunos5.4-sunc++-4.x-orbix.h +++ /dev/null @@ -1,189 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// The following configuration file is designed to work for SunOS 5.4 -// platforms using the SunC++ 4.0.x compiler. This works with the -// MT-Orbix CORBA IDL compiler. - -#ifndef ACE_CONFIG_H -#define ACE_CONFIG_H -#include "ace/pre.h" - -#if ! defined (__ACE_INLINE__) -# define __ACE_INLINE__ -#endif /* ! __ACE_INLINE__ */ - -#define ACE_HAS_TEMPLATE_SPECIALIZATION - -#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT - -// Platform supports pread() and pwrite() -#define ACE_HAS_P_READ_WRITE - -#define ACE_HAS_XPG4_MULTIBYTE_CHAR - -// Platform supports System V IPC (most versions of UNIX, but not Win32) -#define ACE_HAS_SYSV_IPC - -// Sun has the wrong prototype for sendmsg. -#define ACE_HAS_BROKEN_SENDMSG - -// The SunOS 5.x version of rand_r is inconsistent with the header files... -#define ACE_HAS_BROKEN_RANDR - -// Platform supports system configuration information. -#define ACE_HAS_SYSINFO - -// Platform supports the POSIX regular expression library -#define ACE_HAS_REGEX - -// Platform supports recvmsg and sendmsg. -#define ACE_HAS_MSG - -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYSCALL_H - -// Platform has terminal ioctl flags like TCGETS and TCSETS. -#define ACE_HAS_TERM_IOCTLS - -// Compiler/platform correctly calls init()/fini() for shared libraries. -#define ACE_HAS_AUTOMATIC_INIT_FINI - -// Platform supports POSIX O_NONBLOCK semantics. -#define ACE_HAS_POSIX_NONBLOCK - -// Compiler/platform has correctly prototyped header files. -#define ACE_HAS_CPLUSPLUS_HEADERS - -// Compiler/platform supports SunOS high resolution timers. -#define ACE_HAS_HI_RES_TIMER - -// Platform supports IP multicast -#define ACE_HAS_IP_MULTICAST - -// Compiler/platform supports alloca() -#define ACE_HAS_ALLOCA - -// Compiler/platform has <alloca.h> -#define ACE_HAS_ALLOCA_H - -// Platform contains the Orbix CORBA implementation. -#define ACE_HAS_ORBIX 1 - -// Platform contains the multi-threaded Orbix CORBA implementation. -// #define ACE_HAS_MT_ORBIX - -// Platform contains <poll.h>. -#define ACE_HAS_POLL - -// Platform supports POSIX timers via timestruc_t. -#define ACE_HAS_POSIX_TIME - -// Platform supports the /proc file system. -#define ACE_HAS_PROC_FS - -// Platform supports the prusage_t struct. -#define ACE_HAS_PRUSAGE_T - -// Compiler/platform defines the sig_atomic_t typedef. -#define ACE_HAS_SIG_ATOMIC_T - -// Platform supports SVR4 extended signals. -#define ACE_HAS_SIGINFO_T -#define ACE_HAS_UCONTEXT_T - -// Compiler/platform provides the sockio.h file. -#define ACE_HAS_SOCKIO_H - -// Compiler supports the ssize_t typedef. -#define ACE_HAS_SSIZE_T - -// Platform supports STREAMS. -#define ACE_HAS_STREAMS - -// Platform supports STREAM pipes. -#define ACE_HAS_STREAM_PIPES - -// Compiler/platform supports strerror (). -#define ACE_HAS_STRERROR - -// Compiler/platform supports struct strbuf. -#define ACE_HAS_STRBUF_T - -// Compiler/platform supports SVR4 dynamic linking semantics. -#define ACE_HAS_SVR4_DYNAMIC_LINKING - -// Compiler/platform supports SVR4 gettimeofday() prototype. -#define ACE_HAS_SVR4_GETTIMEOFDAY - -// Compiler/platform supports SVR4 signal typedef. -#define ACE_HAS_SVR4_SIGNAL_T - -// Platform lacks pthread_sigaction -#define ACE_LACKS_PTHREAD_THR_SIGSETMASK - -// Compiler/platform supports SVR4 ACE_TLI (in particular, T_GETNAME stuff)... -#define ACE_HAS_SVR4_TLI - -// Platform provides <sys/filio.h> header. -#define ACE_HAS_SYS_FILIO_H - -// Compiler/platform supports sys_siglist array. -#define ACE_HAS_SYS_SIGLIST - -/* Turn off the following defines if you want to disable threading. */ -// Compile using multi-thread libraries. -#if !defined (ACE_MT_SAFE) -# define ACE_MT_SAFE 1 -#endif - -// Platform supports Solaris threads. -#define ACE_HAS_STHREADS - -// Platform supports threads. -#define ACE_HAS_THREADS - -// Compiler/platform has thread-specific storage -#define ACE_HAS_THREAD_SPECIFIC_STORAGE - -// Platform supports reentrant functions (i.e., all the POSIX *_r functions). -#define ACE_HAS_REENTRANT_FUNCTIONS - -/* end threading defines */ - -#define ACE_HAS_PRIOCNTL -#define ACE_NEEDS_LWP_PRIO_SET - -// Platform supports ACE_TLI timod STREAMS module. -#define ACE_HAS_TIMOD_H - -// Platform supports ACE_TLI tiuser header. -#define ACE_HAS_TIUSER_H - -// Platform provides ACE_TLI function prototypes. -#define ACE_HAS_TLI_PROTOTYPES - -// Platform supports ACE_TLI. -#define ACE_HAS_TLI - -#define ACE_LACKS_LINEBUFFERED_STREAMBUF -#define ACE_LACKS_SIGNED_CHAR - -// Use the poll() event demultiplexor rather than select(). -//#define ACE_USE_POLL - -#define ACE_NEEDS_DEV_IO_CONVERSION - -// Turns off the tracing feature. -#if !defined (ACE_NTRACE) -# define ACE_NTRACE 1 -#endif /* ACE_NTRACE */ - -// Defines the page size of the system. -#define ACE_PAGE_SIZE 4096 -#define ACE_HAS_IDTYPE_T -#define ACE_HAS_GPERF -#define ACE_HAS_DIRENT - -#include "ace/post.h" -#endif /* ACE_CONFIG_H */ diff --git a/ace/config-sunos5.x-sunc++-4.x-orbix.h b/ace/config-sunos5.x-sunc++-4.x-orbix.h deleted file mode 100644 index f48b35c2e8e..00000000000 --- a/ace/config-sunos5.x-sunc++-4.x-orbix.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// The following configuration file is designed to work for SunOS -// 5.[56] platforms using the SunC++ 4.x compiler. This works with the -// Orbix 2.x CORBA IDL compiler. - -#ifndef ACE_CONFIG_ORBIX_H -#define ACE_CONFIG_ORBIX_H -#include "ace/pre.h" - -// Pick up correct platform definition file based on compiler's predefined -// macros. -#if defined (__SunOS_5_5) || defined (__SunOS_5_5_1) -# include "ace/config-sunos5.5.h" -#elif defined (__SunOS_5_6) -# include "ace/config-sunos5.6.h" -#else -# error "Need a new platform extension in config-sunos5.x-sunc++-4.x-orbix.h" -#endif /* __SunOS_* */ - -// Platform contains the Orbix CORBA implementation. -#define ACE_HAS_ORBIX 1 - -// Platform contains the multi-threaded Orbix CORBA implementation, unless -// overridden by site config. -#if !defined (ACE_HAS_MT_ORBIX) -# define ACE_HAS_MT_ORBIX 1 -#endif /* ACE_HAS_MT_ORBIX */ - -#include "ace/post.h" -#endif /* ACE_CONFIG_ORBIX_H */ diff --git a/ace/config-tandem.h b/ace/config-tandem.h index f42b644a56d..47777c9f53d 100644 --- a/ace/config-tandem.h +++ b/ace/config-tandem.h @@ -310,10 +310,6 @@ //ACE_HAS_OLD_MALLOC Compiler/platform uses old malloc()/ // free() prototypes (ugh) -#if !defined (ACE_HAS_ORBIX) - #define ACE_HAS_ORBIX 0 -#endif -// ACE_HAS_ORBIX Platform has Orbix CORBA implementation //? ACE_HAS_POSIX_SEM Platform supports POSIX real-time //semaphores (e.g., VxWorks and Solaris) //Compiler/platform defines a union semun for SysV shared memory diff --git a/ace/config-win32-common.h b/ace/config-win32-common.h index cfd78ba0542..c66b41dde9d 100644 --- a/ace/config-win32-common.h +++ b/ace/config-win32-common.h @@ -103,26 +103,6 @@ // Runtime restrictions: winsock2 must be installed. // #define ACE_HAS_WINSOCK2 0 -// Define ACE_HAS_ORBIX to 1 in your config.h file if you want to integrate -// ACE and Orbix in Win32. -// Setting applies to : building ACE, linking with ACE -// Runtime restrictions: system must have Orbix DLLs -#if !defined (ACE_HAS_ORBIX) -# define ACE_HAS_ORBIX 0 -#endif - -#if !defined (ACE_HAS_MT_ORBIX) -# define ACE_HAS_MT_ORBIX 0 -#endif - -// By default, you will get the proper namespace usage for Orbix. If -// you don't like this, comment out the #define line or #undef -// ACE_ORBIX_HAS_NAMESPACES in your config.h file after including this -// file. -#if !defined (ACE_ORBIX_HAS_NAMESPACES) -# define ACE_ORBIX_HAS_NAMESPACES -#endif /* ACE_ORBIX_HAS_NAMESPACES */ - // By default, we use non-static object manager on Win32. That is, // the object manager is allocated in main's stack memory. If this // does not suit your need, i.e., if your programs depend on the use diff --git a/apps/Makefile b/apps/Makefile index feb2eb7f277..46e3630bcda 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -14,11 +14,6 @@ DIRS = Gateway \ gperf \ drwho -# The following directories aren't compiled by default since haven't -# finished integrating it into ACE... -# -# Orbix-Examples - #---------------------------------------------------------------------------- # Include macros and targets #---------------------------------------------------------------------------- diff --git a/apps/Makefile.am b/apps/Makefile.am index 7aba8c167e0..36890d20f2d 100644 --- a/apps/Makefile.am +++ b/apps/Makefile.am @@ -27,7 +27,6 @@ endif SUBDIRS = $(GPERF_DIR) ## SUBDIRS = Gateway \ ## JAWS \ -## Orbix-Examples \ ## gperf ## EXTRA_DIST = README diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp deleted file mode 100644 index c9ba927b11d..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp +++ /dev/null @@ -1,147 +0,0 @@ -// $Id$ - -#include "Input_Handler.h" -#include "Notification_Receiver_Handler.h" - -ACE_RCSID(Consumer, Input_Handler, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -Input_Handler::~Input_Handler (void) -{ - ACE_DEBUG ((LM_DEBUG, - "closing down Input_Handler::~Input_Handler\n")); - this->handle_close (); -} - -int -Input_Handler::consumer_initiated_shutdown (void) -{ - return this->consumer_initiated_shutdown_; -} - -void -Input_Handler::consumer_initiated_shutdown (int c) -{ - this->consumer_initiated_shutdown_ = c; -} - -ACE_HANDLE -Input_Handler::get_handle (void) const -{ - return this->handle_; -} - -int -Input_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, "closing down Consumer::Input_Handler\n")); - - Event_Comm::Notification_Receiver *receiver = this->receiver_handler_->receiver (); - Event_Comm::Notifier *notifier = this->receiver_handler_->notifier (); - - if (this->consumer_initiated_shutdown ()) - { - // Only try to unsubscribe if the Consumer initiated the - // shutdown. Otherwise, the Supplier initiated it and it has - // probably gone away by now! - TRY - { - // Gracefully shutdown the Receiver by removing it from the - // Notifier's internal map. - - notifier->unsubscribe (receiver, "", IT_X); - } - CATCHANY - { - cerr << IT_X << endl; - } - ENDTRY; - } - - // Don't execute a callback here otherwise we'll recurse - // indefinitely! - if (ACE_Reactor::instance ()->remove_handler - (this, - ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "remove_handler")); - - // *Must* be allocated dyanmically! - ::operator delete (this); - return 0; -} - -Input_Handler::Input_Handler (Notification_Receiver_Handler *ch, - ACE_HANDLE handle) - : receiver_handler_ (ch), - handle_ (handle), - consumer_initiated_shutdown_ (0) -{ - if (ACE_Reactor::instance ()->register_handler - (this, - ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR ((LM_ERROR, - "Input_Handler::Input_Handler\n")); -} - -int -Input_Handler::handle_input (ACE_HANDLE h) -{ - char buf[BUFSIZ]; - - // Read up to BUFSIZ worth of data from ACE_HANDLE h. - ssize_t n = ACE_OS::read (h, buf, sizeof buf - 1); - - if (n > 0) - { - // Null terminate the buffer, replacing the '\n' with '\0'. - if (buf[n - 1] == '\n' || buf[n - 1] == EOF) - buf[n - 1] = '\0'; - else - buf[n] = '\0'; - ACE_DEBUG ((LM_DEBUG, - "notifying for event %s\n", - buf)); - } - else - { - ACE_OS::strcpy (buf, "quit"); - ACE_DEBUG ((LM_DEBUG, - "shutting down Input_Handler\n")); - } - - Event_Comm::Notifier *notifier = - this->receiver_handler_->notifier (); - - ACE_ASSERT (notifier != 0); - - if (ACE_OS::strcmp (buf, "quit") == 0) - { - // Consumer wants to shutdown. - this->consumer_initiated_shutdown (1); - - // Tell the main event loop to shutdown. - ACE_Reactor::end_event_loop(); - } - else - { - TRY - { - Event_Comm::Notification notification; - - notification.tag_ = ACE_OS::strdup (buf); - - notifier->send_notification (notification, IT_X); - } - CATCHANY - { - cerr << "Unexpected exception " << IT_X << endl; - } ENDTRY; - } - - /* NOTREACHED */ - return 0; -} -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h b/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h deleted file mode 100644 index e8a193e8385..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Input_Handler.h -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _INPUT_HANDLER_H -#define _INPUT_HANDLER_ - -#include "ace/Service_Config.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) -// Forward declaration. -class Notification_Receiver_Handler; - -class Input_Handler : public ACE_Service_Object -{ - // = TITLE - // Handles input events generated from a keyboard. - // - // = DESCRIPTION - // This subclass <ACE_Service_Object> receives "unsubscribes" - // from the <Notifier> when input is received from the keyboard. -public: - Input_Handler (Notification_Receiver_Handler *, - ACE_HANDLE h = 0); - - virtual int handle_input (ACE_HANDLE); - // Dispatch the callback when events occur. - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK); - // Close down the handler. - - int consumer_initiated_shutdown (void); - // Report whether the Consumer initiated the shutdown. - - void consumer_initiated_shutdown (int); - // Indicate that the Consumer initiated the shutdown. - -private: - ~Input_Handler (void); - // Ensure dynamic allocation. - - virtual ACE_HANDLE get_handle (void) const; - - ACE_HANDLE handle_; - // ACE_HANDLE where the input comes from. - - Notification_Receiver_Handler *receiver_handler_; - // Pointer to the <Notification_Receiver_Handler> that receives - // notifications from the <Event_Comm::Notifier>. - - int consumer_initiated_shutdown_; - // Keep track of whether the Consumer initiated the shutdown. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _INPUT_HANDLER_H */ diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Makefile b/apps/Orbix-Examples/Event_Comm/Consumer/Makefile deleted file mode 100644 index 4e7357d4517..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Consumer/Makefile +++ /dev/null @@ -1,163 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the Consumer. -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = consumer - -FILES = Notification_Receiver_Handler \ - Input_Handler - -LSRC = $(addsuffix .cpp,$(FILES)) consumer.cpp -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - -LDLIBS = $(addprefix $(VSHDIR),$(LOBJ)) ../libsrc/libEvent_Comm.a -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -CPPFLAGS += -I../include -VLDLIBS += -lgen - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -Notification_Receiver_Handler.o: Notification_Receiver_Handler.cpp \ - Notification_Receiver_Handler.h \ - ${ACE_ROOT}ace/CORBA_Handler.h \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \ - ../include/Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - ../include/Event_Comm.hh -Input_Handler.o: Input_Handler.cpp Input_Handler.h \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - Notification_Receiver_Handler.h \ - ${ACE_ROOT}ace/CORBA_Handler.h \ - ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \ - ../include/Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - ../include/Event_Comm.hh -consumer.o: consumer.cpp \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - Notification_Receiver_Handler.h \ - ${ACE_ROOT}ace/CORBA_Handler.h \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \ - ../include/Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - ../include/Event_Comm.hh Input_Handler.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp deleted file mode 100644 index bf3a61b3aa5..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// $Id$ - -#include "Notification_Receiver_Handler.h" - -ACE_RCSID(Consumer, Notification_Receiver_Handler, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0) -typedef ACE_MT_CORBA_Handler CORBA_HANDLER; -#else -typedef ACE_ST_CORBA_Handler CORBA_HANDLER; -#endif /* ACE_HAS_MT_ORBIX */ - -int -Notification_Receiver_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ -// ACE_ST_CORBA_Handler::remove_service (Event_Comm_Notification_Receiver_IMPL); - - if (this->receiver_ != 0) - { - ACE_DEBUG ((LM_DEBUG, - "closing down Notification_Receiver_Handler\n")); - CORBA_HANDLER::instance ()->deactivate_service (Event_Comm_Notification_Receiver_IMPL, - this->receiver_->_marker ()); - CORBA::release (this->receiver_); - this->receiver_ = 0; - CORBA::release (this->notifier_); - this->notifier_ = 0; - // *Must* be allocated dynamically in order to delete this! - delete this; - } - return 0; -} - -Notification_Receiver_Handler::Notification_Receiver_Handler (int argc, char *argv[]) - : notifier_ (0), - receiver_ (0) -{ - const char *server_name = - Event_Comm_Notification_Receiver_IMPL; - char buf[BUFSIZ]; - char *receiver_marker = buf; - char *filtering_criteria; - char *host; - char *notifier_marker; - char *service_location = argv[0]; - - // First see if we have any environment variables. - filtering_criteria = ACE_OS::getenv ("FILTERING_CRITERIA"); - host = ACE_OS::getenv ("HOST"); - notifier_marker = ACE_OS::getenv ("NOTIFIER_MARKER"); - - // Then override these variables with command-line arguments. - filtering_criteria = argc > 1 ? argv[1] : ""; - host = argc > 2 ? argv[2] : "tango.cs"; - notifier_marker = argc > 3 ? argv[3] : "notifier:" Event_Comm_Notifier_IR; - - CORBA::Orbix.setDiagnostics (0); - - ACE_utsname name; - - // Make the marker name be the "/hostname/processid" - ACE_OS::uname (&name); - sprintf (buf, "/%s/%d", name.nodename, ACE_OS::getpid ()); - - CORBA_HANDLER::instance ()->activate_service (Event_Comm_Notification_Receiver_IMPL, - receiver_marker, - service_location); - - // Create the receiver object. - ACE_NEW (this->receiver_, - TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i) - (new Notification_Receiver_i)); - - this->receiver_->_marker (receiver_marker); - - ACE_ASSERT (this->receiver_); - - TRY - { - // Get a binding to the notifier. - this->notifier_ = Event_Comm::Notifier::_bind (notifier_marker, host, IT_X); - - if (this->notifier_ != CORBA::OBJECT_NIL) - // Subscribe ourselves with the notifier's broker. - this->notifier_->subscribe (this->receiver_, - filtering_criteria, IT_X); - } - CATCHANY - { - cerr << "Unexpected exception " << IT_X << endl; - ACE_OS::exit (1); - } - ENDTRY; - // Print out context. - - receiver_marker = (char *) this->receiver_->_marker (); - CORBA::BOA::activationMode mode = CORBA::Orbix.myActivationMode (); - ACE_DEBUG ((LM_DEBUG, - "starting up a %spersistent server in mode %d with marker name %s\n", - mode == CORBA::BOA::persistentActivationMode ? "" : "non-", - mode, - receiver_marker)); -} - -Event_Comm::Notification_Receiver * -Notification_Receiver_Handler::receiver (void) -{ - return this->receiver_; -} - -Event_Comm::Notifier * -Notification_Receiver_Handler::notifier (void) -{ - return this->notifier_; -} - -// Destroy a Receiver target object. - -Notification_Receiver_Handler::~Notification_Receiver_Handler (void) -{ - this->handle_close (-1, - ACE_Event_Handler::ALL_EVENTS_MASK); -} - -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h deleted file mode 100644 index e5595339158..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notifier_Receiver_Handler.h -// -// = DESCRIPTION -// Subclass of Corba_Handler that sets up the Notification_Receiver handler -// for use with the ACE ACE_Reactor. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _NOTIFICATION_RECEIVER_HANDLER_H -#define _NOTIFICATION_RECEIVER_HANDLER_H - -#include "ace/CORBA_Handler.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Event_Comm_i.h" - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -class Notification_Receiver_Handler -{ - // = TITLE - // Subclass of Corba_Handler that sets up the Notification - // Receiver handler for use with the ACE ACE_Reactor. - // - // = DESCRIPTION - // Note that this class doesn't inherit from ACE_ST_CORBA_Handler - // (unlike the Supplier's Notifier_Handler class). Instead, it - // uses an alternative interface that can be called directly. -public: - Notification_Receiver_Handler (int argc, char *argv[]); - - Event_Comm::Notification_Receiver *receiver (void); - Event_Comm::Notifier *notifier (void); - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK); - // Close down the handler. - -private: - ~Notification_Receiver_Handler (void); - // Ensure dynamic allocation. - - Event_Comm::Notification_Receiver *receiver_; - // Pointer to an IDL <Notification_Receiver> proxy object. - - Event_Comm::Notifier *notifier_; - // Pointer to an IDL <Notifier> proxy object. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _NOTIFICATION_RECEIVER_HANDLER_H */ diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp deleted file mode 100644 index ef0ffe1be82..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// $Id$ - -#include "Notification_Receiver_Handler.h" -#include "Input_Handler.h" - -ACE_RCSID(Consumer, consumer, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -class Consumer : public ACE_Event_Handler -{ - // = TITLE - // Consumer driver for the Orbix Notification example. -public: - Consumer (int argc, char *argv[]); - ~Consumer (void); - - void run (void); - // Execute the consumer; - -private: - virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); - - virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask); - - Input_Handler *ih_; - // Handler for keyboard input. - - Notification_Receiver_Handler *nrh_; - // Handler for CORBA Consumer. - - ACE_Service_Config daemon_; - // ACE server event-loop mechanism. -}; - -int -Consumer::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, - "closing down Consumer\n")); - return 0; -} - -int -Consumer::handle_signal (int signum, siginfo_t *, ucontext_t *) -{ - // Indicate that the consumer initiated the shutdown. - this->ih_->consumer_initiated_shutdown (1); - - // Shut down the event loop. - ACE_Reactor::end_event_loop (); - return 0; -} - -// Run the event loop until someone calls -// calls ACE_Reactor::end_event_loop(). - -void -Consumer::run (void) -{ - if (ACE_Reactor::run_event_loop () == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "run_reactor_event_loop")); -} - -Consumer::Consumer (int argc, char *argv[]) - : ih_ (0), - nrh_ (0) -{ - // Initialize the server. - if (this->daemon_.open (argc, argv) == -1) - { - if (errno == ENOENT) // There's no svc.conf file, so use static linking... - { - ACE_DEBUG ((LM_DEBUG, - "no config file, using static binding\n")); - // The constructor registers the handlers... - ACE_NEW (this->nrh_, - Notification_Receiver_Handler (argc, argv)); - ACE_NEW (this->ih_, - Input_Handler (this->nrh_)); - } - else - ACE_ERROR ((LM_ERROR, - "%p\n%a", - "open", - 1)); - } - - if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "register_handler")); -} - -Consumer::~Consumer (void) -{ - // Free up the handlers if they were statically bound. - this->ih_->handle_close (); - this->nrh_->handle_close (); -} - -int -main (int argc, char *argv[]) -{ - // Initialize the supplier and consumer object references. - Consumer consumer (argc, argv); - - // Loop forever handling events. - consumer.run (); - - return 0; -} -#else /* !defined ACE_HAS_ORBIX */ -int -main (int argc, char *argv[]) -{ - ACE_ERROR_RETURN ((LM_ERROR, - "you must have Orbix to run application %s\n", - argv[0]), - 1); -} -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/Makefile b/apps/Orbix-Examples/Event_Comm/Makefile deleted file mode 100644 index fad4487725b..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the consumer/supplier notification application -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -DIRS = libsrc \ - Consumer \ - Supplier - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU - diff --git a/apps/Orbix-Examples/Event_Comm/README b/apps/Orbix-Examples/Event_Comm/README deleted file mode 100644 index 1bd7b5d8c45..00000000000 --- a/apps/Orbix-Examples/Event_Comm/README +++ /dev/null @@ -1,109 +0,0 @@ -OVERVIEW - -This directory contains source code for a prototype CORBA-based -distributed notification mechanism. This mechanism implements a -"publish/subscribe" communication protocol. It allows Suppliers to -pass messages containing object references to a dynamically managed -group of Consumers. This is similar to the OMG COSS Event Service, -though not as sophisticated. - -This example also illustrates how to integrate Orbix with the ACE -libraries. - -DIRECTORY STRUCTURE - -There are 4 directories: - -Supplier - - -- The supplier test driver, which must be started - first. It has an instance of an IDL Notifier - object. This object accepts subscriptions from Consumers - and forwards events sent to it either via Consumers or - via its standard input. - - The Supplier must be registered with the ORB using the - following command: - - % putit Event_Comm_Notifier <pathname>/supplier - -Consumer - - -- The consumer test driver, which must be started - after the Supplier. It has an instance of an - IDL Notification_Receiver object. This object is - used to receive notifications from the Notifier object - residing in the Supplier. When the Consumer starts up it - gets an object reference to the Supplier's Notifier. - It then subscribes its Notification_Receiver object with - the Supplier's Notifier by passing an object reference. - - In addition to passing an object reference to a - Notification_Receiver, the Consumer also may specify a - filtering criteria, which is a regular expression. If - the filtering criteria is the string "" then the Notifier - will send all Notifications to the Consumer (i.e., "" is - treated as a "wildcard"). Otherwise, the filtering - criteria is considered to be a regular expression, - and only those Notification tags that match the regular - expression will be forwarded to the Consumer. The regular - expressions are those used by ed(1) (see the regexp(5) - manual page for more info). - - The Consumer must be registered with the ORB - using the following command: - - % putit Event_Comm_Notification_Receiver <pathname>/consumer - -include - - -- This contains links to the appropriate header - files. - -libsrc - - -- This contains the IDL files and IDL implementation - classes that support the distributed notification scheme. - These are shared by the Consumer and Supplier. - -RUNNING THE TESTS - -To run the tests do the following: - -1. Compile everything. - -2. Start up the Orbix daemon (orbixd) if it's not already - running. - -3. Register the Consumer (i.e., Notification_Receiver) and Supplier - (i.e., Notifier) with the Orbix daemon (orbixd), as described - above. - -4. Start the Supplier/supplier executable. - -5. Start up as many copies of the Consumer/consumer as you'd like. - Typically, I run each one in its own window. If you'd like to use - different machines make sure that you start up the Orbix daemon on - each one and register the Consumer. - -6. Once the Consumers have subscribed you can send them info by typing - commands in the Supplier window. These will be sent to all the - Consumers who have subscribed. Likewise, you can send messages - from a Consumer to all other Consumers by typing messages in a - Consumer window. - - Note that if you type "quit", ^D, or ^C in a Consumer window the - Consumer will unsubscribe and shutdown its handlers and exit. - Likewise, if you type "quit", ^D, or ^C in the Supplier window - the Supplier will disconnect all of its Consumers and exit. - When a Consumer is disconnected from its Supplier it automatically - shuts itself down. - -7. When you want to terminate a Consumer or a Supplier, just type ^C - and the process will shut down gracefully. - -Please let me know if there are any questions. - - Doug - -schmidt@cs.wustl.edu diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp deleted file mode 100644 index dc2c89642d7..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// $Id$ - -#include "Event_Comm.hh" -#include "Notifier_Handler.h" -#include "Input_Handler.h" - -ACE_RCSID(Supplier, Input_Handler, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -int -Input_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, - "closing down Supplier::Input_Handler\n")); - - Event_Comm::Notifier *notifier = this->notifier_->notifier (); - ACE_ASSERT (notifier != 0); - - ACE_OS::fclose (this->fp_); - - TRY - { - // Disconnect all the consumers gracefully. - notifier->send_disconnect ("quit", IT_X); - } - CATCHANY - { - cerr << IT_X << endl; - } - ENDTRY; - - // Don't execute a callback here otherwise we'll recurse - // indefinitely! - if (ACE_Reactor::instance ()->remove_handler - (this, - ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "remove_handler")); - - // *Must* be allocated dyanmically! - ::operator delete ((void *) this); - return 0; -} - -Input_Handler::Input_Handler (Notifier_Handler *notifier, - ACE_HANDLE handle) // Use stdin by default. - : notifier_ (notifier), - handle_ (handle) -{ - // Register ourselves with the ACE_Reactor so that input events - // cause our handle_input() method to be dispatched automatically. - - if (ACE_Reactor::instance ()->register_handler - (this, ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "register_handler")); - - this->fp_ = ACE_OS::fdopen (handle, "r"); - - if (this->fp_ == 0) - ACE_ERROR ((LM_ERROR, - "%p\n", - "fdopen")); -} - -Input_Handler::~Input_Handler (void) -{ - ACE_DEBUG ((LM_DEBUG, - "closing down Input_Handler::~Input_Handler\n")); - this->handle_close (); -} - -ACE_HANDLE -Input_Handler::get_handle (void) const -{ - return this->handle_; -} - -// Frame input events and notify <Consumers>. - -int -Input_Handler::handle_input (ACE_HANDLE h) -{ - char buf[BUFSIZ]; - - // Read up to BUFSIZ worth of data from ACE_HANDLE h. - - if (ACE_OS::fgets (buf, sizeof buf - 1, this->fp_) == 0) - { - ACE_OS::strcpy (buf, "quit"); - ACE_DEBUG ((LM_DEBUG, - "shutting down Input_Handler\n")); - } - else - { - size_t n = ACE_OS::strlen (buf); - - // Null terminate the buffer, replacing the '\n' with '\0'. - if (buf[n - 1] == '\n' || buf[n - 1] == EOF) - buf[n - 1] = '\0'; - else - buf[n] = '\0'; - ACE_DEBUG ((LM_DEBUG, "notifying for event %s\n", buf)); - } - - Event_Comm::Notifier *notifier = this->notifier_->notifier (); - ACE_ASSERT (notifier != 0); - - if (ACE_OS::strcmp (buf, "quit") == 0) - // Tell the main event loop to shutdown. - ACE_Reactor::end_event_loop(); - else - { - // Use the notifier to notify Consumers. - TRY - { - Event_Comm::Notification notification; - - // Pass the buf over in the tag field. - notification.tag_ = ACE_OS::strdup (buf); - - // This is where the "any" value goes or the object - // reference... notification.value_ = ... - - // Forward <Notification> to all <Notification_Receivers>. - notifier->send_notification (notification, IT_X); - } - CATCHANY - { - cerr << "unexpected exception " << IT_X << endl; - } - ENDTRY; - } - return 0; -} - -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h b/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h deleted file mode 100644 index 813a8b7af36..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Input_Handler.h -// -// = DESCRIPTION -// Handle input from the keyboard. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _INPUT_HANDLER_H -#define _INPUT_HANDLER_H - -#include "ace/Service_Config.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -// Forward declaration. -class Notifier_Handler; - -class Input_Handler : public ACE_Service_Object -{ - // = TITLE - // Handles input events generated from a keyboard. - // - // = DESCRIPTION - // The events are currently framed and forwarded to - // all Consumers. In the future, we will need to - // be more selective and only send to those Consumers - // whose filtering criteria matches! -public: - Input_Handler (Notifier_Handler *, - ACE_HANDLE = ACE_STDIN); - // Use stdin by default. - - virtual int handle_input (ACE_HANDLE); - // Frame input events and notify <Consumers>. - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK); - // Close down the handler. - -protected: - virtual ACE_HANDLE get_handle (void) const; - - ACE_HANDLE handle_; - // ACE_HANDLE where the input comes from. - - Notifier_Handler *notifier_; - // Pointer to a <Notifier_Handler> that's used to inform Consumers - // that events of interest have occurred. - - FILE *fp_; - // Pointer to an input ACE_FILE. - -private: - ~Input_Handler (void); - // Ensure dynamic allocation. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _INPUT_HANDLER_H */ diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Makefile b/apps/Orbix-Examples/Event_Comm/Supplier/Makefile deleted file mode 100644 index 477a6b22e70..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Supplier/Makefile +++ /dev/null @@ -1,162 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the Notifier. -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = supplier - -FILES = Input_Handler \ - Notifier_Handler - -LSRC = $(addsuffix .cpp,$(FILES)) supplier.cpp -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - -LDLIBS = $(addprefix $(VSHDIR),$(LOBJ)) ../libsrc/libEvent_Comm.a - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -CPPFLAGS += -I../include -VLDLIBS += -lgen - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -Input_Handler.o: Input_Handler.cpp ../include/Event_Comm.hh Notifier_Handler.h \ - ${ACE_ROOT}ace/CORBA_Handler.h \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \ - ../include/Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - Input_Handler.h -Notifier_Handler.o: Notifier_Handler.cpp Notifier_Handler.h \ - ${ACE_ROOT}ace/CORBA_Handler.h \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \ - ../include/Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - ../include/Event_Comm.hh -supplier.o: supplier.cpp \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - Notifier_Handler.h \ - ${ACE_ROOT}ace/CORBA_Handler.h \ - ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \ - ../include/Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - ../include/Event_Comm.hh Input_Handler.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp deleted file mode 100644 index 37cd5c7544e..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// $Id$ - -#include "Notifier_Handler.h" - -ACE_RCSID(Supplier, Notifier_Handler, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0) -typedef ACE_MT_CORBA_Handler CORBA_HANDLER; -#else -typedef ACE_ST_CORBA_Handler CORBA_HANDLER; -#endif /* ACE_HAS_MT_ORBIX */ - -int -Notifier_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - if (this->notifier_ != 0) - { - ACE_DEBUG ((LM_DEBUG, - "closing down Notifier_Handler\n")); - CORBA_HANDLER::instance ()->deactivate_service (Event_Comm_Notifier_IMPL, - this->notifier_->_marker ()); - CORBA::release (this->notifier_); - this->notifier_ = 0; - // *Must* be allocated dyanmically! - ::operator delete ((void *) this); - } - - return 0; -} - -Event_Comm::Notifier * -Notifier_Handler::notifier (void) -{ - return this->notifier_; -} - -void -Notifier_Handler::notifier (Event_Comm::Notifier *notifier) -{ - if (this->notifier_ != notifier) - { - CORBA::release (this->notifier_); - this->notifier_ = notifier; - } -} - -// Create and initialize a Notifier target object. - -Notifier_Handler::Notifier_Handler (const char *service_location, - const char *marker, - int putit) -{ - CORBA_HANDLER::instance ()->activate_service (Event_Comm_Notifier_IMPL, - putit ? marker : 0, - service_location); - - // Create a notifier object using the implementation class - // Notifier_i. - ACE_NEW (this->notifier_, - TIE_Event_Comm_Notifier (Notifier_i) (new Notifier_i, - marker)); -} - -// Destroy a Notifier target object. - -Notifier_Handler::~Notifier_Handler (void) -{ - this->handle_close (); -} - -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h b/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h deleted file mode 100644 index 3c9df6b6aaf..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notifier_Handler.h -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _NOTIFIER_HANDLER_H -#define _NOTIFIER_HANDLER_H - -#include "ace/CORBA_Handler.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Event_Comm_i.h" - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -class Notifier_Handler - // = TITLE - // Integrate CORBA with the ACE ACE_Reactor. -{ -public: - Notifier_Handler (const char *service_location, - const char *marker = "notifier", - int putit = 1); // Default marker name. - - Event_Comm::Notifier *notifier (void); - void notifier (Event_Comm::Notifier *); - - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK); - // Close down the handler. - -private: - ~Notifier_Handler (void); - // Ensure dynamic allocation. - - Event_Comm::Notifier *notifier_; - // Pointer to an <Event_Comm::Notifier> object. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _NOTIFIER_HANDLER_H */ diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp deleted file mode 100644 index ef1e2c5d914..00000000000 --- a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp +++ /dev/null @@ -1,132 +0,0 @@ -// $Id$ - -#include "ace/Service_Config.h" - -#include "Notifier_Handler.h" -#include "Input_Handler.h" - -ACE_RCSID(Supplier, supplier, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -class Supplier : public ACE_Event_Handler -{ - // = TITLE - // Supplier driver for the Orbix Publish/Subscribe example. - // - // = DESCRIPTION - // The executable file generated from this code should be - // registered (under the name 'logger') using the 'putit' command. -public: - Supplier (int argc, char *argv[]); - ~Supplier (void); - - void run (void); - // Execute the supplier. - -private: - virtual int handle_signal (int signum, siginfo_t *, ucontext_t *); - - virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask); - - Input_Handler *ih_; - // Handler for keyboard input. - - Notifier_Handler *nh_; - // Handler for CORBA Notifier. - - ACE_Service_Config daemon_; - // ACE server event-loop mechanism. -}; - -int -Supplier::handle_close (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, - "closing down Supplier\n")); - return 0; -} - -int -Supplier::handle_signal (int signum, siginfo_t *, ucontext_t *) -{ - ACE_Reactor::end_event_loop (); - return 0; -} - -void -Supplier::run (void) -{ - if (ACE_Reactor::run_event_loop () == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "run_reactor_event_loop")); -} - -Supplier::Supplier (int argc, char *argv[]) - : ih_ (0), - nh_ (0) -{ - // Initialize the server. - if (this->daemon_.open (argc, argv) == -1) - { - if (errno == ENOENT) // There's no svc.conf file, so use static linking... - { - ACE_DEBUG ((LM_DEBUG, - "no config file, using static binding\n")); - // The constructor registers the handlers... - int putit = argc > 1 ? 1 : 0; - - // Pass in program exec name to use a service_location! - ACE_NEW (this->nh_, - Notifier_Handler (argv[0], - "notifier", - putit)); - ACE_NEW (this->ih_, - Input_Handler (this->nh_)); - } - else - ACE_ERROR ((LM_ERROR, - "%p\n%a", - "open", - 1)); - } - - ACE_DEBUG ((LM_DEBUG, - "starting up server %s\n", - CORBA::Orbix.myImplementationName ())); - - if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "register_handler")); -} - -Supplier::~Supplier (void) -{ - // Free up the handlers if they were statically bound. - this->ih_->handle_close (); - this->nh_->handle_close (); -} - -int -main (int argc, char *argv[]) -{ - // Initialize server daemon. - Supplier supplier (argc, argv); - - // Loop forever handling events. - supplier.run (); - - return 0; -} -#else /* !defined ACE_HAS_ORBIX */ -int -main (int argc, char *argv[]) -{ - ACE_ERROR_RETURN ((LM_ERROR, - "you must have Orbix to run application %s\n", - argv[0]), - 1); -} -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh b/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh deleted file mode 100644 index f13bdc7062a..00000000000 --- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh +++ /dev/null @@ -1,889 +0,0 @@ - -#ifndef Event_Comm_hh -#define Event_Comm_hh - -/* $Id$ */ - -#include <CORBA.h> - -#include <string.h> - -class Event_Comm { -public: - -#ifndef Event_Comm_Notification_defined -#define Event_Comm_Notification_defined - - struct Notification { - CORBA::String_mgr tag_; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - static void* IT_anySupport (CORBA::Request &IT_r, - void *&, void*, const CORBA::Flags&); - static const void *IT_fn; - }; - - static const CORBA::TypeCode_ptr _tc_Notification; - -#ifndef Event_Comm_NotificationVarH -#define Event_Comm_NotificationVarH - -#ifndef Event_Comm_NotificationvPtr -#define Event_Comm_NotificationvPtr -typedef Notification* Notification_vPtr; -#endif - -class Notification_var : public CORBA::_var -{ - public: - - Notification_var () { - _ptr = NULL; - } - - Notification_var (Notification *IT_p) { - _ptr = IT_p; - } - - Notification_var (const Notification_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - return; - } - _ptr = new Notification (*(IT_s._ptr)); - } - - Notification_var &operator= (Notification *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Notification_var &operator= (const Notification_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Notification (*(IT_s._ptr)); - return (*this); - } - - ~Notification_var () { - delete _ptr; - } - - Notification* operator-> () { - return _ptr; - } - - operator const Notification_vPtr () const { return _ptr;} - operator Notification_vPtr& () { return _ptr;} - operator Notification& () const { return * _ptr;} - - protected: - Notification *_ptr; - private: - Notification_var &operator= (const CORBA::_var &IT_s); - Notification_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - - -#ifndef _Event_Comm_Notification_Receiver_defined -#define _Event_Comm_Notification_Receiver_defined -class Notification_Receiver_dispatch : public virtual CORBA::PPTR { -public: - - Notification_Receiver_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Notification_Receiver_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notification_Receiver_dispatch () {} - - Notification_Receiver_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notification_Receiver_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class Notification_Receiver; - -#ifndef Event_Comm_Notification_ReceiverPtr -#define Event_Comm_Notification_ReceiverPtr - - typedef Notification_Receiver* Notification_Receiver_ptr; - - typedef Notification_Receiver* Notification_ReceiverRef; - -#endif - - -#ifndef Event_Comm_Notification_ReceiverForwH -#define Event_Comm_Notification_ReceiverForwH -static CORBA::ObjectRef Notification_Receiver_getBase (void *); -static void Notification_Receiver_release (Notification_Receiver *, CORBA::Environment &IT_env); -static void Notification_Receiver_release (Notification_Receiver_ptr); -static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr, CORBA::Environment &IT_env); -static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr ); -static Notification_Receiver_ptr Notification_Receiver_nil (CORBA::Environment &IT_env); -static Notification_Receiver_ptr Notification_Receiver_nil (); -#endif -#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver" - - -class Notification_Receiver; - - typedef Notification_Receiver Notification_ReceiverProxy; -#define Event_Comm_Notification_Receiver_IR "Event_Comm_Notification_Receiver" -#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver" - -#ifndef Event_Comm_Notification_ReceiverPtr -#define Event_Comm_Notification_ReceiverPtr - - typedef Notification_Receiver* Notification_Receiver_ptr; - - typedef Notification_Receiver* Notification_ReceiverRef; - -#endif - -class Notification_Receiver: public virtual CORBA::Object { -public: - Notification_Receiver (char *IT_OR); - Notification_Receiver (ObjectReference *IT_OR); - Notification_Receiver () : CORBA::Object (1) {} -protected: - Notification_Receiver_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Notification_Receiver_ptr _duplicate( - Notification_Receiver_ptr obj, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - if (CORBA::is_nil(obj, IT_env)) { - IT_raise.maybeRaise (); - return (obj); - } - Notification_Receiver_ptr IT_obj = obj->__duplicate (IT_env); - IT_raise.maybeRaise(); - return IT_obj; - } -public: - static Notification_Receiver* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notification_Receiver* _bind (CORBA::Environment &IT_env); - static Notification_Receiver* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notification_Receiver* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notification_Receiver_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - IT_raise.maybeRaise(); - return (Notification_Receiver_ptr) CORBA::OBJECT_NIL;} - virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - - static const CORBA::TypeCode_ptr _tc_Notification_Receiver; - - static const CORBA::TypeCode_ptr _tc_Notification_ReceiverRef; - -#ifndef Event_Comm_Notification_ReceiverVarH -#define Event_Comm_Notification_ReceiverVarH - -#ifndef Event_Comm_Notification_ReceivervPtr -#define Event_Comm_Notification_ReceivervPtr -typedef Notification_Receiver* Notification_Receiver_vPtr; -#endif - -class Notification_Receiver_var : public CORBA::_var -{ - public: - - Notification_Receiver_var () { - _ptr = Notification_Receiver_nil (); - } - - Notification_Receiver_var (Notification_Receiver *IT_p) { - _ptr = IT_p; - } - - Notification_Receiver_var (const Notification_Receiver_var &IT_s) { - _ptr = Notification_Receiver_duplicate (IT_s._ptr); - } - - Notification_Receiver_var &operator= (Notification_Receiver *IT_p) { - Notification_Receiver_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Notification_Receiver_var &operator= (const Notification_Receiver_var &IT_s) { - Notification_Receiver_release (_ptr); - _ptr = Notification_Receiver_duplicate (IT_s._ptr); - return (*this); - } - - ~Notification_Receiver_var () { - Notification_Receiver_release (_ptr); - } - - Notification_Receiver* operator-> () { - return _ptr; - } - - operator const Notification_Receiver_vPtr () const { return _ptr;} - operator Notification_Receiver_vPtr& () { return _ptr;} - - protected: - Notification_Receiver *_ptr; - private: - Notification_Receiver_var &operator= (const CORBA::_var &IT_s); - Notification_Receiver_var (const CORBA::_var &IT_s); - Notification_Receiver_var &operator= (const CORBA::_mgr &IT_s); - Notification_Receiver_var &operator= (const CORBA::_SeqElem &IT_s); - Notification_Receiver_var (const CORBA::_mgr &IT_s); - Notification_Receiver_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Event_Comm_Notification_ReceiverMgrH -#define Event_Comm_Notification_ReceiverMgrH - -class Notification_Receiver_mgr : public CORBA::_mgr -{ - public: - - Notification_Receiver_mgr () { - _ptr = Notification_Receiver_nil (); - _release = 1; - } - - Notification_Receiver_mgr (const Notification_Receiver_mgr &IT_s) { - _ptr = Notification_Receiver_duplicate (IT_s._ptr); - _release = 1; - } - - Notification_Receiver_mgr &operator= (Notification_Receiver *IT_p) { - if (_ptr && _release) - Notification_Receiver_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Notification_Receiver_mgr &operator= (const Notification_Receiver_mgr &IT_s) { - if (_ptr && _release) - Notification_Receiver_release (_ptr); - _ptr = Notification_Receiver_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Notification_Receiver_mgr &operator= (const Notification_Receiver_var &IT_s) { - if (_ptr && _release) - Notification_Receiver_release (_ptr); - _ptr = Notification_Receiver_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Notification_Receiver_mgr () { - if (_release) - Notification_Receiver_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - CORBA::Environment env; - CORBA::EnvExcRaiser IT_raise (&env); - return (!(CORBA::is_nil((CORBA::Object*) _ptr, env))); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Notification_Receiver* () const { - return (Notification_Receiver*) _ptr; - } - - Notification_Receiver *_ptr; - - protected: - - unsigned char _release; -}; - -#endif - -#ifndef Event_Comm_Notification_ReceiverSeqElemH -#define Event_Comm_Notification_ReceiverSeqElemH - -class Notification_Receiver_SeqElem : public CORBA::_SeqElem -{ - public: - - Notification_Receiver_SeqElem (Event_Comm::Notification_Receiver_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Notification_Receiver_SeqElem &operator= (Event_Comm::Notification_Receiver_ptr IT_p) { - if (!_ptr) - return (*this); - if (*(_ptr) && _release) - Notification_Receiver_release (*(_ptr)); - *(_ptr) = IT_p; - return (*this); - } - - Notification_Receiver_SeqElem &operator= (const Notification_Receiver_SeqElem &IT_s) { - if (!_ptr|| !IT_s._ptr) - return (*this); - if (*(_ptr) && _release) - Notification_Receiver_release (*(_ptr)); - *(_ptr) = Notification_Receiver_duplicate(*(IT_s._ptr)); - return (*this); - } - - operator Event_Comm::Notification_Receiver_ptr () const -{ - if (!_ptr) - return (Notification_Receiver_nil()); - return (Event_Comm::Notification_Receiver_ptr) (*_ptr); - } - - Notification_Receiver_ptr operator->() const { return *_ptr;} - - protected: - Event_Comm::Notification_Receiver_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Event_Comm_Notification_Receiver(X) Event_Comm_Notification_Receiver##X - -#define DEF_TIE_Event_Comm_Notification_Receiver(X) \ - class Event_Comm_Notification_Receiver##X : public virtual Event_Comm::Notification_Receiver { \ - X* m_obj; \ - public: \ - \ - Event_Comm_Notification_Receiver##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Event_Comm::Notification_Receiver(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new Event_Comm::Notification_Receiver_dispatch \ - (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,m,l,Event_Comm_Notification_Receiver_IR,m_obj); \ - } \ - Event_Comm_Notification_Receiver##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Event_Comm::Notification_Receiver(), CORBA::Object () { \ - m_pptr = new Event_Comm::Notification_Receiver_dispatch \ - (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notification_Receiver_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Event_Comm_Notification_Receiver##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->receive_notification ( notification,IT_env);\ -}\ - \ - virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->disconnect ( reason,IT_env);\ -}\ - \ - }; - - -#define QUALS_Event_Comm_Notification_Receiver \ - virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->receive_notification ( notification,IT_env);\ -}\ - \ - virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->disconnect ( reason,IT_env);\ -}\ - - - - -class Notification_ReceiverProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Notification_ReceiverProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Event_Comm_Notification_Receiver_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -static Notification_ReceiverProxyFactoryClass Notification_ReceiverProxyFactory; - - - -#endif - - -#ifndef _Event_Comm_Notifier_defined -#define _Event_Comm_Notifier_defined -class Notifier_dispatch : public virtual CORBA::PPTR { -public: - - Notifier_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Notifier_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notifier_dispatch () {} - - Notifier_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notifier_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class Notifier; - -#ifndef Event_Comm_NotifierPtr -#define Event_Comm_NotifierPtr - - typedef Notifier* Notifier_ptr; - - typedef Notifier* NotifierRef; - -#endif - - -#ifndef Event_Comm_NotifierForwH -#define Event_Comm_NotifierForwH -static CORBA::ObjectRef Notifier_getBase (void *); -static void Notifier_release (Notifier *, CORBA::Environment &IT_env); -static void Notifier_release (Notifier_ptr); -static Notifier* Notifier_duplicate (Notifier_ptr, CORBA::Environment &IT_env); -static Notifier* Notifier_duplicate (Notifier_ptr ); -static Notifier_ptr Notifier_nil (CORBA::Environment &IT_env); -static Notifier_ptr Notifier_nil (); -#endif -#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier" - - -class Notifier; - - typedef Notifier NotifierProxy; -#define Event_Comm_Notifier_IR "Event_Comm_Notifier" -#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier" - -#ifndef Event_Comm_NotifierPtr -#define Event_Comm_NotifierPtr - - typedef Notifier* Notifier_ptr; - - typedef Notifier* NotifierRef; - -#endif - -class Notifier: public virtual CORBA::Object { -public: - Notifier (char *IT_OR); - Notifier (ObjectReference *IT_OR); - Notifier () : CORBA::Object (1) {} -protected: - Notifier_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Notifier_ptr _duplicate( - Notifier_ptr obj, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - if (CORBA::is_nil(obj, IT_env)) { - IT_raise.maybeRaise (); - return (obj); - } - Notifier_ptr IT_obj = obj->__duplicate (IT_env); - IT_raise.maybeRaise(); - return IT_obj; - } -public: - static Notifier* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notifier* _bind (CORBA::Environment &IT_env); - static Notifier* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notifier* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notifier_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - IT_raise.maybeRaise(); - return (Notifier_ptr) CORBA::OBJECT_NIL;} - virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - - static const CORBA::TypeCode_ptr _tc_Notifier; - - static const CORBA::TypeCode_ptr _tc_NotifierRef; - -#ifndef Event_Comm_NotifierVarH -#define Event_Comm_NotifierVarH - -#ifndef Event_Comm_NotifiervPtr -#define Event_Comm_NotifiervPtr -typedef Notifier* Notifier_vPtr; -#endif - -class Notifier_var : public CORBA::_var -{ - public: - - Notifier_var () { - _ptr = Notifier_nil (); - } - - Notifier_var (Notifier *IT_p) { - _ptr = IT_p; - } - - Notifier_var (const Notifier_var &IT_s) { - _ptr = Notifier_duplicate (IT_s._ptr); - } - - Notifier_var &operator= (Notifier *IT_p) { - Notifier_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Notifier_var &operator= (const Notifier_var &IT_s) { - Notifier_release (_ptr); - _ptr = Notifier_duplicate (IT_s._ptr); - return (*this); - } - - ~Notifier_var () { - Notifier_release (_ptr); - } - - Notifier* operator-> () { - return _ptr; - } - - operator const Notifier_vPtr () const { return _ptr;} - operator Notifier_vPtr& () { return _ptr;} - - protected: - Notifier *_ptr; - private: - Notifier_var &operator= (const CORBA::_var &IT_s); - Notifier_var (const CORBA::_var &IT_s); - Notifier_var &operator= (const CORBA::_mgr &IT_s); - Notifier_var &operator= (const CORBA::_SeqElem &IT_s); - Notifier_var (const CORBA::_mgr &IT_s); - Notifier_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Event_Comm_NotifierMgrH -#define Event_Comm_NotifierMgrH - -class Notifier_mgr : public CORBA::_mgr -{ - public: - - Notifier_mgr () { - _ptr = Notifier_nil (); - _release = 1; - } - - Notifier_mgr (const Notifier_mgr &IT_s) { - _ptr = Notifier_duplicate (IT_s._ptr); - _release = 1; - } - - Notifier_mgr &operator= (Notifier *IT_p) { - if (_ptr && _release) - Notifier_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Notifier_mgr &operator= (const Notifier_mgr &IT_s) { - if (_ptr && _release) - Notifier_release (_ptr); - _ptr = Notifier_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Notifier_mgr &operator= (const Notifier_var &IT_s) { - if (_ptr && _release) - Notifier_release (_ptr); - _ptr = Notifier_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Notifier_mgr () { - if (_release) - Notifier_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - CORBA::Environment env; - CORBA::EnvExcRaiser IT_raise (&env); - return (!(CORBA::is_nil((CORBA::Object*) _ptr, env))); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Notifier* () const { - return (Notifier*) _ptr; - } - - Notifier *_ptr; - - protected: - - unsigned char _release; -}; - -#endif - -#ifndef Event_Comm_NotifierSeqElemH -#define Event_Comm_NotifierSeqElemH - -class Notifier_SeqElem : public CORBA::_SeqElem -{ - public: - - Notifier_SeqElem (Event_Comm::Notifier_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Notifier_SeqElem &operator= (Event_Comm::Notifier_ptr IT_p) { - if (!_ptr) - return (*this); - if (*(_ptr) && _release) - Notifier_release (*(_ptr)); - *(_ptr) = IT_p; - return (*this); - } - - Notifier_SeqElem &operator= (const Notifier_SeqElem &IT_s) { - if (!_ptr|| !IT_s._ptr) - return (*this); - if (*(_ptr) && _release) - Notifier_release (*(_ptr)); - *(_ptr) = Notifier_duplicate(*(IT_s._ptr)); - return (*this); - } - - operator Event_Comm::Notifier_ptr () const -{ - if (!_ptr) - return (Notifier_nil()); - return (Event_Comm::Notifier_ptr) (*_ptr); - } - - Notifier_ptr operator->() const { return *_ptr;} - - protected: - Event_Comm::Notifier_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Event_Comm_Notifier(X) Event_Comm_Notifier##X - -#define DEF_TIE_Event_Comm_Notifier(X) \ - class Event_Comm_Notifier##X : public virtual Event_Comm::Notifier { \ - X* m_obj; \ - public: \ - \ - Event_Comm_Notifier##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Event_Comm::Notifier(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new Event_Comm::Notifier_dispatch \ - (( Event_Comm::Notifier*)this,(CORBA::Object*)this,m,l,Event_Comm_Notifier_IR,m_obj); \ - } \ - Event_Comm_Notifier##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Event_Comm::Notifier(), CORBA::Object () { \ - m_pptr = new Event_Comm::Notifier_dispatch \ - (( Event_Comm::Notifier*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notifier_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Event_Comm_Notifier##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_disconnect ( reason,IT_env);\ -}\ - \ - virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_notification ( notification,IT_env);\ -}\ - \ - virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - \ - virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - \ - }; - - -#define QUALS_Event_Comm_Notifier \ - virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_disconnect ( reason,IT_env);\ -}\ - \ - virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_notification ( notification,IT_env);\ -}\ - \ - virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - \ - virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - - - - -class NotifierProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - NotifierProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Event_Comm_Notifier_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -static NotifierProxyFactoryClass NotifierProxyFactory; - - - -#endif - -}; - - -void operator<<= (CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr& IT_t); - - -void operator<<= (CORBA::any &IT_a, Event_Comm::Notifier_ptr IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notifier_ptr& IT_t); - - -void operator<<= (CORBA::any &IT_a, const Event_Comm::Notification& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification*& IT_t); - - -#endif diff --git a/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h b/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h deleted file mode 100644 index 3775d071683..00000000000 --- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Event_Comm_i.h -// -// = DESCRIPTION -// Class interface for the implementation of the distributed -// event notification mechanism. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _EVENT_COMM_I_H -#define _EVENT_COMM_I_H - -#include "Notification_Receiver_i.h" -#include "Notifier_i.h" - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -// Tie the Notification_Receiver and Notifier implementation classes -// together with the IDL interface. - -DEF_TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i) -DEF_TIE_Event_Comm_Notifier (Notifier_i) - -#endif /* ACE_HAS_ORBIX */ -#endif /* _EVENT_COMM_I_H */ diff --git a/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h b/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h deleted file mode 100644 index dbcd6671d8f..00000000000 --- a/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notification_Receiver__i.h -// -// = DESCRIPTION -// Class interface for the implementation of the <Notification_Receiver> -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _Notification_Receiver_i_H -#define _Notification_Receiver_i_H - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) -#include "Event_Comm.hh" - -class Notification_Receiver_i - // = TITLE - // Defines the implementation class for event <Notification_Receivers>. - // - // = DESCRIPTION -{ -public: - Notification_Receiver_i (void); - ~Notification_Receiver_i (void); - - virtual void receive_notification (const Event_Comm::Notification ¬ification, - CORBA::Environment &IT_env); - // Pass the <Notification> to the <Notification_Receiver>. - - virtual void disconnect (const char *reason, - CORBA::Environment &IT_env); - // Disconnect the <Notification_Receiver> from the <Notifier>, - // giving it the <reason>. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _Notification_Receiver_i_H */ diff --git a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h b/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h deleted file mode 100644 index 61249d68386..00000000000 --- a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h +++ /dev/null @@ -1,87 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notifier_i.h -// -// = DESCRIPTION -// Class interface for the implementation of the <Notifier> -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _Notifier_i_H -#define _Notifier_i_H - -#include "ace/Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Synch.h" -#include "ace/SString.h" -#include "Event_Comm.hh" - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -// Forward reference. -class Notification_Receiver_Entry; - -class Notifier_i - // = TITLE - // Defines the implementation class for event <Notifiers>. - // - // = DESCRIPTION -{ -public: - enum - { - DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers. - }; - - Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE); - // Initialize a Notifier_i object with the specified size hint. - - void send_disconnect (const char *reason, - CORBA::Environment &IT_env); - // Disconnect all the receivers, giving them the <reason>. - - void send_notification (const Event_Comm::Notification ¬ification, - CORBA::Environment &IT_env); - // Send the <Notification> to all the consumers who - // have subscribed and who match the filtering criteria. - - void subscribe (Event_Comm::Notification_Receiver *notification_receiver, - const char *filtering_criteria, - CORBA::Environment &IT_env); - // Subscribe the <Notification_Receiver> to receive events that - // match <filtering_criteria> applied by the <Notifier>. - - void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver, - const char *filtering_criteria, - CORBA::Environment &IT_env); - // Unsubscribe the <Notification_Receiver>. - -private: - // The following implementation should be replaced - // by a standard container class from STL... - - typedef ACE_Map_Manager <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_MANAGER; - typedef ACE_Map_Iterator <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_ITERATOR; - typedef ACE_Map_Entry <ACE_SString, Notification_Receiver_Entry *> MAP_ENTRY; - - MAP_MANAGER map_; - // Table that maps a <Event_Comm::Notification_Receiver *> to a <Notification_Receiver_Entry *>. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _Notifier_i_H */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh deleted file mode 100644 index 8971738d864..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh +++ /dev/null @@ -1,887 +0,0 @@ -#ifndef Event_Comm_hh -#define Event_Comm_hh -/* $Id$ */ - -#include <CORBA.h> - -#include <string.h> - -class Event_Comm { -public: - -#ifndef Event_Comm_Notification_defined -#define Event_Comm_Notification_defined - - struct Notification { - CORBA::String_mgr tag_; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - static void* IT_anySupport (CORBA::Request &IT_r, - void *&, void*, const CORBA::Flags&); - static const void *IT_fn; - }; - - static const CORBA::TypeCode_ptr _tc_Notification; - -#ifndef Event_Comm_NotificationVarH -#define Event_Comm_NotificationVarH - -#ifndef Event_Comm_NotificationvPtr -#define Event_Comm_NotificationvPtr -typedef Notification* Notification_vPtr; -#endif - -class Notification_var : public CORBA::_var -{ - public: - - Notification_var () { - _ptr = NULL; - } - - Notification_var (Notification *IT_p) { - _ptr = IT_p; - } - - Notification_var (const Notification_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - return; - } - _ptr = new Notification (*(IT_s._ptr)); - } - - Notification_var &operator= (Notification *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Notification_var &operator= (const Notification_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Notification (*(IT_s._ptr)); - return (*this); - } - - ~Notification_var () { - delete _ptr; - } - - Notification* operator-> () { - return _ptr; - } - - operator const Notification_vPtr () const { return _ptr;} - operator Notification_vPtr& () { return _ptr;} - operator Notification& () const { return * _ptr;} - - protected: - Notification *_ptr; - private: - Notification_var &operator= (const CORBA::_var &IT_s); - Notification_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - - -#ifndef _Event_Comm_Notification_Receiver_defined -#define _Event_Comm_Notification_Receiver_defined -class Notification_Receiver_dispatch : public virtual CORBA::PPTR { -public: - - Notification_Receiver_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Notification_Receiver_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notification_Receiver_dispatch () {} - - Notification_Receiver_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notification_Receiver_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class Notification_Receiver; - -#ifndef Event_Comm_Notification_ReceiverPtr -#define Event_Comm_Notification_ReceiverPtr - - typedef Notification_Receiver* Notification_Receiver_ptr; - - typedef Notification_Receiver* Notification_ReceiverRef; - -#endif - - -#ifndef Event_Comm_Notification_ReceiverForwH -#define Event_Comm_Notification_ReceiverForwH -static CORBA::ObjectRef Notification_Receiver_getBase (void *); -static void Notification_Receiver_release (Notification_Receiver *, CORBA::Environment &IT_env); -static void Notification_Receiver_release (Notification_Receiver_ptr); -static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr, CORBA::Environment &IT_env); -static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr ); -static Notification_Receiver_ptr Notification_Receiver_nil (CORBA::Environment &IT_env); -static Notification_Receiver_ptr Notification_Receiver_nil (); -#endif -#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver" - - -class Notification_Receiver; - - typedef Notification_Receiver Notification_ReceiverProxy; -#define Event_Comm_Notification_Receiver_IR "Event_Comm_Notification_Receiver" -#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver" - -#ifndef Event_Comm_Notification_ReceiverPtr -#define Event_Comm_Notification_ReceiverPtr - - typedef Notification_Receiver* Notification_Receiver_ptr; - - typedef Notification_Receiver* Notification_ReceiverRef; - -#endif - -class Notification_Receiver: public virtual CORBA::Object { -public: - Notification_Receiver (char *IT_OR); - Notification_Receiver (ObjectReference *IT_OR); - Notification_Receiver () : CORBA::Object (1) {} -protected: - Notification_Receiver_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Notification_Receiver_ptr _duplicate( - Notification_Receiver_ptr obj, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - if (CORBA::is_nil(obj, IT_env)) { - IT_raise.maybeRaise (); - return (obj); - } - Notification_Receiver_ptr IT_obj = obj->__duplicate (IT_env); - IT_raise.maybeRaise(); - return IT_obj; - } -public: - static Notification_Receiver* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notification_Receiver* _bind (CORBA::Environment &IT_env); - static Notification_Receiver* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notification_Receiver* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notification_Receiver_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - IT_raise.maybeRaise(); - return (Notification_Receiver_ptr) CORBA::OBJECT_NIL;} - virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - - static const CORBA::TypeCode_ptr _tc_Notification_Receiver; - - static const CORBA::TypeCode_ptr _tc_Notification_ReceiverRef; - -#ifndef Event_Comm_Notification_ReceiverVarH -#define Event_Comm_Notification_ReceiverVarH - -#ifndef Event_Comm_Notification_ReceivervPtr -#define Event_Comm_Notification_ReceivervPtr -typedef Notification_Receiver* Notification_Receiver_vPtr; -#endif - -class Notification_Receiver_var : public CORBA::_var -{ - public: - - Notification_Receiver_var () { - _ptr = Notification_Receiver_nil (); - } - - Notification_Receiver_var (Notification_Receiver *IT_p) { - _ptr = IT_p; - } - - Notification_Receiver_var (const Notification_Receiver_var &IT_s) { - _ptr = Notification_Receiver_duplicate (IT_s._ptr); - } - - Notification_Receiver_var &operator= (Notification_Receiver *IT_p) { - Notification_Receiver_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Notification_Receiver_var &operator= (const Notification_Receiver_var &IT_s) { - Notification_Receiver_release (_ptr); - _ptr = Notification_Receiver_duplicate (IT_s._ptr); - return (*this); - } - - ~Notification_Receiver_var () { - Notification_Receiver_release (_ptr); - } - - Notification_Receiver* operator-> () { - return _ptr; - } - - operator const Notification_Receiver_vPtr () const { return _ptr;} - operator Notification_Receiver_vPtr& () { return _ptr;} - - protected: - Notification_Receiver *_ptr; - private: - Notification_Receiver_var &operator= (const CORBA::_var &IT_s); - Notification_Receiver_var (const CORBA::_var &IT_s); - Notification_Receiver_var &operator= (const CORBA::_mgr &IT_s); - Notification_Receiver_var &operator= (const CORBA::_SeqElem &IT_s); - Notification_Receiver_var (const CORBA::_mgr &IT_s); - Notification_Receiver_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Event_Comm_Notification_ReceiverMgrH -#define Event_Comm_Notification_ReceiverMgrH - -class Notification_Receiver_mgr : public CORBA::_mgr -{ - public: - - Notification_Receiver_mgr () { - _ptr = Notification_Receiver_nil (); - _release = 1; - } - - Notification_Receiver_mgr (const Notification_Receiver_mgr &IT_s) { - _ptr = Notification_Receiver_duplicate (IT_s._ptr); - _release = 1; - } - - Notification_Receiver_mgr &operator= (Notification_Receiver *IT_p) { - if (_ptr && _release) - Notification_Receiver_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Notification_Receiver_mgr &operator= (const Notification_Receiver_mgr &IT_s) { - if (_ptr && _release) - Notification_Receiver_release (_ptr); - _ptr = Notification_Receiver_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Notification_Receiver_mgr &operator= (const Notification_Receiver_var &IT_s) { - if (_ptr && _release) - Notification_Receiver_release (_ptr); - _ptr = Notification_Receiver_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Notification_Receiver_mgr () { - if (_release) - Notification_Receiver_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - CORBA::Environment env; - CORBA::EnvExcRaiser IT_raise (&env); - return (!(CORBA::is_nil((CORBA::Object*) _ptr, env))); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Notification_Receiver* () const { - return (Notification_Receiver*) _ptr; - } - - Notification_Receiver *_ptr; - - protected: - - unsigned char _release; -}; - -#endif - -#ifndef Event_Comm_Notification_ReceiverSeqElemH -#define Event_Comm_Notification_ReceiverSeqElemH - -class Notification_Receiver_SeqElem : public CORBA::_SeqElem -{ - public: - - Notification_Receiver_SeqElem (Event_Comm::Notification_Receiver_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Notification_Receiver_SeqElem &operator= (Event_Comm::Notification_Receiver_ptr IT_p) { - if (!_ptr) - return (*this); - if (*(_ptr) && _release) - Notification_Receiver_release (*(_ptr)); - *(_ptr) = IT_p; - return (*this); - } - - Notification_Receiver_SeqElem &operator= (const Notification_Receiver_SeqElem &IT_s) { - if (!_ptr|| !IT_s._ptr) - return (*this); - if (*(_ptr) && _release) - Notification_Receiver_release (*(_ptr)); - *(_ptr) = Notification_Receiver_duplicate(*(IT_s._ptr)); - return (*this); - } - - operator Event_Comm::Notification_Receiver_ptr () const -{ - if (!_ptr) - return (Notification_Receiver_nil()); - return (Event_Comm::Notification_Receiver_ptr) (*_ptr); - } - - Notification_Receiver_ptr operator->() const { return *_ptr;} - - protected: - Event_Comm::Notification_Receiver_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Event_Comm_Notification_Receiver(X) Event_Comm_Notification_Receiver##X - -#define DEF_TIE_Event_Comm_Notification_Receiver(X) \ - class Event_Comm_Notification_Receiver##X : public virtual Event_Comm::Notification_Receiver { \ - X* m_obj; \ - public: \ - \ - Event_Comm_Notification_Receiver##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Event_Comm::Notification_Receiver(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new Event_Comm::Notification_Receiver_dispatch \ - (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,m,l,Event_Comm_Notification_Receiver_IR,m_obj); \ - } \ - Event_Comm_Notification_Receiver##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Event_Comm::Notification_Receiver(), CORBA::Object () { \ - m_pptr = new Event_Comm::Notification_Receiver_dispatch \ - (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notification_Receiver_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Event_Comm_Notification_Receiver##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->receive_notification ( notification,IT_env);\ -}\ - \ - virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->disconnect ( reason,IT_env);\ -}\ - \ - }; - - -#define QUALS_Event_Comm_Notification_Receiver \ - virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->receive_notification ( notification,IT_env);\ -}\ - \ - virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->disconnect ( reason,IT_env);\ -}\ - - - - -class Notification_ReceiverProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Notification_ReceiverProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Event_Comm_Notification_Receiver_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -static Notification_ReceiverProxyFactoryClass Notification_ReceiverProxyFactory; - - - -#endif - - -#ifndef _Event_Comm_Notifier_defined -#define _Event_Comm_Notifier_defined -class Notifier_dispatch : public virtual CORBA::PPTR { -public: - - Notifier_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Notifier_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notifier_dispatch () {} - - Notifier_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - Notifier_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class Notifier; - -#ifndef Event_Comm_NotifierPtr -#define Event_Comm_NotifierPtr - - typedef Notifier* Notifier_ptr; - - typedef Notifier* NotifierRef; - -#endif - - -#ifndef Event_Comm_NotifierForwH -#define Event_Comm_NotifierForwH -static CORBA::ObjectRef Notifier_getBase (void *); -static void Notifier_release (Notifier *, CORBA::Environment &IT_env); -static void Notifier_release (Notifier_ptr); -static Notifier* Notifier_duplicate (Notifier_ptr, CORBA::Environment &IT_env); -static Notifier* Notifier_duplicate (Notifier_ptr ); -static Notifier_ptr Notifier_nil (CORBA::Environment &IT_env); -static Notifier_ptr Notifier_nil (); -#endif -#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier" - - -class Notifier; - - typedef Notifier NotifierProxy; -#define Event_Comm_Notifier_IR "Event_Comm_Notifier" -#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier" - -#ifndef Event_Comm_NotifierPtr -#define Event_Comm_NotifierPtr - - typedef Notifier* Notifier_ptr; - - typedef Notifier* NotifierRef; - -#endif - -class Notifier: public virtual CORBA::Object { -public: - Notifier (char *IT_OR); - Notifier (ObjectReference *IT_OR); - Notifier () : CORBA::Object (1) {} -protected: - Notifier_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Notifier_ptr _duplicate( - Notifier_ptr obj, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - if (CORBA::is_nil(obj, IT_env)) { - IT_raise.maybeRaise (); - return (obj); - } - Notifier_ptr IT_obj = obj->__duplicate (IT_env); - IT_raise.maybeRaise(); - return IT_obj; - } -public: - static Notifier* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notifier* _bind (CORBA::Environment &IT_env); - static Notifier* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notifier* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Notifier_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise (&IT_env); - IT_raise.maybeRaise(); - return (Notifier_ptr) CORBA::OBJECT_NIL;} - virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - - static const CORBA::TypeCode_ptr _tc_Notifier; - - static const CORBA::TypeCode_ptr _tc_NotifierRef; - -#ifndef Event_Comm_NotifierVarH -#define Event_Comm_NotifierVarH - -#ifndef Event_Comm_NotifiervPtr -#define Event_Comm_NotifiervPtr -typedef Notifier* Notifier_vPtr; -#endif - -class Notifier_var : public CORBA::_var -{ - public: - - Notifier_var () { - _ptr = Notifier_nil (); - } - - Notifier_var (Notifier *IT_p) { - _ptr = IT_p; - } - - Notifier_var (const Notifier_var &IT_s) { - _ptr = Notifier_duplicate (IT_s._ptr); - } - - Notifier_var &operator= (Notifier *IT_p) { - Notifier_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Notifier_var &operator= (const Notifier_var &IT_s) { - Notifier_release (_ptr); - _ptr = Notifier_duplicate (IT_s._ptr); - return (*this); - } - - ~Notifier_var () { - Notifier_release (_ptr); - } - - Notifier* operator-> () { - return _ptr; - } - - operator const Notifier_vPtr () const { return _ptr;} - operator Notifier_vPtr& () { return _ptr;} - - protected: - Notifier *_ptr; - private: - Notifier_var &operator= (const CORBA::_var &IT_s); - Notifier_var (const CORBA::_var &IT_s); - Notifier_var &operator= (const CORBA::_mgr &IT_s); - Notifier_var &operator= (const CORBA::_SeqElem &IT_s); - Notifier_var (const CORBA::_mgr &IT_s); - Notifier_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Event_Comm_NotifierMgrH -#define Event_Comm_NotifierMgrH - -class Notifier_mgr : public CORBA::_mgr -{ - public: - - Notifier_mgr () { - _ptr = Notifier_nil (); - _release = 1; - } - - Notifier_mgr (const Notifier_mgr &IT_s) { - _ptr = Notifier_duplicate (IT_s._ptr); - _release = 1; - } - - Notifier_mgr &operator= (Notifier *IT_p) { - if (_ptr && _release) - Notifier_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Notifier_mgr &operator= (const Notifier_mgr &IT_s) { - if (_ptr && _release) - Notifier_release (_ptr); - _ptr = Notifier_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Notifier_mgr &operator= (const Notifier_var &IT_s) { - if (_ptr && _release) - Notifier_release (_ptr); - _ptr = Notifier_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Notifier_mgr () { - if (_release) - Notifier_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - CORBA::Environment env; - CORBA::EnvExcRaiser IT_raise (&env); - return (!(CORBA::is_nil((CORBA::Object*) _ptr, env))); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Notifier* () const { - return (Notifier*) _ptr; - } - - Notifier *_ptr; - - protected: - - unsigned char _release; -}; - -#endif - -#ifndef Event_Comm_NotifierSeqElemH -#define Event_Comm_NotifierSeqElemH - -class Notifier_SeqElem : public CORBA::_SeqElem -{ - public: - - Notifier_SeqElem (Event_Comm::Notifier_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Notifier_SeqElem &operator= (Event_Comm::Notifier_ptr IT_p) { - if (!_ptr) - return (*this); - if (*(_ptr) && _release) - Notifier_release (*(_ptr)); - *(_ptr) = IT_p; - return (*this); - } - - Notifier_SeqElem &operator= (const Notifier_SeqElem &IT_s) { - if (!_ptr|| !IT_s._ptr) - return (*this); - if (*(_ptr) && _release) - Notifier_release (*(_ptr)); - *(_ptr) = Notifier_duplicate(*(IT_s._ptr)); - return (*this); - } - - operator Event_Comm::Notifier_ptr () const -{ - if (!_ptr) - return (Notifier_nil()); - return (Event_Comm::Notifier_ptr) (*_ptr); - } - - Notifier_ptr operator->() const { return *_ptr;} - - protected: - Event_Comm::Notifier_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Event_Comm_Notifier(X) Event_Comm_Notifier##X - -#define DEF_TIE_Event_Comm_Notifier(X) \ - class Event_Comm_Notifier##X : public virtual Event_Comm::Notifier { \ - X* m_obj; \ - public: \ - \ - Event_Comm_Notifier##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Event_Comm::Notifier(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new Event_Comm::Notifier_dispatch \ - (( Event_Comm::Notifier*)this,(CORBA::Object*)this,m,l,Event_Comm_Notifier_IR,m_obj); \ - } \ - Event_Comm_Notifier##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Event_Comm::Notifier(), CORBA::Object () { \ - m_pptr = new Event_Comm::Notifier_dispatch \ - (( Event_Comm::Notifier*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notifier_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Event_Comm_Notifier##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_disconnect ( reason,IT_env);\ -}\ - \ - virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_notification ( notification,IT_env);\ -}\ - \ - virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - \ - virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - \ - }; - - -#define QUALS_Event_Comm_Notifier \ - virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_disconnect ( reason,IT_env);\ -}\ - \ - virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->send_notification ( notification,IT_env);\ -}\ - \ - virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - \ - virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ - m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\ -}\ - - - - -class NotifierProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - NotifierProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Event_Comm_Notifier_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -static NotifierProxyFactoryClass NotifierProxyFactory; - - - -#endif - -}; - - -void operator<<= (CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr& IT_t); - - -void operator<<= (CORBA::any &IT_a, Event_Comm::Notifier_ptr IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notifier_ptr& IT_t); - - -void operator<<= (CORBA::any &IT_a, const Event_Comm::Notification& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification*& IT_t); - - -#endif diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl deleted file mode 100644 index de8fa2cada2..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Event_Comm.idl -// -// = DESCRIPTION -// The CORBA IDL module for distributed event notification. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (_EVENT_COMM_IDL) -#define _EVENT_COMM_IDL - -module Event_Comm -{ - // = TITLE - // The CORBA IDL module for distributed event notification. - - struct Notification - { - // = TITLE - // Defines the interface for an event <Notification>. - // - // = This is the type passed by the Notifier to the Notification_Receiver. - // Since it contains an <any>, it can hold any values. Naturally, - // the consumer must understand how to interpret this! - - string tag_; - // Tag for the notification. - - any value_; - // A notification can contain anything. - - Object object_ref_; - // Object reference for callbacks. - }; - - interface Notification_Receiver - // = TITLE - // Defines the interface for a <Notification_Receiver> of events. - // Note that all operations are <oneway> to avoid blocking. - { - void receive_notification (in Notification notification); - // Inform the <Notification_Receiver> that <event> has occurred. - - void disconnect (in string reason); - // Disconnect the <Notification_Receiver> from the <Notifier>, - // giving it the <reason>. - }; - - interface Notifier - { - // = TITLE - // Defines the interface for a <Notifier> of events. - - void send_disconnect (in string reason); - // Disconnect all the receivers, giving them the <reason>. - - void send_notification (in Notification notification); - // Send the <Notification> to all the consumers who - // have subscribed and who match the filtering criteria. - - void subscribe (in Notification_Receiver notification_receiver, - in string filtering_criteria); - // Subscribe the <Notification_Receiver> to receive events that - // match the regular expresssion <filtering_criteria> applied by - // the <Notifier>. If <filtering_criteria> is "" then all events - // are matched. - - void unsubscribe (in Notification_Receiver notification_receiver, - in string filtering_criteria); - // Unsubscribe the <Notification_Receiver> that matches the - // filtering criteria. If <filtering_criteria> is "" then all - // <Notification_Receivers> with the matching object reference are - // removed. - }; -}; - -#endif /* _EVENT_COMM_IDL */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp deleted file mode 100644 index 973c508fb19..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp +++ /dev/null @@ -1,351 +0,0 @@ -// $Id$ - -#include "Event_Comm.hh" - -ACE_RCSID(libsrc, Event_CommC, "$Id$") - -#ifndef Event_Comm_Notification_Ops -#define Event_Comm_Notification_Ops - -void Event_Comm::Notification:: encodeOp (CORBA::Request &IT_r) const { - IT_r.encodeStringOp (tag_); -} - -void Event_Comm::Notification:: decodeOp (CORBA::Request &IT_r) { - IT_r.decodeStringOp(tag_); -} - -void Event_Comm::Notification:: decodeInOutOp (CORBA::Request &IT_r) { - IT_r.decodeInOutStrOp(tag_, 0); -} - -void* Event_Comm::Notification:: IT_anySupport (CORBA::Request &IT_r, - void *& IT_v, void *IT_to, const CORBA::Flags& IT_f) { - Event_Comm::Notification* IT_l = (Event_Comm::Notification*)IT_v; - - if (IT_f.isSetAll (CORBA::ARG_INOUT)) { - if (!IT_l) - IT_l = new Event_Comm::Notification(); - IT_l -> decodeInOutOp (IT_r); - IT_v = IT_l; - } - else if (IT_f.isSet (CORBA::ARG_IN)) { - IT_l -> encodeOp (IT_r); - } - else if (IT_f.isSet (CORBA::ARG_OUT)) { - if (!IT_l) - IT_l = new Event_Comm::Notification(); - IT_l -> decodeOp (IT_r); - IT_v = IT_l; - } - else if (IT_f.isSet (CORBA::_ANY_ASSIGN)) { - Event_Comm::Notification*IT_s = IT_to ? (Event_Comm::Notification*)IT_to : new Event_Comm::Notification; - *IT_s = *IT_l; return IT_s; - } - else if (IT_f.isSet (CORBA::_ANY_DELETE)) { - if (IT_to) IT_l->Event_Comm::Notification::~Notification(); - else delete IT_l; - return NULL; - } - else if (IT_f.isSet (CORBA::_ANY_SIZEOF)) { - return (void*) (sizeof (Event_Comm::Notification)); - } - else if (IT_f.isNil ()) { - if (!IT_l) - IT_l = new Event_Comm::Notification(); - IT_l -> decodeOp (IT_r); - IT_v = IT_l; - } - return NULL; -} - -const void *Event_Comm::Notification:: IT_fn = -CORBA::anyTable.record ("Event_Comm::Notification", &Event_Comm::Notification:: IT_anySupport); - -Event_Comm::Notification &Event_Comm::Notification:: operator= (const Event_Comm::IONANC_Notification& IT_p) { - this->operator= (*(Event_Comm::Notification*) &IT_p); - return (*this); -} - -Event_Comm::Notification:: operator Event_Comm::IONANC_Notification () { - Event_Comm::IONANC_Notification tmp; - memset (&tmp, 0, sizeof(tmp)); - ((Event_Comm::Notification *) &tmp)->operator= (*this); - return tmp; -} - -Event_Comm::Notification:: operator const Event_Comm::IONANC_Notification () const { - Event_Comm::IONANC_Notification tmp; - memset (&tmp, 0, sizeof(tmp)); - ((Event_Comm::Notification *) &tmp)->operator= (*this); - return tmp; -} - -Event_Comm::Notification::~Notification () { - if (tag_) delete [] tag_; -} - -Event_Comm::Notification:: Notification (const Event_Comm::Notification &IT_s) - { - if (IT_s.tag_) { - tag_=new char [strlen(IT_s.tag_)+1]; - strcpy (tag_, IT_s.tag_); - } - else { - tag_ = NULL; - } -} - -Event_Comm::Notification:: Notification () { - tag_ = NULL; -} - -Event_Comm::Notification &Event_Comm::Notification:: operator= (const Event_Comm::Notification& IT_s) { - if (this == &IT_s) return *this; - if (tag_) delete [] tag_; - if (IT_s.tag_) { - tag_=new char [strlen(IT_s.tag_)+1]; - strcpy (tag_, IT_s.tag_); - } - else { - tag_ = NULL; - } - return *this; -} - -Event_Comm::IONANC_Notification:: operator Event_Comm::Notification () { - return (*((Event_Comm::Notification *) this)); -} - -Event_Comm::IONANC_Notification:: operator const Event_Comm::Notification () const { - return (*((const Event_Comm::Notification *) this)); -} - - -#endif -Event_Comm::Notification_Receiver::Notification_Receiver (char *IT_OR) { - m_pptr = new Notification_Receiver_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Event_Comm_Notification_ReceiverForwC -#define Event_Comm_Notification_ReceiverForwC -CORBA::ObjectRef Event_Comm::Notification_Receiver_getBase(void *IT_p){ - return (Event_Comm::Notification_Receiver*)IT_p;} - -void Event_Comm::Notification_Receiver_release (void *IT_p, CORBA::Environment &IT_env) { - ((Event_Comm::Notification_Receiver*)IT_p)->_release(IT_env);} - -Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver_duplicate (void *IT_p, CORBA::Environment &IT_env) { - return ((Event_Comm::Notification_Receiver*)IT_p)->_duplicate(IT_env); } -#endif - - - -Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - Notification_Receiver*IT_p = - (Notification_Receiver*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Event_Comm_Notification_Receiver_IMPL, Event_Comm_Notification_Receiver_IR); - return IT_p ? IT_p->_duplicate () : NULL; } - - - -Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) { - Event_Comm::Notification_Receiver* IT_p = (Event_Comm::Notification_Receiver*)CORBA::Object::_castDown (IT_obj, Event_Comm_Notification_Receiver_IR, IT_env); - return IT_p ? IT_p->_duplicate(IT_env) : NULL; - } - -void* Event_Comm::Notification_ReceiverProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new Notification_Receiver(IT_OR);} - -void* Event_Comm::Notification_ReceiverProxyFactoryClass::New2 () { - return new Notification_Receiver();} - -void* Event_Comm::Notification_ReceiverProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Event_Comm_Notification_Receiver_IR)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((Event_Comm::Notification_Receiver*)IT_p),IT_s)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Event_Comm::Notification_ReceiverProxyFactoryClass::pptr (void *IT_p) { - return ((Event_Comm::Notification_Receiver*)IT_p)->_pptr ();} - -void Event_Comm::Notification_ReceiverProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Event_Comm_Notification_Receiver_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - - void Event_Comm::Notification_Receiver:: receive_notification(const Event_Comm::Notification& notification, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "receive_notification",IT_env,1,1); - if (!IT_r.isException (IT_env)) { - notification.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - } - - void Event_Comm::Notification_Receiver:: disconnect(const char * reason, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "disconnect",IT_env,1,1); - if (!IT_r.isException (IT_env)) { - IT_r.encodeStringOp (reason); - } - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - } - - -Event_Comm::Notification_ReceiverProxyFactoryClass Event_Comm::Notification_ReceiverProxyFactory(1); - - -#ifndef Event_Comm_Notification_Receiver_dispatch_impl - -unsigned char Event_Comm::Notification_Receiver_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Event_Comm::Notification_Receiver"); - return 0; -} - -#endif - -Event_Comm::Notifier::Notifier (char *IT_OR) { - m_pptr = new Notifier_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Event_Comm_NotifierForwC -#define Event_Comm_NotifierForwC -CORBA::ObjectRef Event_Comm::Notifier_getBase(void *IT_p){ - return (Event_Comm::Notifier*)IT_p;} - -void Event_Comm::Notifier_release (void *IT_p, CORBA::Environment &IT_env) { - ((Event_Comm::Notifier*)IT_p)->_release(IT_env);} - -Event_Comm::Notifier* Event_Comm::Notifier_duplicate (void *IT_p, CORBA::Environment &IT_env) { - return ((Event_Comm::Notifier*)IT_p)->_duplicate(IT_env); } -#endif - - - -Event_Comm::Notifier* Event_Comm::Notifier:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - Notifier*IT_p = - (Notifier*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Event_Comm_Notifier_IMPL, Event_Comm_Notifier_IR); - return IT_p ? IT_p->_duplicate () : NULL; } - - - -Event_Comm::Notifier* Event_Comm::Notifier:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Event_Comm::Notifier* Event_Comm::Notifier:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Event_Comm::Notifier* Event_Comm::Notifier::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) { - Event_Comm::Notifier* IT_p = (Event_Comm::Notifier*)CORBA::Object::_castDown (IT_obj, Event_Comm_Notifier_IR, IT_env); - return IT_p ? IT_p->_duplicate(IT_env) : NULL; - } - -void* Event_Comm::NotifierProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new Notifier(IT_OR);} - -void* Event_Comm::NotifierProxyFactoryClass::New2 () { - return new Notifier();} - -void* Event_Comm::NotifierProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Event_Comm_Notifier_IR)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((Event_Comm::Notifier*)IT_p),IT_s)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Event_Comm::NotifierProxyFactoryClass::pptr (void *IT_p) { - return ((Event_Comm::Notifier*)IT_p)->_pptr ();} - -void Event_Comm::NotifierProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Event_Comm_Notifier_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - - void Event_Comm::Notifier:: send_disconnect(const char * reason, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "send_disconnect",IT_env,1,1); - if (!IT_r.isException (IT_env)) { - IT_r.encodeStringOp (reason); - } - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - } - - void Event_Comm::Notifier:: send_notification(const Event_Comm::Notification& notification, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "send_notification",IT_env,1,1); - if (!IT_r.isException (IT_env)) { - notification.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - } - - void Event_Comm::Notifier:: subscribe(Event_Comm::Notification_Receiver* notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "subscribe",IT_env,1,1); - if (!IT_r.isException (IT_env)) { - IT_r << (CORBA::Object*)notification_receiver; - - IT_r.encodeStringOp (filtering_criteria); - } - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - } - - void Event_Comm::Notifier:: unsubscribe(Event_Comm::Notification_Receiver* notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) { - - if (IT_env || m_isNull) return ; - CORBA::Request IT_r (this, "unsubscribe",IT_env,1,1); - if (!IT_r.isException (IT_env)) { - IT_r << (CORBA::Object*)notification_receiver; - - IT_r.encodeStringOp (filtering_criteria); - } - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - } - - -Event_Comm::NotifierProxyFactoryClass Event_Comm::NotifierProxyFactory(1); - - -#ifndef Event_Comm_Notifier_dispatch_impl - -unsigned char Event_Comm::Notifier_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Event_Comm::Notifier"); - return 0; -} - -#endif - diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp deleted file mode 100644 index 724ecc28c63..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp +++ /dev/null @@ -1,166 +0,0 @@ -// $Id$ - -#include "Event_Comm.hh" - -ACE_RCSID(libsrc, Event_CommS, "$Id$") - -#define Event_Comm_Notification_Receiver_dispatch_impl - -unsigned char Event_Comm::Notification_Receiver_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void *IT_pp) { - if (!IT_pp) - IT_pp = m_obj; - const char *IT_s = IT_r.getOperation (); - if (!strcmp(IT_s,"receive_notification")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~receive_notification~+notification{R~Event_Comm::Notification~tag_{0}},>{v},O{}\ -")) - return 1; - Event_Comm::Notification notification; - notification.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((Event_Comm::Notification_Receiver*)IT_pp)->receive_notification ( notification, IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (!strcmp(IT_s,"disconnect")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~disconnect~+reason{0},>{v},O{}\ -")) - return 1; - char * reason; - IT_r.decodeStringOp(reason); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((Event_Comm::Notification_Receiver*)IT_pp)->disconnect ( reason, IT_env); - - delete [] reason; - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Event_Comm_Notifier_dispatch_impl - -unsigned char Event_Comm::Notifier_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void *IT_pp) { - if (!IT_pp) - IT_pp = m_obj; - const char *IT_s = IT_r.getOperation (); - if (!strcmp(IT_s,"send_disconnect")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~send_disconnect~+reason{0},>{v},O{}\ -")) - return 1; - char * reason; - IT_r.decodeStringOp(reason); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((Event_Comm::Notifier*)IT_pp)->send_disconnect ( reason, IT_env); - - delete [] reason; - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (!strcmp(IT_s,"send_notification")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~send_notification~+notification{R~Event_Comm::Notification~tag_{0}},>{v},O{}\ -")) - return 1; - Event_Comm::Notification notification; - notification.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((Event_Comm::Notifier*)IT_pp)->send_notification ( notification, IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (!strcmp(IT_s,"subscribe")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~subscribe~+notification_receiver{O~Event_Comm::Notification_Receiver},+filtering_criteria{0},>{v},O{}\ -")) - return 1; - Event_Comm::Notification_Receiver* notification_receiver; - notification_receiver = (Event_Comm::Notification_Receiver*) IT_r.decodeObjRef (Event_Comm_Notification_Receiver_IR); - if (notification_receiver) notification_receiver->_duplicate (); - - char * filtering_criteria; - IT_r.decodeStringOp(filtering_criteria); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((Event_Comm::Notifier*)IT_pp)->subscribe ( notification_receiver, filtering_criteria, IT_env); - - if (notification_receiver) notification_receiver->_release (); - - delete [] filtering_criteria; - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - - return 1; - } - - else if (!strcmp(IT_s,"unsubscribe")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~unsubscribe~+notification_receiver{O~Event_Comm::Notification_Receiver},+filtering_criteria{0},>{v},O{}\ -")) - return 1; - Event_Comm::Notification_Receiver* notification_receiver; - notification_receiver = (Event_Comm::Notification_Receiver*) IT_r.decodeObjRef (Event_Comm_Notification_Receiver_IR); - if (notification_receiver) notification_receiver->_duplicate (); - - char * filtering_criteria; - IT_r.decodeStringOp(filtering_criteria); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((Event_Comm::Notifier*)IT_pp)->unsubscribe ( notification_receiver, filtering_criteria, IT_env); - - if (notification_receiver) notification_receiver->_release (); - - delete [] filtering_criteria; - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - - return 1; - } - - else if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "Event_CommC.cpp" - diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h deleted file mode 100644 index 8142ac91632..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Event_Comm_i.h -// -// = DESCRIPTION -// Class interface for the implementation of the distributed -// event notification mechanism. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _EVENT_COMM_I_H -#define _EVENT_COMM_I_H - -#include "Notification_Receiver_i.h" -#include "Notifier_i.h" - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -// Tie the <Notification_Receiver> and <Notifier> implementation -// classes together with the IDL interface. - -DEF_TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i) -DEF_TIE_Event_Comm_Notifier (Notifier_i) - -#endif /* ACE_HAS_ORBIX */ -#endif /* _EVENT_COMM_I_H */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Makefile b/apps/Orbix-Examples/Event_Comm/libsrc/Makefile deleted file mode 100644 index 42c32b7c81b..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Makefile +++ /dev/null @@ -1,113 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the Event Communications library -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LIB = libEvent_Comm.a -SHLIB = libEvent_Comm.so - -FILES = Event_CommS \ - Event_CommC \ - Notifier_i \ - Notification_Receiver_i - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VLIB) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Orbix related macros and target settings. -#---------------------------------------------------------------------------- - -ORBIX_BINDIR = $(ORBIX_ROOT)/bin -ORBIX_LIBDIR = $(ORBIX_ROOT)/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) - -IDLFLAGS = -A -s S.cpp -c C.cpp - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -Event_CommS.o: Event_CommS.cpp Event_Comm.hh Event_CommC.cpp -Event_CommC.o: Event_CommC.cpp Event_Comm.hh -Notifier_i.o: Notifier_i.cpp \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - Notification_Receiver_i.h Notifier_i.h \ - ${ACE_ROOT}ace/Map_Manager.h \ - ${ACE_ROOT}ace/SString.h \ - ${ACE_ROOT}ace/SString.i \ - Event_Comm.hh -Notification_Receiver_i.o: Notification_Receiver_i.cpp \ - ${ACE_ROOT}ace/Log_Msg.h \ - ${ACE_ROOT}ace/Log_Record.h \ - ${ACE_ROOT}ace/sysincludes.h \ - ${ACE_ROOT}ace/config.h \ - ${ACE_ROOT}ace/Log_Priority.h \ - ${ACE_ROOT}ace/Log_Record.i \ - ${ACE_ROOT}ace/Log_Msg.i \ - ${ACE_ROOT}ace/Thread_Specific.h \ - ${ACE_ROOT}ace/Synch.h \ - ${ACE_ROOT}ace/Time_Value.h \ - ${ACE_ROOT}ace/Synch_T.h \ - ${ACE_ROOT}ace/Thread_Specific.i \ - ${ACE_ROOT}ace/Service_Config.h \ - ${ACE_ROOT}ace/Reactor.h \ - ${ACE_ROOT}ace/Handle_Set.h \ - ${ACE_ROOT}ace/Handle_Set.i \ - ${ACE_ROOT}ace/Timer_Queue.h \ - ${ACE_ROOT}ace/Event_Handler.h \ - ${ACE_ROOT}ace/Timer_Queue.i \ - ${ACE_ROOT}ace/Signal.h \ - ${ACE_ROOT}ace/Set.h \ - ${ACE_ROOT}ace/Thread.h \ - ${ACE_ROOT}ace/Token.h \ - ${ACE_ROOT}ace/Reactor.i \ - ${ACE_ROOT}ace/Service_Object.h \ - ${ACE_ROOT}ace/Shared_Object.h \ - ${ACE_ROOT}ace/Service_Types.h \ - ${ACE_ROOT}ace/Thread_Manager.h \ - Notification_Receiver_i.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl deleted file mode 100644 index c35b48eb457..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl +++ /dev/null @@ -1,41 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notification.idl -// -// = DESCRIPTION -// This is the CORBA IDL interface for the Event Communication <Notification>. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (_NOTIFICATION_IDL) -#define _NOTIFICATION_IDL - -struct Notification -{ - // = TITLE - // Defines the interface for an event <Notification>. - // - // = This is the type passed by the Notifier to the Notification_Receiver. - // Since it contains an <any>, it can hold any values. Naturally, - // the consumer must understand how to interpret this! - string tag_; - // Tag for the notification. - - any value_; - // A notification can contain anything. - - Object object_ref_; - // Object reference for callbacks. -}; - -#endif /* _NOTIFICATION_IDL */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl deleted file mode 100644 index d182cbd1531..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notification_Receiver.idl -// -// = DESCRIPTION -// The CORBA IDL interface for the Event Communication -// <Notification_Receiver> component. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#include "Notification.idl" - -#ifndef _Notification_Receiver_iDL -#define _Notification_Receiver_iDL - -interface Notification_Receiver -{ - // = TITLE - // Defines the interface for a <Notification_Receiver> of events. - // Note that all operations are <oneway> to avoid blocking. - - void receive_notification (in Notification notification); - // Inform the <Notification_Receiver> that <event> has occurred. - - void disconnect (in string reason); - // Disconnect the <Notification_Receiver> from the <Notifier>, - // giving it the <reason>. -}; - -#endif /* _Notification_Receiver_iDL */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp deleted file mode 100644 index c8f4f82a126..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "ace/Service_Config.h" -#include "Notification_Receiver_i.h" - -ACE_RCSID(libsrc, Notification_Receiver_i, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -Notification_Receiver_i::Notification_Receiver_i (void) -{ -} - -Notification_Receiver_i::~Notification_Receiver_i (void) -{ -} - -// Inform the <Event_Comm::Notification_Receiver> that <event> has occurred. - -void -Notification_Receiver_i::receive_notification - (const Event_Comm::Notification ¬ification, - CORBA::Environment &IT_env) -{ - const char *tmpstr = notification.tag_; - - ACE_DEBUG ((LM_DEBUG, - "**** got notification = %s\n", - tmpstr)); -} - -// Disconnect the <Event_Comm::Notification_Receiver> from the <Event_Comm::Notifier>. - -void -Notification_Receiver_i::disconnect (const char *reason, - CORBA::Environment &IT_env) -{ - ACE_DEBUG ((LM_DEBUG, - "**** got disconnected due to %s\n", - reason)); - ACE_Reactor::end_event_loop (); -} - -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h deleted file mode 100644 index 4466db11c21..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notification_Receiver__i.h -// -// = DESCRIPTION -// Class interface for the implementation of the <Notification_Receiver> -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _Notification_Receiver_i_H -#define _Notification_Receiver_i_H - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) -#include "Event_Comm.hh" - -class Notification_Receiver_i -{ - // = TITLE - // Defines the implementation class for event <Notification_Receivers>. -public: - // = Initialization and termination methods. - Notification_Receiver_i (void); - // Constructor. - - ~Notification_Receiver_i (void); - // Destructor. - - virtual void receive_notification (const Event_Comm::Notification ¬ification, - CORBA::Environment &IT_env); - // Pass the <Notification> to the <Notification_Receiver>. - - virtual void disconnect (const char *reason, - CORBA::Environment &IT_env); - // Disconnect the <Notification_Receiver> from the <Notifier>, - // giving it the <reason>. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _Notification_Receiver_i_H */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl deleted file mode 100644 index a03cf45451f..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notifier.idl -// -// = DESCRIPTION -// This is the CORBA IDL interface for the Event Communication <Notifier>. -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (_Notifier_iDL) -#define _Notifier_iDL - -#include "Notification.idl" -#include "Notification_Receiver.idl" - -interface Notifier -{ - // = TITLE - // Defines the interface for a <Notifier> of events. - - void send_disconnect (in string reason); - // Disconnect all the receivers, giving them the <reason>. - - void send_notification (in Notification notification); - // Send the <Notification> to all the consumers who - // have subscribed and who match the filtering criteria. - - void subscribe (in Notification_Receiver notification_receiver, - in string filtering_criteria); - // Subscribe the <Notification_Receiver> to receive events that - // match <filtering_criteria> applied by the <Notifier>. - - void unsubscribe (in Notification_Receiver notification_receiver); - // Unsubscribe the <Notification_Receiver>. -}; - -#endif /* _Notifier_iDL */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp deleted file mode 100644 index f7c7206fc77..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp +++ /dev/null @@ -1,344 +0,0 @@ -// $Id$ - -#include "Notification_Receiver_i.h" -#include "Notifier_i.h" - -ACE_RCSID(libsrc, Notifier_i, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -class Notification_Receiver_Entry -{ - // = TITLE - // Keeps track of context information associated with - // a <Event_Comm::Notification_Receiver> entry. -public: - Notification_Receiver_Entry (Event_Comm::Notification_Receiver *notification_receiver, - const char *filtering_criteria); - ~Notification_Receiver_Entry (void); - - // = Set/get filtering criteria. - void criteria (const char *criteria); - const char *criteria (void); - - // = Set/get Event_Comm::Notification_Receiver object reference. - Event_Comm::Notification_Receiver *receiver (void); - void receiver (Event_Comm::Notification_Receiver *); - - // = Set/get the compiled regular expression buffer. - const char *regexp (void); - void regexp (char *); - -private: - const char *filtering_criteria_; - // String containing the filtering criteria. - - char *compiled_regexp_; - // Compiled representation of the regular expression (see - // regexpr(3g)). - - Event_Comm::Notification_Receiver *receiver_; - // Object reference for the Event_Comm::Notification_Receiver. -}; - -// = Set/get filtering criteria. - -void -Notification_Receiver_Entry::criteria (const char *criteria) -{ - ACE_OS::free (ACE_MALLOC_T (this->filtering_criteria_)); - this->filtering_criteria_ = ACE_OS::strdup (criteria); -} - -const char * -Notification_Receiver_Entry::criteria (void) -{ - return this->filtering_criteria_; -} - -// = Set/get Event_Comm::Notification_Receiver object reference. - -Event_Comm::Notification_Receiver * -Notification_Receiver_Entry::receiver (void) -{ - return this->receiver_; -} - -void -Notification_Receiver_Entry::receiver (Event_Comm::Notification_Receiver *receiver) -{ - this->receiver_ = receiver; -} - -const char * -Notification_Receiver_Entry::regexp (void) -{ - return this->compiled_regexp_; -} - -void -Notification_Receiver_Entry::regexp (char *regexp) -{ - ACE_OS::free (ACE_MALLOC_T (this->compiled_regexp_)); - this->compiled_regexp_ = regexp; -} - -Notification_Receiver_Entry::Notification_Receiver_Entry (Event_Comm::Notification_Receiver *receiver, - const char *filtering_criteria) - : receiver_ (receiver), - filtering_criteria_ (0), - compiled_regexp_ (0) -{ - char *compile_buffer = 0; - - this->criteria (filtering_criteria); - ACE_ASSERT (this->criteria ()); - - // Check for wildcard case first. - if (ACE_OS::strcmp (filtering_criteria, "") == 0) - compile_buffer = ACE_OS::strdup (""); - else - // Compile the regular expression (the 0's cause ACE_OS::compile - // to allocate space). - compile_buffer = ACE_OS::compile (filtering_criteria, 0, 0); - - // Should throw an exception here! - ACE_ASSERT (compile_buffer != 0); - - this->regexp (compile_buffer); - ACE_ASSERT (this->regexp ()); - - // Increment the reference count since we are keeping a copy of - // this... - this->receiver_->_duplicate (this->receiver_); -} - -Notification_Receiver_Entry::~Notification_Receiver_Entry (void) -{ - ACE_OS::free (this->filtering_criteria_); - ACE_OS::free (this->compiled_regexp_); - // Decrement the object reference count. - CORBA::release (this->receiver_); -} - -Notifier_i::Notifier_i (size_t size) - : map_ (size) -{ -} - -// Add a new receiver to the table, being careful to check for -// duplicate entries. A receiver is considered a duplicate under -// the following circumstances: -// 1. It has the same marker name and the same filtering criteria -// 2. It has the same marker name and its filtering criteria is "" (the wild card). - -void -Notifier_i::subscribe (Event_Comm::Notification_Receiver *receiver_ref, - const char *filtering_criteria, - CORBA::Environment &IT_env) -{ - ACE_DEBUG ((LM_DEBUG, - "in Notifier_i::subscribe for %s with filtering criteria \"%s\"\n", - receiver_ref->_marker (), - filtering_criteria)); - ACE_SString key (receiver_ref->_marker ()); - MAP_ITERATOR mi (this->map_); - - // Try to locate an entry using its marker name (which should be - // unique across the system). If we don't find the entry, or if the - // filtering criteria is different that is good news since we - // currently don't allow duplicates... In particular, if @@ Should - // duplicates be allowed? - - for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ()) - { - Notification_Receiver_Entry *nr_entry = me->int_id_; - - // Check for a duplicate entry. - if (key == me->ext_id_ - && (ACE_OS::strcmp (filtering_criteria, "") == 0 - || ACE_OS::strcmp (filtering_criteria, nr_entry->criteria ()) == 0)) - { - // Inform the caller that the - // Event_Comm::Notification_Receiver * is already being - // used. - - errno = EADDRINUSE; - ACE_ERROR ((LM_ERROR, - "duplicate entry for receiver %s with criteria \"%s\"", - receiver_ref->_marker (), - filtering_criteria)); - // Raise exception here??? - return; - } - } - - // If we get this far then we didn't find a duplicate, so add the - // new entry! - Notification_Receiver_Entry *nr_entry; - ACE_NEW (nr_entry, - Notification_Receiver_Entry (receiver_ref, - filtering_criteria)); - // Try to add new <Notification_Receiver_Entry> to the map. - else if (this->map_.bind (key, nr_entry) == -1) - { - // Prevent memory leaks. - delete nr_entry; - // Raise exception here... - ACE_ERROR ((LM_ERROR, - "%p\n", - "bind failed")); - } -} - -// Remove a receiver from the table. - -void -Notifier_i::unsubscribe (Event_Comm::Notification_Receiver *receiver_ref, - const char *filtering_criteria, - CORBA::Environment &IT_env) -{ - ACE_DEBUG ((LM_DEBUG, - "in Notifier_i::unsubscribe for %s\n", - receiver_ref->_marker ())); - Notification_Receiver_Entry *nr_entry = 0; - ACE_SString key; - MAP_ITERATOR mi (this->map_); - int found = 0; - - // Don't make a copy since we are deleting... - key.rep ((char *) receiver_ref->_marker ()); - - // Locate <Notification_Receiver_Entry> and free up resources. @@ - // Note, we don't properly handle deallocation of KEYS! - - for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ()) - { - if (key == me->ext_id_ - && (ACE_OS::strcmp (filtering_criteria, "") == 0 - || ACE_OS::strcmp (filtering_criteria, nr_entry->criteria ()) == 0)) - { - ACE_DEBUG ((LM_DEBUG, - "removed entry %s with criteria \"%s\"\n", - receiver_ref->_marker (), - filtering_criteria)); - found = 1; - // @@ This is a hack, we need a better approach! - if (this->map_.unbind (key, nr_entry) == -1) - ACE_ERROR ((LM_ERROR, - "unbind failed for %s\n", - receiver_ref->_marker ())); - else - delete nr_entry; - } - } - - if (found == 0) - ACE_ERROR ((LM_ERROR, - "entry %s with criteria \"%s\" not found\n", - receiver_ref->_marker (), - filtering_criteria)); -} - -// Disconnect all the receivers, giving them the <reason>. - -void -Notifier_i::send_disconnect (const char *reason, - CORBA::Environment &IT_env) -{ - ACE_DEBUG ((LM_DEBUG, - "in Notifier_i::send_disconnect = %s\n", - reason)); - MAP_ITERATOR mi (this->map_); - int count = 0; - - // Notify all the receivers, taking into account the filtering criteria. - - for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ()) - { - Event_Comm::Notification_Receiver *receiver_ref = me->int_id_->receiver (); - ACE_ASSERT (receiver_ref->_marker () != 0); - ACE_DEBUG ((LM_DEBUG, - "disconnecting client %s\n", - receiver_ref->_marker ())); - TRY - { - receiver_ref->disconnect (reason, IT_X); - } - CATCHANY - { - cerr << "Unexpected exception " << IT_X << endl; - } - ENDTRY; - delete me->int_id_; - delete me->ext_id_.rep (); - count++; - } - - this->map_.close (); - if (count == 1) - ACE_DEBUG ((LM_DEBUG, - "there was 1 receiver\n")); - else - ACE_DEBUG ((LM_DEBUG, - "there were %d receivers\n", - count)); -} - -// Notify all receivers whose filtering criteria match the event. - -void -Notifier_i::send_notification (const Event_Comm::Notification ¬ification, - CORBA::Environment &IT_env) -{ - ACE_DEBUG ((LM_DEBUG, - "in Notifier_i::send_notification = %s\n", - notification.tag_)); - MAP_ITERATOR mi (this->map_); - int count = 0; - - // Notify all the receivers. - // @@ Later on we need to consider the filtering_criteria! - - for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ()) - { - Event_Comm::Notification_Receiver *receiver_ref = me->int_id_->receiver (); - ACE_ASSERT (receiver_ref->_marker () != 0); - const char *regexp = me->int_id_->regexp (); - const char *criteria = me->int_id_->criteria (); - ACE_ASSERT (regexp); - ACE_ASSERT (criteria); - - // Do a regular expression comparison to determine matching. - if (ACE_OS::strcmp ("", criteria) == 0 // Everything matches the wildcard. -// || ACE_OS::strcmp (notification.tag_, regexp) == 0) - || ACE_OS::step (notification.tag_, regexp) != 0) - { - ACE_DEBUG ((LM_DEBUG, - "string %s matched regexp \"%s\" for client %s\n", - notification.tag_, me->int_id_->criteria (), - receiver_ref->_marker ())); - TRY - { - receiver_ref->receive_notification (notification, IT_X); - } - CATCHANY - { - cerr << "Unexpected exception " << IT_X << endl; - continue; - } - ENDTRY; - count++; - } - } - - if (count == 1) - ACE_DEBUG ((LM_DEBUG, - "there was 1 receiver\n")); - else - ACE_DEBUG ((LM_DEBUG, - "there were %d receivers\n", - count)); -} - -#endif /* ACE_HAS_ORBIX */ diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h deleted file mode 100644 index dd1d17ef16c..00000000000 --- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// EventComm -// -// = FILENAME -// Notifier_i.h -// -// = DESCRIPTION -// Class interface for the implementation of the <Notifier> -// -// = AUTHOR -// Douglas C. Schmidt (schmidt@cs.wustl.edu) -// -// ============================================================================ - -#ifndef _Notifier_i_H -#define _Notifier_i_H - -#include "ace/Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Synch.h" -#include "ace/SString.h" -#include "Event_Comm.hh" - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -// Forward reference. -class Notification_Receiver_Entry; - -class Notifier_i -{ - // = TITLE - // Defines the implementation class for event <Notifiers>. -public: - enum - { - DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers. - }; - - Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE); - // Initialize a Notifier_i object with the specified size hint. - - void send_disconnect (const char *reason, - CORBA::Environment &IT_env); - // Disconnect all the receivers, giving them the <reason>. - - void send_notification (const Event_Comm::Notification ¬ification, - CORBA::Environment &IT_env); - // Send the <Notification> to all the consumers who have subscribed - // and who match the filtering criteria. - - void subscribe (Event_Comm::Notification_Receiver *notification_receiver, - const char *filtering_criteria, - CORBA::Environment &IT_env); - // Subscribe the <Notification_Receiver> to receive events that - // match <filtering_criteria> applied by the <Notifier>. - - void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver, - const char *filtering_criteria, - CORBA::Environment &IT_env); - // Unsubscribe the <Notification_Receiver>. - -private: - // The following implementation should be replaced - // by a standard container class from STL... - - typedef ACE_Map_Manager <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> - MAP_MANAGER; - typedef ACE_Map_Iterator <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> - MAP_ITERATOR; - typedef ACE_Map_Entry <ACE_SString, Notification_Receiver_Entry *> - MAP_ENTRY; - - MAP_MANAGER map_; - // Table that maps a <Event_Comm::Notification_Receiver *> to a - // <Notification_Receiver_Entry *>. -}; - -#endif /* ACE_HAS_ORBIX */ -#endif /* _Notifier_i_H */ diff --git a/apps/Orbix-Examples/Logger/Logger.cpp b/apps/Orbix-Examples/Logger/Logger.cpp deleted file mode 100644 index 020dd6a38ae..00000000000 --- a/apps/Orbix-Examples/Logger/Logger.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// $Id$ - -#include <iostream.h> - -#include "Logger.h" - -ACE_RCSID(Logger, Logger, "$Id$") - -Logger::~Logger (void) -{ - // Release and free up the object reference. - this->logref_->_release (); - - // Must use free since we used strdup(3C). - ACE_OS::free (ACE_MALLOC_T (this->server_)); -} - -// Constructor takes the name of the host where the server -// is located. If server == 0, then use the locator service. - -Logger::Logger (char *server, size_t max_message_size) - : server_ (server == 0 ? 0 : ACE_OS::strdup (server)), - ip_ (0), - pid_ (ACE_OS::getpid ()) -{ - ACE_utsname name; - -#if 0 - // Could also use sysinfo(2)... - - ACE_OS::sysinfo (SI_HOSTNAME, clienthost, MAXHOSTNAMELEN); -#endif - - ACE_OS::uname (&name); - hostent *hp = ACE_OS::gethostbyname (name.nodename); - - if (hp != 0) - memcpy ((void *) &this->ip_, (void *) hp->h_addr, hp->h_length); - - TRY { - // First bind to the logger object. - // argv[1] has the hostname (if any) of the target logger object; - // The default is the local host: - this->logref_ = profile_logger::_bind ("", this->server_, IT_X); - } CATCHANY { - // an error occurred while trying to bind to the logger object. - cerr << "Bind to object failed" << endl; - cerr << "Unexpected exception " << IT_X << endl; - } ENDTRY; - // Pre-assign certain values that don't change. - this->log_msg_.app_id = this->pid_; - this->log_msg_.host_addr = this->ip_; - this->log_msg_.msg_data._maximum = max_message_size; -} - -// Transmit the message to the logging server. - -int -Logger::log (logger::Log_Priority priority, char message[], int length) -{ - // The following values change with every logging operation. - this->log_msg_.type = priority; - this->log_msg_.time = ACE_OS::time (0); - this->log_msg_.msg_data._length = length; - this->log_msg_.msg_data._buffer = message; - - TRY { - // Try to log a message. - this->logref_->log (this->log_msg_, IT_X); - } CATCHANY { - // an error occurred while trying to read the height and width: - cerr << "call to log failed" << endl; - cerr << "Unexpected exception " << IT_X << endl; - return -1; - } ENDTRY; - // success. - return 0; -} - -// Get the value of verbose. - -int -Logger::verbose (void) -{ - int verbosity = 0; - - TRY { - verbosity = this->logref_->verbose (); - } CATCHANY { - return -1; - } ENDTRY; - return verbosity; -} - -// Set the value of verbose. - -int -Logger::verbose (int value) -{ - int verbosity = 0; - - TRY { - this->logref_->verbose (value); - } CATCHANY { - return -1; - } ENDTRY; - return 0; -} - -// Activate the timer. - -int -Logger::start_timer (void) -{ - TRY { - this->logref_->start_timer (); - } CATCHANY { - return -1; - } ENDTRY; - return 0; -} - -// Deactivate the timer and return the elapsed time. - -int -Logger::stop_timer (profile_logger::Elapsed_Time &et) -{ - TRY { - this->logref_->stop_timer (et); - } CATCHANY { - return -1; - } ENDTRY; - return 0; -} diff --git a/apps/Orbix-Examples/Logger/Logger.h b/apps/Orbix-Examples/Logger/Logger.h deleted file mode 100644 index a233204f362..00000000000 --- a/apps/Orbix-Examples/Logger/Logger.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -#ifndef _LOGGER_H -#define _LOGGER_H - -#include "ace/OS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "logger.hh" - -class Logger - // = TITLE - // Wrapper class that uses CORBA object reference - // as the transport mechanism to simplify implementation. -{ -public: - Logger (char *server, size_t max_message_size); - // Constructor takes the name of the host where the server - // is located. If server == 0, then use the locator service. - - ~Logger (void); - // Destructor releases the object reference. - - int log (logger::Log_Priority prio, char msg[], int len); - // Log a <msg> of length <len> with priority <prio>. - - int verbose (void); - // Report current level of verbosity. - - int verbose (int verbosity); - // Set the level of verbosity (0 == no verbose, > 0 == verbose). - - int start_timer (void); - // Activate the timer. - - int stop_timer (profile_logger::Elapsed_Time &et); - // Deactivate the timer and return the elapsed time. - -private: - profile_logger *logref_; - // CORBA object reference proxy. - - int pid_; - // Process ID. - - u_long ip_; - // IP address of self. - - logger::Log_Record log_msg_; - // Cache certain non-changing values to avoid recomputing them. - - char *server_; - // Name of server that we are bound to. -}; - -#endif /* _LOGGER_H */ diff --git a/apps/Orbix-Examples/Logger/Makefile b/apps/Orbix-Examples/Logger/Makefile deleted file mode 100644 index 2feca6307a6..00000000000 --- a/apps/Orbix-Examples/Logger/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the Logger. -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SVR_OBJS = loggerS.o logger_i.o server.o -CLT_OBJS = loggerC.o client.o Logger.o - -LDLIBS = - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Orbix related macros and target settings. -#---------------------------------------------------------------------------- - -ORBIX_BINDIR = $(ORBIX_ROOT)/bin -ORBIX_LIBDIR = $(ORBIX_ROOT)/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client server - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS) - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/apps/Orbix-Examples/Logger/Orbix.hostgroups b/apps/Orbix-Examples/Logger/Orbix.hostgroups deleted file mode 100644 index 013636e79c4..00000000000 --- a/apps/Orbix-Examples/Logger/Orbix.hostgroups +++ /dev/null @@ -1 +0,0 @@ -all:tango diff --git a/apps/Orbix-Examples/Logger/Orbix.hosts b/apps/Orbix-Examples/Logger/Orbix.hosts deleted file mode 100644 index 2e11d889bed..00000000000 --- a/apps/Orbix-Examples/Logger/Orbix.hosts +++ /dev/null @@ -1,3 +0,0 @@ -profile_logger:tango: -logger:tango: -IT_daemon:tango: diff --git a/apps/Orbix-Examples/Logger/README b/apps/Orbix-Examples/Logger/README deleted file mode 100644 index 19b1db681f2..00000000000 --- a/apps/Orbix-Examples/Logger/README +++ /dev/null @@ -1,35 +0,0 @@ -The directory contains the source code that implements an Orbix -version of the distributed Logger. Other ACE versions of this code -appear in the ./apps/Logger directory. It is interesting to compare -and contrast the alternative implementations. - -RUNNING: - -The client is run as follows: - -client -h host -m max_message_size - -The -h host is optional if the locator service is properly configured. -The -m specifies the maximum number of kilobytes to be sent per log. This -is useful when redirecting messages to stdin. - -TIMING: - -I recommend timing the log's by specifying a max_message_size and -redirecting /usr/dict/words. This will give you several trials from -which to take an average. - -CLIENT: - -While using the client and typing in messages manually, capital Q and V -must be used to quit and toggle verbose respectively. This allows you -to redirect /usr/dict/words without quiting at the q's!! - -SERVER: - -To turn off message reporting on the server side, do a - -setenv NO_MESSAGES - -in the enviroment where the server will be run. If this is done, the server -will only report that a message was received, but not display the messages. diff --git a/apps/Orbix-Examples/Logger/a1.tex b/apps/Orbix-Examples/Logger/a1.tex deleted file mode 100644 index 5d10042e26e..00000000000 --- a/apps/Orbix-Examples/Logger/a1.tex +++ /dev/null @@ -1,232 +0,0 @@ -\documentstyle[times,11pt,moretext] {article} -\input macros -\input widen -\input psfig - -\begin{document} -\centerline{\Large Washington University} -\centerline{\Large Department of Computer Science} -\bigskip -\centerline{\large CS523: Distributed Operating Systems} -%\smallskip -%\centerline{\large Spring 1995} -\bigskip -\centerline{\large Programming Project} -% \centerline{\large Due Tuesday, January $31^{st}$, 1995} - -\section{Overview} - -In this assignment, you will implement a distributed logging service -shown in Figure~\ref{logenv}. Applications use this service to log -information (such as error notifications, debugging traces, and status -updates) in a distributed environment. In this service, CORBA remote -operations are used to send logging records to a central logging -server. The logging server outputs the logging records to a console, -a printer, a file, or a network management database, etc. - -\section{Design and Implementation Issues} - -The distributed logging service will be designed as a client/server -pair, containing the objects shown in Figure~\ref{simplog}. - -\subsection{CORBA IDL Specification} -The following CORBA IDL specification defines the logging interface: - -{ -\small -\ls{0.9} -\begin{verbatim} -// IDL schema definition -interface Logger -{ - // Types of logging messages. - enum Log_Priority { - LM_DEBUG, // Debugging messages - LM_WARNING, // Warning messages - LM_ERROR, // Errors - LM_EMERG // A panic condition - }; - - // Format of the logging record. - struct Log_Record { - Log_Priority type; // Type of logging message. - long time; // Time stamp at sender. - long app_id; // Process ID of sender. - long host_addr; // IP address of the sender. - sequence<char> msg_data; // Sender-specific logging message. - }; - - // Transmit a Log_Record to the logging server. - oneway void log (in Log_Record log_rec); - - // Toggle verbose formatting - attribute char verbose; -}; -\end{verbatim}} - -\begin{figure} -\center{\ \psfig{figure=graphics/logsimp.eps,width=13cm}\ } -\vspace{-0.12in} -\caption{Distributed Logging Service} -\label{logenv} -\end{figure} - -You will use a CORBA IDL compiler to translate this specification into -client-side {\em stubs} and server-side {\em skeletons}. The client -application (which you must write) will use the stubs as a {\em proxy} -to access the logging services provided by the server. You must also -write the implementation of the server, which provides the logging -service. - -\subsection{Client and Server Functionality} -For the purposes of the assignment, you can make the client driver -program very simple. The client can read a line from its standard -input and send it to the logging server. The server can then format -and print the line on its standard output. For example, if you type -this line to the client: - -\begin{verbatim} -To boldly go where no one has gone before -\end{verbatim} - -\noindent Then the server should output something like this: - -\begin{verbatim} -Jan 24 14:50:28 1995@tango.cs.wustl.edu@18352@LM_DEBUG -::To boldly go where no one has gone before -\end{verbatim} - -\noindent Note that the server has printed out the logging message -timestamp, sender's hostname and process id, and the message priority, -followed by the logging message data. - -\begin{figure} -\center{\ \psfig{figure=graphics/simplog.eps,width=13cm}\ } -\vspace{-0.12in} -\caption{CORBA-based Logger Design} -\label{simplog} -\end{figure} - -Note that in order to pass the client's IP address (which is -represented as a 4-byte {\tt long}) in the logging message, you'll -need to learn about several other UNIX routines. On the client-side -you'll need to use {\tt uname(2)} and {\tt gethostbyname(2)} to -determine the IP address of the client host. On the server-side, -you'll need to use the {\tt gethostbyaddr(2)} function to convert the -4-byte IP host address into an ASCII version of the host name. I -recommend that you check the manual pages and read Richard Steven's -book ``UNIX Network Programming'' for more details on using these -functions. - -\subsection{Invoking the Client and Server} -Once the client and server components are written, compiled, and -linked together you will use the {\tt putit} command to register the -server with the Orbix daemon. You'll then need to start up a copy of -{\tt orbixd} (if there isn't already one running). {\tt orbixd} -serves as the Object Request Broker for the local endpoint. - -A client will bind to the {\tt Logger} interface via the generated -{\tt Logger::\_bind} method. There are two general ways to use this -method. The first is to explicitly pass in the name of the server -where {\tt orbixd} is running (your client should accept a -command-line argument that is the name of the server, {\em e.g.,} -``tango.cs.wustl.edu''). - -The second method is to use the CORBA locator service to get an object -reference for the logging service. You'll need to read the Orbix -documentation to learn how to set up a location file. This file will -enable you to omit the name of the server in the call to {\tt -Logger::\_bind}. By using the locator server, your clients can bind -to object's implicitly. Make sure that your solution will work for -either implicit or explicit service location. - -Once the client application has bound (either explicitly or -implicitly) to an object reference for the {\tt Logger}, it can log -messages by calling the {\tt log} method via the object reference -proxy. - -\subsection{Performance Measurement} - -An important part of developing distributed systems is understanding -the performance implications of different design approaches. In order -to measure the performance overhead of using CORBA to build the -Logger, you will write a simple extension to the original {\tt Logger} -interface, as follows: - -{ -\small -\ls{0.9} -\begin{verbatim} -// IDL schema definition -interface Profile_Logger - : Logger // Profile_Logger IS-A Logger -{ - // Stores the amount of time that has elapsed. - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - // Activate the timer. - void start_timer (void); - - // Deactivate the timer and return the elapsed time. - void stop_timer (out Elapsed_Time et); -}; -\end{verbatim}} - -\noindent You will need to modify your client program so that it can -time a series of {\tt Logger::log} operations for various sizes of -logging messages. This will help us understand the performance -overhead of CORBA. - -The main benchmarking should take place within a loop in your client -program. Basically, your client call {\tt -Profile\_Logger::start\_timer} just before sending the first of the -logging messages. After a suitable number of iterations (defined on -the command-line), you client will call {\tt -Profile\_Logger::stop\_timer} to determine and report the elapsed time -to the user. You should print out the ``real'' time, as well as the -``system $+$ user'' times. Make sure that you print out the -throughput in terms of megabits/sec (rather than bytes/sec or -kbytes/sec). Be sure to include the fixed-sized {\tt Log\_Record} -object, as well as the variable-sized {\tt msg\_data} portion in your -computations. - -The number of iterations and the size of the messages sent by the -client should be parameterizable on the command-line. Make sure that -your timing tests are run between processes on two different machines -(rather than processes on the same machine). If possible, try to run -the client and server processes on two machines on the same subnet. - -When you are finished with your timing test, you should explain the -timing results and indicate trends that you observed. - -\section{Learning and Using CORBA} - -To help you learn how CORBA works, I will be making copies of the -Orbix programmer's manual available for a small reproduction fee. -This manual explains how to program in CORBA. I will announce in -class where this will be available. - -We will be using IONA's Orbix CORBA Object Request Broker (ORB) -implementation. The libraries, executables, CORBA IDL compiler, and -example demo applications are located in {\tt -/project/adaptive/Orbix}. Please note that this is an automounted -directory, so you will need to {\tt cd} directly to it in order to see -the contents. To configure Orbix for your environment, copy the {\tt -/project/adaptive/Orbix/Orbix.cfg} file to your account. You'll need -to set the environment variable {\tt IT\_CONFIG\_PATH} to the complete -path where this file is located. - -\section{Concluding Remarks} -In office hours and in class, we will discuss how to use C++ and CORBA -in order to develop your solutions. Note that this assignment will -teach you many skills required to become adept at network programming. -However, it also will require a great deal of thought and planning. -Please make sure you start early, come to office hours, and ask lots -of questions. - -\end{document} diff --git a/apps/Orbix-Examples/Logger/client.cpp b/apps/Orbix-Examples/Logger/client.cpp deleted file mode 100644 index 28708b9e2c4..00000000000 --- a/apps/Orbix-Examples/Logger/client.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// $Id$ - -// A client for the distributed logger example. This program reads -// from either stdin or from a redirected file and sends all the -// contents to the logging server. It also computes how long it takes -// to send this stuff. - -#include "Logger.h" - -ACE_RCSID(Logger, client, "$Id$") - -// maximum message size -static size_t max_message_size = BUFSIZ; - -// Default behavior is to use the locator service. -static char *hostname = 0; - -// Should we prompt the user? -static int user_prompt; - -static void -parse_args (int argc, char *argv[]) -{ - extern char *optarg; - extern int optind; - int c; - - ACE_LOG_MSG->open (argv[0]); - - // If a file has been redirected, don't activate user prompts - if (ACE_OS::isatty (0)) - user_prompt = 1; - else - user_prompt = 0; - - while ((c = ACE_OS::getopt (argc, argv, "m:h:")) != -1) - switch (c) - { - case 'm': - max_message_size = ACE_OS::atoi (optarg) * BUFSIZ; - break; - case 'h': - hostname = optarg; - break; - default: - ACE_ERROR ((LM_ERROR, "%n: -h host -m max_message_size (in kbytes)\n%a", 1)); - /* NOTREACHED */ - } -} - -// Enable/disable verbose logging. - -static int -toggle_verbose (Logger &logger) -{ - int verbose_value; - - verbose_value = logger.verbose (); - logger.verbose (!verbose_value); - return 0; -} - -// Transmit messages to the server. - -int -transmit (Logger &logger, char buf[], ACE_HANDLE handle = 0) -{ - if (user_prompt) - cout << "\nEnter message ('Q':quit,'V':toggle verbose):\n" << flush; - - ssize_t nbytes = ACE_OS::read (handle, buf, max_message_size); - - if (nbytes <= 0) - return nbytes; // End of file or error. - buf[nbytes] = '\0'; - - if (user_prompt) - { - if (buf[0] == 'Q' || buf[0] == 'q') - return 0; - // toggle verbose? - else if (buf[0] == 'V' || buf[0] == 'v') - toggle_verbose (logger); - } - - // send the message to the logger - if (logger.log (logger::LM_DEBUG, buf, nbytes) == -1) - return -1; - else - return nbytes; -} - -// Print the results of the tests. - -void -report_results (profile_logger::Elapsed_Time &et, size_t total_bytes) -{ - ACE_DEBUG ((LM_DEBUG, - "real time = %8.2f\n" - "user time = %8.2f\n" - "sys time = %8.2f\n" - "mbits sec = %8.2f\n", - et.real_time, et.user_time, et.system_time, - (total_bytes / et.real_time) * 8.0 / 1024.0 / 1024.0)); -} - -int -main (int argc, char **argv) -{ - parse_args (argc,argv); - - // Pointer to the logger object that will be used. - Logger logger (hostname, max_message_size); - char *buf = new char [max_message_size]; - size_t total_bytes = 0; - size_t nbytes = 0; - - logger.start_timer (); - - // Transmit logging records until user quits. - - for (int done = 0; done == 0;) - switch (nbytes = transmit (logger, buf)) - { - case -1: - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "transmit"), -1); - /* NOTREACHED */ - case 0: - done = 1; - break; - default: - total_bytes += nbytes; - break; - } - - profile_logger::Elapsed_Time et; - - if (logger.stop_timer (et) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "stop timer"), -1); - - report_results (et, total_bytes); - return 0; -} diff --git a/apps/Orbix-Examples/Logger/logger.hh b/apps/Orbix-Examples/Logger/logger.hh deleted file mode 100644 index 61652ce953b..00000000000 --- a/apps/Orbix-Examples/Logger/logger.hh +++ /dev/null @@ -1,434 +0,0 @@ -#ifndef logger_hh -#define logger_hh -/* $Id$ */ - -#include <CORBA.h> - -#include <string.h> - - -#ifndef _IDL_SEQUENCE_char_defined -#define _IDL_SEQUENCE_char_defined - -struct IONANC__IDL_SEQUENCE_char; -struct _IDL_SEQUENCE_char { - unsigned long _maximum; - unsigned long _length; - char *_buffer; - - operator IONANC__IDL_SEQUENCE_char(); - operator const IONANC__IDL_SEQUENCE_char() const; - _IDL_SEQUENCE_char& operator= (const IONANC__IDL_SEQUENCE_char&); - - _IDL_SEQUENCE_char& operator= (const _IDL_SEQUENCE_char&); - _IDL_SEQUENCE_char (const _IDL_SEQUENCE_char&); - - _IDL_SEQUENCE_char (unsigned long IT_size = 0); - - ~_IDL_SEQUENCE_char () { if (_buffer) delete [] _buffer; } - - char& operator [] (unsigned long IT_i) const {return _buffer[IT_i]; } - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); -}; - -struct IONANC__IDL_SEQUENCE_char { - unsigned long _maximum; - unsigned long _length; - char *_buffer; - - char& operator [] (unsigned long IT_i) const; - - operator _IDL_SEQUENCE_char (); - - operator const _IDL_SEQUENCE_char () const; - -}; - - - -#endif - - -#ifndef _logger_defined -#define _logger_defined -class logger_dispatch : public virtual CORBA::PPTR { -public: - - logger_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - logger_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - logger_dispatch () {} - - logger_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class logger; - - -#ifndef loggerForwH -#define loggerForwH -CORBA::ObjectRef logger_getBase (void *); -void logger_release (void *, CORBA::Environment &IT_env=CORBA::default_environment); -logger* logger_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment); -#endif -#define logger_IMPL "logger" - - -class logger; -#define logger_IR "logger" -#define logger_IMPL "logger" - -typedef logger* loggerRef; -typedef logger* logger_ptr; -class logger: public virtual CORBA::Object { -public: - logger (char *IT_OR); - logger () : CORBA::Object (1) {} - logger* _duplicate( - CORBA::Environment &IT_env=CORBA::default_environment) { - CORBA::Object::_duplicate (IT_env); return this; } - static logger* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::default_environment); - static logger* _bind (CORBA::Environment &IT_env); - static logger* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::default_environment); - static logger* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment); -enum Log_Priority {LM_MESSAGE,LM_DEBUG,LM_WARNING,LM_ERROR,LM_EMERG}; - -#ifndef logger_Log_Record_defined -#define logger_Log_Record_defined - -struct IONANC_Log_Record; -struct Log_Record { - logger::Log_Priority type; - long time; - long app_id; - long host_addr; - _IDL_SEQUENCE_char msg_data; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Log_Record(const Log_Record &); - Log_Record(); - operator logger::IONANC_Log_Record(); - operator const logger::IONANC_Log_Record() const; - Log_Record& operator= (const IONANC_Log_Record&); - ~Log_Record(); - Log_Record& operator= (const Log_Record&); -}; - -struct IONANC_Log_Record { - logger::Log_Priority type; - long time; - long app_id; - long host_addr; - IONANC__IDL_SEQUENCE_char msg_data; - operator logger::Log_Record (); - operator const logger::Log_Record () const; - }; - - -#endif - - virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env=CORBA::default_environment); - virtual void verbose (char verbose, CORBA::Environment &IT_env=CORBA::default_environment); - virtual char verbose (CORBA::Environment &IT_env=CORBA::default_environment); -}; - - -#define TIE_logger(X) logger##X - -#define DEF_TIE_logger(X) \ - class logger##X : public virtual logger { \ - X* m_obj; \ - public: \ - \ - logger##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\ - : logger(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new logger_dispatch \ - (( logger*)this,(CORBA::Object*)this,m,l,logger_IR,m_obj); \ - } \ - logger##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\ - : logger(), CORBA::Object () { \ - m_pptr = new logger_dispatch \ - (( logger*)this,(CORBA::Object*)this,IT_m,logger_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~logger##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\ -m_obj->log ( log_rec,IT_env);\ -}\ - \ -virtual void verbose (char verbose, CORBA::Environment &IT_env) {\ - m_obj->verbose(verbose,IT_env); }\ - \ -virtual char verbose (CORBA::Environment &IT_env) {\ -return m_obj->verbose(IT_env); }\ - \ - }; - - -#define QUALS_logger \ - virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\ -m_obj->log ( log_rec,IT_env);\ -}\ - \ -virtual void verbose (char verbose, CORBA::Environment &IT_env) {\ - m_obj->verbose(verbose,IT_env); }\ - \ -virtual char verbose (CORBA::Environment &IT_env) {\ -return m_obj->verbose(IT_env); }\ - - - - -class loggerProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - loggerProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (logger_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern loggerProxyFactoryClass loggerProxyFactory; - - - -class loggerBOAImpl : public virtual logger { -public: - loggerBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, logger_IR)) - m_pptr = new logger_dispatch ( (logger*)this, - (CORBA::Object*)this, m, l, logger_IR, this); -} - - virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env=CORBA::default_environment) =0; - virtual void verbose (char verbose, CORBA::Environment &IT_env=CORBA::default_environment)=0; - virtual char verbose (CORBA::Environment &IT_env=CORBA::default_environment)=0; -}; - - -#endif - - -#ifndef _profile_logger_defined -#define _profile_logger_defined -class profile_logger_dispatch : public virtual logger_dispatch { -public: - - profile_logger_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - profile_logger_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : CORBA::PPTR (IT_OR,IT_p,IT_o) {} - - - profile_logger_dispatch () {} - - profile_logger_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {} - - - virtual unsigned char dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void* IT_pp=NULL); - - -}; - -class profile_logger; - - -#ifndef profile_loggerForwH -#define profile_loggerForwH -CORBA::ObjectRef profile_logger_getBase (void *); -void profile_logger_release (void *, CORBA::Environment &IT_env=CORBA::default_environment); -profile_logger* profile_logger_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment); -#endif -#define profile_logger_IMPL "profile_logger" - - -class profile_logger; -#define profile_logger_IR "profile_logger" -#define profile_logger_IMPL "profile_logger" - -typedef profile_logger* profile_loggerRef; -typedef profile_logger* profile_logger_ptr; -class profile_logger: public virtual logger { -public: - profile_logger (char *IT_OR); - profile_logger () : CORBA::Object (1) {} - profile_logger* _duplicate( - CORBA::Environment &IT_env=CORBA::default_environment) { - CORBA::Object::_duplicate (IT_env); return this; } - static profile_logger* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::default_environment); - static profile_logger* _bind (CORBA::Environment &IT_env); - static profile_logger* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::default_environment); - static profile_logger* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment); - -#ifndef profile_logger_Elapsed_Time_defined -#define profile_logger_Elapsed_Time_defined - -struct Elapsed_Time { - double real_time; - double user_time; - double system_time; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); -}; - - -#endif - - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment); - virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env=CORBA::default_environment); -}; - - -#define TIE_profile_logger(X) profile_logger##X - -#define DEF_TIE_profile_logger(X) \ - class profile_logger##X : public virtual profile_logger { \ - X* m_obj; \ - public: \ - \ - profile_logger##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\ - : profile_logger(), CORBA::Object (), m_obj(objp) { \ - m_pptr = new profile_logger_dispatch \ - (( profile_logger*)this,(CORBA::Object*)this,m,l,profile_logger_IR,m_obj); \ - } \ - profile_logger##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\ - : profile_logger(), CORBA::Object () { \ - m_pptr = new profile_logger_dispatch \ - (( profile_logger*)this,(CORBA::Object*)this,IT_m,profile_logger_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~profile_logger##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - \ - virtual void* _deref () { \ - return m_obj; } \ - \ - virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\ -m_obj->log ( log_rec,IT_env);\ -}\ - \ -virtual void verbose (char verbose, CORBA::Environment &IT_env) {\ - m_obj->verbose(verbose,IT_env); }\ - \ -virtual char verbose (CORBA::Environment &IT_env) {\ -return m_obj->verbose(IT_env); }\ - virtual void start_timer (CORBA::Environment &IT_env) {\ -m_obj->start_timer (IT_env);\ -}\ - \ - virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env) {\ -m_obj->stop_timer ( et,IT_env);\ -}\ - \ - }; - - -#define QUALS_profile_logger \ - virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\ -m_obj->log ( log_rec,IT_env);\ -}\ - \ -virtual void verbose (char verbose, CORBA::Environment &IT_env) {\ - m_obj->verbose(verbose,IT_env); }\ - \ -virtual char verbose (CORBA::Environment &IT_env) {\ -return m_obj->verbose(IT_env); }\ - virtual void start_timer (CORBA::Environment &IT_env) {\ -m_obj->start_timer (IT_env);\ -}\ - \ - virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env) {\ -m_obj->stop_timer ( et,IT_env);\ -}\ - - - - -class profile_loggerProxyFactoryClass : public virtual loggerProxyFactoryClass { -public: - profile_loggerProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (profile_logger_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual void* IT_castUp (void *IT_p, char* IT_s); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern profile_loggerProxyFactoryClass profile_loggerProxyFactory; - - - -class profile_loggerBOAImpl : public virtual profile_logger { -public: - profile_loggerBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, profile_logger_IR)) - m_pptr = new profile_logger_dispatch ( (profile_logger*)this, - (CORBA::Object*)this, m, l, profile_logger_IR, this); -} - - virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0; - virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env=CORBA::default_environment) =0; -}; - - -#endif - - -#endif diff --git a/apps/Orbix-Examples/Logger/logger.idl b/apps/Orbix-Examples/Logger/logger.idl deleted file mode 100644 index 1d8ee9babc7..00000000000 --- a/apps/Orbix-Examples/Logger/logger.idl +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// @(#)logger.idl 1.1 10/18/96 - -// logger.idl - -interface logger -// = TITLE -// This is the CORBA interface for the logger class. -{ - // = Types of logging messages. - enum Log_Priority - { - LM_MESSAGE, - LM_DEBUG, - LM_WARNING, - LM_ERROR, - LM_EMERG - }; - - // = Format of the logging record. - struct Log_Record - { - Log_Priority type; // Type of logging message. - long time; // Time stamp at sender. - long app_id; // Process ID of sender. - long host_addr; // IP address of the sender. - sequence<char> msg_data; // Sender-specific logging message. - }; - - oneway void log (in Log_Record log_rec); - // Transmit a Log_Record to the logging server. - - attribute char verbose; - // Toggle verbose formatting -}; - -interface profile_logger - : logger // Profile_Logger IS-A Logger -// = TITLE -// IDL Profile Logger definition that is used -// to compute statistics about the logging. -{ - // = Stores the amount of time that has elapsed. - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - void start_timer (); - // Activate the timer. - - void stop_timer (out Elapsed_Time et); - // Deactivate the timer and return the elapsed time. -}; diff --git a/apps/Orbix-Examples/Logger/loggerS.cpp b/apps/Orbix-Examples/Logger/loggerS.cpp deleted file mode 100644 index ac469b1c760..00000000000 --- a/apps/Orbix-Examples/Logger/loggerS.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// $Id$ - -#include "logger.hh" - -ACE_RCSID(Logger, loggerS, "$Id$") - -#define logger_dispatch_impl - -unsigned char logger_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void *IT_pp) { - if (!IT_pp) - IT_pp = m_obj; - const char *IT_s = IT_r.getOperation (); - if (!strcmp(IT_s,"log")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~log~+log_rec{R~logger::Log_Record~type{E~logger::Log_Priority~LM_MESSAGE,LM_DEBUG,LM_WARNING,LM_ERROR,LM_EMERG},time{l},app_id{l},host_addr{l},msg_data{S{c},0}},>{v},O{}\ -")) - return 1; - logger::Log_Record log_rec; - log_rec.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((logger*)IT_pp)->log ( log_rec, IT_env); - - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - else if (!strcmp (IT_s,"_get_verbose")) { - char verbose; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~_get_verbose~>{c},N{}\ -")) - return 1; - if (IT_f) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - verbose = ((logger*)IT_pp)->verbose(IT_env); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -c\ -", IT_env)) return 1; - IT_r << verbose; - } - else IT_r.makeSystemException (IT_env); - - return 1; - } - else if (!strcmp (IT_s,"_set_verbose")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (IT_r.tcAssert ("\ -Ro~_set_verbose~+{c},>{v},N{}\ -")) { - char verbose; - IT_r >> verbose; - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((logger*)IT_pp)->verbose(verbose, IT_env); - } - IT_r.replyNoResults (IT_env); - return 1; - } - - else if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define profile_logger_dispatch_impl - -unsigned char profile_logger_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char IT_isTarget, void *IT_pp) { - if (!IT_pp) - IT_pp = m_obj; - const char *IT_s = IT_r.getOperation (); - if (!strcmp(IT_s,"start_timer")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~start_timer~>{v},N{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((profile_logger*)IT_pp)->start_timer (IT_env); - - IT_r.replyNoResults (IT_env); - return 1; - } - - else if (!strcmp(IT_s,"stop_timer")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~stop_timer~-et{R~profile_logger::Elapsed_Time~real_time{d},user_time{d},system_time{d}},>{v},N{}\ -")) - return 1; - profile_logger::Elapsed_Time et; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) - ((profile_logger*)IT_pp)->stop_timer ( et, IT_env); - - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -v\ -", IT_env)) return 1; - et.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - else if (logger_dispatch::dispatch (IT_r, 0, - (logger*)((profile_logger*)IT_pp))) { - return 1; - } - - else if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "loggerC.cpp" - diff --git a/apps/Orbix-Examples/Logger/logger_i.cpp b/apps/Orbix-Examples/Logger/logger_i.cpp deleted file mode 100644 index c71e8d88a9f..00000000000 --- a/apps/Orbix-Examples/Logger/logger_i.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// $Id$ - -// Implementation of the logger object. - -#include <iostream.h> -#include "ace/OS.h" -#include "logger_i.h" - -ACE_RCSID(Logger, logger_i, "$Id$") - -// Select non-verbose logging by default. - -logger_i::logger_i (int verbose) - : verbose_value_ (verbose) -{ - if (ACE_OS::getenv ("NO_MESSAGES") == 0) - this->verbose_message_ = 1; - else - this->verbose_message_ = 0; -} - -// Implement the log method. - -void -logger_i::log (const logger::Log_Record &log_rec, CORBA::Environment &IT_env) -{ - if (this->verbose_value_) // If verbose mode is on - { - char *tm; - - // Convert time - if ((tm = ACE_OS::ctime (&log_rec.time)) == 0) - cerr << "ctime failed" << endl; - else - { - hostent *hp; - - /* 01234567890123456789012345 */ - /* Wed Oct 18 14:25:36 1989n0 */ - tm[24] = '@'; - cout << tm; - - // Get host name of client - - if ((hp = gethostbyaddr((char *) &log_rec.host_addr, - sizeof log_rec.host_addr, AF_INET)) == NULL) - { - cerr << "server: error in calling gethostbyaddr" << endl; - cerr << "h_errno = " << h_errno << endl; - return; - } - else // Output client hostname. - cout << hp->h_name << "@"; - - // Output PID of client - cout << log_rec.app_id << "@"; - - // Output priority - - switch (log_rec.type) - { - case logger::LM_DEBUG: - cout << "LM_DEBUG"; - break; - case logger::LM_WARNING: - cout << "LM_WARNING"; - break; - case logger::LM_ERROR: - cout << "LM_ERROR"; - break; - case logger::LM_EMERG: - cout << "LM_EMERG"; - break; - } - } - } - if (this->verbose_message_) - { - cout << "::"; - // Output message - cout.write (log_rec.msg_data._buffer, log_rec.msg_data._length) << flush; - } -} - -// Enable/disable verbosity. - -void -logger_i::verbose (char verbose, CORBA::Environment &IT_env) -{ - this->verbose_value_ = verbose; -} - -// Report current verbosity level. - -char -logger_i::verbose (CORBA::Environment &IT_env) -{ - return this->verbose_value_; -} - -// Profile_Logger_i - -void -profile_logger_i::start_timer (CORBA::Environment &IT_env) -{ - this->pt_.start (); -} - -void -profile_logger_i::stop_timer (profile_logger::Elapsed_Time& et, - CORBA::Environment &IT_env) -{ - this->pt_.stop (); - - ACE_Profile_Timer::ACE_Elapsed_Time e; - - this->pt_.elapsed_time (e); - - et.real_time = e.real_time; - et.user_time = e.user_time; - et.system_time = e.system_time; -} diff --git a/apps/Orbix-Examples/Logger/logger_i.h b/apps/Orbix-Examples/Logger/logger_i.h deleted file mode 100644 index 407af302aba..00000000000 --- a/apps/Orbix-Examples/Logger/logger_i.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -#include "ace/Profile_Timer.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#define EXCEPTIONS -#include "logger.hh" - -class logger_i -#if defined (USE_BOA_IMPL) - : virtual public loggerBOAImpl -#endif /* USE_BOA_IMPL */ - // = TITLE - // Implementation of the logger interface. - // - // = DESCRIPTION - // Uses either the BOAImpl or the DEF_TIE approach, - // depending on the #ifdef -{ -public: - logger_i (int verbose = 0); - // Select non-verbose logging by default. - - virtual void log (const logger::Log_Record &log_rec, CORBA::Environment &IT_env); - // Implement the log method. - - virtual void verbose (char verbose, CORBA::Environment &IT_env); - // Enable/disable verbosity. - - virtual char verbose (CORBA::Environment &IT_env); - // Report current verbosity level. - -private: - unsigned char verbose_value_; - // Indicate if we are using verbose logging or not. - - unsigned char verbose_message_; - // Indicate if we outputting the messages (turn off if you - // want to conduct timing tests that just measure throughput). -}; - -class profile_logger_i : -#if defined (USE_BOA_IMPL) - public virtual profile_loggerBOAImpl, - public virtual Logger_i -#else /* USE_TIE */ - public logger_i -#endif /* USE_BOA_IMPL */ - // = TITLE - // Implementation of the profiler logger interface. - // - // = DESCRIPTION - // Uses the BOAImpl approach. -{ -public: - virtual void start_timer (CORBA::Environment &env); - // Activate the timer. - - virtual void stop_timer (profile_logger::Elapsed_Time &et, - CORBA::Environment &env); - // Deactivate the timer and return the elapsed time. - -private: - ACE_Profile_Timer pt_; - // Object that keeps track of the user and system execution time. -}; - -#ifndef USE_BOA_IMPL -// Indicate that the C++ classes logger_i and profile_logger_i implement -// the IDL interface logger and profile_logger, respectively: - -DEF_TIE_logger (logger_i) -DEF_TIE_profile_logger (profile_logger_i) - -#endif /* USE_BOA_IMPL */ diff --git a/apps/Orbix-Examples/Logger/server.cpp b/apps/Orbix-Examples/Logger/server.cpp deleted file mode 100644 index 2366a40031f..00000000000 --- a/apps/Orbix-Examples/Logger/server.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// $Id$ - -// The server for the logger example. -// This uses the TRY,CATCHANY,ENDTRY macros for error testing. - -// The executable file generated from this code should be registered -// (under the name 'logger') using the 'putit' command. - -#include <iostream.h> -#include "logger_i.h" - -ACE_RCSID(Logger, server, "$Id$") - -int -main (int, char *[]) -{ - // Tell the server not to hang up while clients are connected. - CORBA::Orbix.setNoHangup (1); - - // create a logger object - using the implementation class logger_i -#if defined (USE_BOA_IMPL) - profile_logger_i profile_logger; -#else - TIE_profile_logger (profile_logger_i) profile_logger (new profile_logger_i); -#endif /* USE_BOA_IMPL */ - - TRY { - // tell Orbix that we have completed the server's initialisation: - CORBA::Orbix.impl_is_ready (profile_logger_IMPL, IT_X); - } CATCHANY { - // an error occured calling impl_is_ready () - output the error. - cout << IT_X << endl; - } ENDTRY; - - // impl_is_ready() returns only when Orbix times-out an idle server - // (or an error occurs). - cerr << "server exiting" << endl; - - return 0; -} diff --git a/apps/Orbix-Examples/Makefile b/apps/Orbix-Examples/Makefile deleted file mode 100644 index 8108f98713b..00000000000 --- a/apps/Orbix-Examples/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the Orbix applications -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -DIRS = Event_Comm \ - Logger - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU - diff --git a/apps/README b/apps/README index f575690aded..51aea298841 100644 --- a/apps/README +++ b/apps/README @@ -18,10 +18,3 @@ applications that utilize the ACE features. . JAWS -- This is a high-performance HTTP Web server written with ACE. It illustrates a number of sophisticated ACE concurrency and event demultiplexing strategies. - - . Orbix-Examples -- Implements several applications that - integrate ACE and Orbix (which is IONA's implementation of - CORBA). By default, these aren't compiled since most - platforms don't have Orbix. These examples are completely - unsupported and may not work... - diff --git a/docs/ACE-configuration.txt b/docs/ACE-configuration.txt index d9194375d6a..50738880854 100644 --- a/docs/ACE-configuration.txt +++ b/docs/ACE-configuration.txt @@ -128,7 +128,6 @@ Features and packages: --enable-xt-reactor build support for the XtReactor [default=no] --with-x use the X Window System --with-gperf compile the gperf program [default=yes] - --with-orbix[=DIR] compile ACE with Orbix [default=no] --with-tli-device[=DEV] device for TCP on TLI [default=/dev/tcp] To enable debugging and disable code inlining, for example, just enter diff --git a/examples/CORBA/Makefile b/examples/CORBA/Makefile deleted file mode 100644 index 316fe5e1c99..00000000000 --- a/examples/CORBA/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id: Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = Test_i.cpp client.cpp server.cpp - -SVR_OBJS = TestS.o Test_i.o server.o -CLT_OBJS = TestC.o client.o - -LDLIBS = - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Orbix related macros and target settings. -#---------------------------------------------------------------------------- - -ORBIX_BINDIR = $(ORBIX_ROOT)/bin -ORBIX_LIBDIR = $(ORBIX_ROOT)/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client server - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS) - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/examples/CORBA/Test.idl b/examples/CORBA/Test.idl deleted file mode 100644 index d5ae1850e4a..00000000000 --- a/examples/CORBA/Test.idl +++ /dev/null @@ -1,8 +0,0 @@ -// $Id$ - -interface Test -// @(#)Test.idl 1.1 10/18/96 - -{ - void method (in long input1); -}; diff --git a/examples/CORBA/Test_i.cpp b/examples/CORBA/Test_i.cpp deleted file mode 100644 index 03c969a6a0d..00000000000 --- a/examples/CORBA/Test_i.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "Test_i.h" - -ACE_RCSID(CORBA, Test_i, "$Id$") - -void -Test_i::method (long input, - ACE_CORBA_1 (Environment) &) -{ - ACE_DEBUG ((LM_DEBUG, "received a number %d\n", input)); -} diff --git a/examples/CORBA/Test_i.h b/examples/CORBA/Test_i.h deleted file mode 100644 index 01fe82c75f1..00000000000 --- a/examples/CORBA/Test_i.h +++ /dev/null @@ -1,19 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#include "ace/Log_Msg.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Test.hh" - -class Test_i -{ -public: - virtual void method (long input, - ACE_CORBA_1 (Environment) &IT_env = ACE_CORBA_1 (default_environment)); -}; - -DEF_TIE_Test (Test_i) diff --git a/examples/CORBA/client.cpp b/examples/CORBA/client.cpp deleted file mode 100644 index 620bcf978af..00000000000 --- a/examples/CORBA/client.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -#include "Test.hh" - -ACE_RCSID(CORBA, client, "$Id$") - -int -main (int argc, char *argv[]) -{ - char *host = argc == 2 ? argv[1] : ACE_DEFAULT_SERVER_HOST; - - Test_var my_test; - - TRY { - my_test = Test::_bind ("", host, IT_X); - my_test->method (5); - } CATCHANY { - cerr << IT_X << endl; - return -1; - } ENDTRY; - - ACE_DEBUG ((LM_DEBUG, "everything works!\n")); - - // Memory for my_test is automatically released by destructor of - // smart pointer. - return 0; -} diff --git a/examples/CORBA/server.cpp b/examples/CORBA/server.cpp deleted file mode 100644 index c7f9abee77c..00000000000 --- a/examples/CORBA/server.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// $Id$ - -#include "ace/Service_Config.h" -#include "ace/CORBA_Handler.h" -#include "Test_i.h" - -ACE_RCSID(CORBA, server, "$Id$") - -#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0) - -#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0) -typedef ACE_MT_CORBA_Handler CORBA_HANDLER; -#else -typedef ACE_ST_CORBA_Handler CORBA_HANDLER; -#endif /* ACE_HAS_MT_ORBIX */ - -int -main (int argc, char *argv[]) -{ - ACE_Service_Config daemon; - - char pwd[BUFSIZ]; - char app[BUFSIZ]; - - ACE_OS::getcwd (pwd, sizeof pwd); - ACE_OS::sprintf (app, "%s/%s", pwd, argv[0]); - - if (CORBA_HANDLER::instance ()->activate_service (Test_IMPL, 0, app) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "Could not activate services for supplier\n"), -1); - - TIE_Test (Test_i) test (new Test_i); - - for (;;) - if (CORBA_HANDLER::instance ()->reactor ()->handle_events () == -1) - break; - - return 0; -} -#endif /* ACE_HAS_ORBIX */ diff --git a/examples/Reactor/Multicast/Log_Wrapper.cpp b/examples/Reactor/Multicast/Log_Wrapper.cpp index dc0744dabe9..60ffa40fd1d 100644 --- a/examples/Reactor/Multicast/Log_Wrapper.cpp +++ b/examples/Reactor/Multicast/Log_Wrapper.cpp @@ -12,26 +12,26 @@ Log_Wrapper::Log_Wrapper (void) this->log_msg_.app_id = ACE_OS::getpid (); } -Log_Wrapper::~Log_Wrapper (void) +Log_Wrapper::~Log_Wrapper (void) { } // Set the log_msg_ host address. int -Log_Wrapper::open (const int port, const char *mcast_addr) +Log_Wrapper::open (const int port, const char *mcast_addr) { struct hostent *host_info; ACE_utsname host_data; - if (ACE_OS::uname (&host_data) < 0) + if (ACE_OS::uname (&host_data) < 0) return -1; - - if ((host_info = ACE_OS::gethostbyname (host_data.nodename)) == NULL) + + if ((host_info = ACE_OS::gethostbyname (host_data.nodename)) == NULL) return -1; - else - ACE_OS::memcpy ((char *) &this->log_msg_.host, - (char *) host_info->h_addr, + else + ACE_OS::memcpy ((char *) &this->log_msg_.host, + (char *) host_info->h_addr, host_info->h_length); // This starts out initialized to all zeros! @@ -50,7 +50,7 @@ Log_Wrapper::open (const int port, const char *mcast_addr) int Log_Wrapper::log_message (Log_Priority type, char *message) -{ +{ sequence_number_++; this->log_msg_.type = type; @@ -69,4 +69,3 @@ Log_Wrapper::log_message (Log_Priority type, char *message) // success. return 0; } - diff --git a/examples/Reactor/Multicast/Log_Wrapper.h b/examples/Reactor/Multicast/Log_Wrapper.h index c6f05912067..10458f706bc 100644 --- a/examples/Reactor/Multicast/Log_Wrapper.h +++ b/examples/Reactor/Multicast/Log_Wrapper.h @@ -35,7 +35,7 @@ public: }; int open (const int port, const char* mcast_addr); - // get an object reference from an orbixd + // Subscribe to a given UDP multicast group int log_message (Log_Priority type, char *message); // send a string to the logger diff --git a/include/makeinclude/platform_aix4_cset++.GNU b/include/makeinclude/platform_aix4_cset++.GNU index 429d64a354e..28bd5dfe732 100644 --- a/include/makeinclude/platform_aix4_cset++.GNU +++ b/include/makeinclude/platform_aix4_cset++.GNU @@ -1,7 +1,6 @@ # $Id$ # AIX 4.x using the IBM C Set++ compiler. -# *not* using Orbix # # NOTE! IBM is no longer supporting AIX at any version earlier than 4.3, # and Riverace is not testing or supporting ACE on them either. No steps diff --git a/include/makeinclude/platform_dgux4_epc.GNU b/include/makeinclude/platform_dgux4_epc.GNU index 7af2281d13a..9f48af9e06f 100644 --- a/include/makeinclude/platform_dgux4_epc.GNU +++ b/include/makeinclude/platform_dgux4_epc.GNU @@ -1,7 +1,7 @@ # $Id$ -# SunOS 5.x (Solaris 2.x) with SunC++ 4.x -# *not* using Orbix +# Digital Unix v.4.X using epc? +# (Apparently based on SunOS 5.x (Solaris 2.x) with SunC++ 4.x) debug = 1 diff --git a/include/makeinclude/platform_hpux_orbix.GNU b/include/makeinclude/platform_hpux_orbix.GNU deleted file mode 100644 index fa05720bf14..00000000000 --- a/include/makeinclude/platform_hpux_orbix.GNU +++ /dev/null @@ -1,30 +0,0 @@ -# $Id$ - -# Assume the existence of Orbix with HP/UX... - -debug = 1 - -CC = /bin/cc -CXX = /usr/bin/CC -CFLAGS = -Aa -z +z -CCFLAGS = $(CFLAGS) -pta -ptb -DCFLAGS += -g -DLD = $(CXX) -LD = $(CXX) -INCLDIRS = -I$(ORBIX_ROOT)/include -PIC = -ARFLAGS = ruv -RANLIB = echo -LDFLAGS = -L$(ORBIX_ROOT)/lib -L$(ACE_ROOT)/ace -Wl,+s -SOFLAGS = -b -SOBUILD = @echo ""; \ - echo "$(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<"; \ - $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ - $(RM) -rf $(VSHDIR)pt$*; mkdir $(VSHDIR)pt$*; \ - echo "int main() { return 0; }" >dummy.C; \ - echo "$(CXX) $(CCFLAGS) $(PIC) $(CPPFLAGS) $(LDFLAGS) -ptr$(VSHDIR)pt$* -ptr./ptrepository dummy.C $<";\ - YYZ="`$(CXX) $(CCFLAGS) $(PIC) $(CPPFLAGS) $(LDFLAGS) -ptr$(VSHDIR)pt$* -ptr./ptrepository dummy.C $<`"; \ - $(RM) -rf a.out dummy.*; \ - YYZ="`echo $(VSHDIR)pt$*/*.o`"; \ - echo "$(SOLINK.cc) -o $@ ./$(VSHDIR)$*.o $(YYZ)"; \ - $(SOLINK.cc) -o $@ ./$(VSHDIR)$*.o $(YYZ) diff --git a/include/makeinclude/platform_m88k.GNU b/include/makeinclude/platform_m88k.GNU index 382c6e2adc2..84831a34064 100644 --- a/include/makeinclude/platform_m88k.GNU +++ b/include/makeinclude/platform_m88k.GNU @@ -1,7 +1,6 @@ # $Id$ # SunOS 5.x (Solaris 2.x) with SunC++ 4.x -# *not* using Orbix debug = 1 optimize = 1 diff --git a/include/makeinclude/platform_sunos4_g++.GNU b/include/makeinclude/platform_sunos4_g++.GNU index 35c3f8f61b9..2b24925fbcf 100644 --- a/include/makeinclude/platform_sunos4_g++.GNU +++ b/include/makeinclude/platform_sunos4_g++.GNU @@ -1,6 +1,6 @@ # $Id$ -# SunOS 4.x (Solaris 1.x) with g++ *not* using Orbix +# SunOS 4.x (Solaris 1.x) with g++ debug = 1 optimize = 1 diff --git a/include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU b/include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU deleted file mode 100644 index fec612a3113..00000000000 --- a/include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU +++ /dev/null @@ -1,25 +0,0 @@ -# $Id$ - -# SunOS 4.x (Solaris 1.x) with SunC++ 4.x and Orbix. - -debug = 1 - -CC = cc -CXX = CC -CCFLAGS += $(CFLAGS) -DCFLAGS += -g -DLD = $(CXX) -LD = $(CXX) -LIBS += -INCLDIRS = -I$(ORBIX_ROOT)/include -AR = CC -LDFLAGS += -L$(ORBIX_ROOT)/lib -ARFLAGS = -xar -o -PIC = -pic -RANLIB = ranlib -SOFLAGS = -G $(CPPFLAGS) -SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ - $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o - -#### Create template repository to avoid compiler warning. -TEMPLATE_REPOSITORY = Templates.DB diff --git a/include/makeinclude/platform_sunos5_centerline_orbix.GNU b/include/makeinclude/platform_sunos5_centerline_orbix.GNU deleted file mode 100644 index 7265e806673..00000000000 --- a/include/makeinclude/platform_sunos5_centerline_orbix.GNU +++ /dev/null @@ -1,23 +0,0 @@ -# $Id$ - -# SunOS 5.x (Solaris 2.x) with Centerline C++ - -debug = 1 - -CC = cc -CXX = CC -CFLAGS += -mt -CCFLAGS += $(CFLAGS) -DCFLAGS += -g -DLD = $(CXX) -mt -LD = $(CXX) -mt -INCLDIRS = -I$(ORBIX_ROOT)/include -LDFLAGS += -L$(ORBIX_ROOT)/lib -LIBS += -lITsrv -lsocket -ldl -lnsl -lgen -PIC = -PIC -AR = CC -ARFLAGS = -xar -o -RANLIB = echo -SOFLAGS = -G $(CPPFLAGS) $(PTDIRS) -SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ - $(SOLINK.cc) $(PIC) -o $@ $(LDFLAGS) $(VSHDIR)$*.o diff --git a/include/makeinclude/platform_sunos5_g++.GNU b/include/makeinclude/platform_sunos5_g++.GNU index 3fd2c02898c..0819085878e 100644 --- a/include/makeinclude/platform_sunos5_g++.GNU +++ b/include/makeinclude/platform_sunos5_g++.GNU @@ -1,6 +1,6 @@ # $Id$ -# SunOS 5.x (Solaris 2.x) with g++ *not* using Orbix +# SunOS 5.x (Solaris 2.x) with g++ # NOTE: with g++ 2.8.0, you'll need to disable optimization in order to # instantiate ACE_Map_Manager (ace/Map_Manager.cpp). The easiest diff --git a/include/makeinclude/platform_sunos5_kcc.GNU b/include/makeinclude/platform_sunos5_kcc.GNU index 7c72745e217..e2124add875 100644 --- a/include/makeinclude/platform_sunos5_kcc.GNU +++ b/include/makeinclude/platform_sunos5_kcc.GNU @@ -1,7 +1,6 @@ # $Id$ -*- Makefile -*- -# SunOS 5.x (Solaris 2.x) with KAI C++ 3.3e, *not* using Orbix. -# +# SunOS 5.x (Solaris 2.x) with KAI C++ 3.3e debug = 1 distrib = 0 diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU index e39d5f586de..2d006a75984 100644 --- a/include/makeinclude/platform_sunos5_sunc++.GNU +++ b/include/makeinclude/platform_sunos5_sunc++.GNU @@ -1,6 +1,6 @@ # $Id$ -# SunOS 5.x (Solaris 2.x) with Sun C++ 4.2 and 5.x, *not* using Orbix. +# SunOS 5.x (Solaris 2.x) with Sun C++ 4.2 and 5.x # # NOTE: Sun C++ 5.0 users might need to add this to their CCFLAGS: # -compat=4 and/or remove -instances=explicit. Please note that @@ -148,24 +148,6 @@ endif # ! exceptions LD = $(CXX) -ifdef orbix - LDFLAGS += $(PIC) -L$(ORBIX_ROOT)/corba2/lib \ - -R $(ACE_ROOT)/ace -R./ -R $(ORBIX_ROOT)/corba2/lib -ifeq ($(mt_orbix),1) - LIBS += -lITinimt -liiopmt -lorbixmt -lthread -else - LIBS += -lITini -liiop -lorbix -endif - - LIBS += -lsocket -ldl -lnsl -lgen -lposix4 - CPPFLAGS += -I$(ORBIX_ROOT)/corba2/include -else -ifeq ($(distrib),0) - LDFLAGS += -R $(ACE_ROOT)/ace -R./ -endif - LIBS += -lsocket -ldl -lnsl -lgen -lposix4 -endif # orbix - ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION))) ifeq ($(compat4),1) COMPAT_LIBDIR=/opt/SUNWspro/lib/CC4 diff --git a/include/makeinclude/platform_sunos5_sunc++_orbix.GNU b/include/makeinclude/platform_sunos5_sunc++_orbix.GNU deleted file mode 100644 index 001576f06f1..00000000000 --- a/include/makeinclude/platform_sunos5_sunc++_orbix.GNU +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -orbix=1 -mt_orbix=1 -exceptions=1 - -include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU diff --git a/include/makeinclude/platform_unixware_g++.GNU b/include/makeinclude/platform_unixware_g++.GNU index af072940b9a..75a93fb07e4 100644 --- a/include/makeinclude/platform_unixware_g++.GNU +++ b/include/makeinclude/platform_unixware_g++.GNU @@ -1,6 +1,6 @@ # $Id$ -# UnixWare V2.2.1.2 with g++ version 2.7.2.2 *not* using Orbix +# UnixWare V2.2.1.2 with g++ version 2.7.2.2 #ifndef debug debug = 0 diff --git a/include/makeinclude/platform_unixware_udk.GNU b/include/makeinclude/platform_unixware_udk.GNU index 60e85b62649..32f971f7e30 100644 --- a/include/makeinclude/platform_unixware_udk.GNU +++ b/include/makeinclude/platform_unixware_udk.GNU @@ -1,6 +1,6 @@ # $Id$ -# UnixWare V2.2.1.2 with g++ version 2.7.2.2 *not* using Orbix +# UnixWare V2.2.1.2 with g++ version 2.7.2.2 #ifndef debug debug = 1 diff --git a/include/makeinclude/rules.local.GNU b/include/makeinclude/rules.local.GNU index b10ded1fe8f..c1390138069 100644 --- a/include/makeinclude/rules.local.GNU +++ b/include/makeinclude/rules.local.GNU @@ -24,23 +24,6 @@ build.local: $(BUILD) .SUFFIXES: .SUFFIXES: .cpp .cc .C .idl $(SUFFIXES) -ifndef TAO_ROOT -# and here's how to compile C++ files from the IDL file. -# only ONE of these rules will be run at make-time, - -# The rules are only used if TAO_ROOT is not defined to avoid -# conflicts with a similar rule in TAO. - -%S.cpp: %.idl - $(IDL) --version $(IDLFLAGS) $< - -%C.cpp: %.idl - $(IDL) --version $(IDLFLAGS) $< - -%.hh: %.idl - $(IDL) --version $(IDLFLAGS) $< -endif # TAO_ROOT - # C++ related targets ifeq ($(OS),"Windows_NT") diff --git a/include/makeinclude/wrapper_macros.GNU b/include/makeinclude/wrapper_macros.GNU index 3c0b386445c..a915d59d324 100644 --- a/include/makeinclude/wrapper_macros.GNU +++ b/include/makeinclude/wrapper_macros.GNU @@ -26,7 +26,6 @@ # inline Enable ACE inlining. Some platforms enable inlining by # default, others do not. # optimize Enable optimization; see OCFLAGS and OCCFLAGS. -# orbix Enable use of Orbix. # pace Enable PACE as the underpinnings of ACE_OS. # probe Enable ACE_Timeprobes. # profile Enable profiling; see PCFLAGS and PCCFLAGS. @@ -102,7 +101,6 @@ # MAKEFLAGS Flags that are passed into the compilation from the commandline # OCFLAGS Optimizing C compilation flags # OCCFLAGS Optimizing C++ compilation flags -# ORBIX_ROOT Root of IONA's Orbix CORBA implementation # PCFLAGS C compilation flags for profiling # PCCFLAGS C++ compilation flags for profiling # PLATFORM_XT_CPPFLAGS Platform CPP options for X11 (some require -I...) @@ -215,11 +213,6 @@ ifeq ($(IDL_SERVER_TSRC_EXT),) IDL_SERVER_TSRC_EXT = S_T.cpp endif -# This is for Orbix support, not related to TAO's IDL compiler. -# It is probably obsolete by now, if it works at all. -IDL = idl -IDLFLAGS = -A -B -s $(IDL_SERVER_SRC_EXT) -c $(IDL_CLIENT_SRC_EXT) - ifeq (,$(findstring -I$(ACE_ROOT),$(INCLDIRS))) INCLDIRS += -I$(ACE_ROOT) endif diff --git a/m4/ace.m4 b/m4/ace.m4 index 1faae4e9749..0393c191863 100644 --- a/m4/ace.m4 +++ b/m4/ace.m4 @@ -254,21 +254,6 @@ dnl line, then "no_x" is set to "yes." ]) AM_CONDITIONAL(COMPILE_GPERF, test X$ace_user_with_gperf = Xyes) - AC_ARG_WITH(orbix, - [ --with-orbix[=DIR] compile ACE with Orbix [default=no]], - [ - case "${withval}" in - yes) - AC_MSG_WARN(Orbix configure support not implemented yet.) - ;; - no) - ;; - *) - AC_MSG_WARN(Orbix configure support not implemented yet.) - ;; - esac - ],) - #AC_ARG_WITH(tao, # [ --with-tao build TAO (the ACE ORB) [default=yes]], # [ diff --git a/performance-tests/README b/performance-tests/README index d8e7d36c645..36751c061fe 100644 --- a/performance-tests/README +++ b/performance-tests/README @@ -7,8 +7,7 @@ and communication mechanisms. mechanisms. . TTCP -- Implements several variants of the TTCP benchmarking - test for TCP and UCP using C sockets, ACE C++ wrappers, and - several versions of CORBA (Orbix and ORBeline). + test for TCP and UCP using C sockets and ACE C++ wrappers. . UDP -- Contains UDP test, which measures UDP round-trip performance. diff --git a/performance-tests/TTCP/C/README b/performance-tests/TTCP/C/README index 137da71bf68..0da8b3d8010 100644 --- a/performance-tests/TTCP/C/README +++ b/performance-tests/TTCP/C/README @@ -1,36 +1,33 @@ - TTCP for c_version, ACE-wrappers, ORBeline and Orbix + TTCP for c_version and ACE-wrappers ---------------------------------------------------- -This is the super-readme file for the "ttcp" code. This directory contains the C, ACE-wrappers, -ORBeline and Orbix versions of ttcp code. To compile the code, you have to do the following: +This is the super-readme file for the "ttcp" code. This directory +contains the C and ACE-wrappers versions of ttcp code. To compile the +code, you have to do the following: -1. You should have ACE, ORBeline and Orbix installed in your system and configured correctly. - (see the reference manual for installation and configuration procedure) +1. You should have ACE installed in your system and configured + correctly. (see the reference manual for installation and + configuration procedure) -2. Copy this directory (ttcp) in the same directory structure to your disk space. +2. Copy this directory (ttcp) in the same directory structure to your + disk space. 3. setup the following environment parameters (before compilation stage): - ACE_ROOT, ORBELINE_ROOT, ORBIX_ROOT, LD_LIBRARY_PATH. + ACE_ROOT, LD_LIBRARY_PATH. For example: ACE_ROOT=/project/adaptive/ACE_wrappers -ORBELINE_ROOT=/project/adaptive/ORBelineV1.2 -ORBIX_ROOT=/project/adaptive/Orbix -LD_LIBRARY_PATH=/project/adaptive/ORBelineV1.2/lib - :/project/adaptive/ACE_wrappers/build/SunOS5.4/src - :/project/adaptive/Orbix/lib +LD_LIBRARY_PATH=/project/adaptive/ACE_wrappers/build/SunOS5.4/ace -4. Do make (using GNU make) in this directory level. This will create the executable ttcp - target code for each ttcp version. +4. Do make (using GNU make) in this directory level. This will create + the executable ttcp target code for each ttcp version. -5. Read the README or How_to_run_tests file existing in each directory to know how to use the - executable. +5. Read the README or How_to_run_tests file existing in each directory + to know how to use the executable. 6. Have fun. - - Ehab S. Al-Shaer 6/30/1995 |