diff options
author | mbrudka <mbrudka@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-01-23 01:30:32 +0000 |
---|---|---|
committer | mbrudka <mbrudka@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-01-23 01:30:32 +0000 |
commit | 64a8b101a6c5d47987892a0129c148a38fca17be (patch) | |
tree | f1a11a2cbf2feca71b9ff15288a392aa4efae06e /TAO/tao | |
parent | 2e0c262596bbc80570d7a9f4f2ec773d71958e2d (diff) | |
download | ATCD-64a8b101a6c5d47987892a0129c148a38fca17be.tar.gz |
ChangeLogTag: Sun Jan 23 01:54:59 2005 Marek Brudka <mbrudka@aster.pl>
Diffstat (limited to 'TAO/tao')
41 files changed, 1590 insertions, 274 deletions
diff --git a/TAO/tao/FlResource.mpc b/TAO/tao/FlResource.mpc new file mode 100644 index 00000000000..ebd95a5c9ae --- /dev/null +++ b/TAO/tao/FlResource.mpc @@ -0,0 +1,15 @@ +project(TAO_FlResource) : acelib, taolib, taoversion, core, tao_output, taodefaults, ace_flreactor { + sharedname = TAO_FlResource + dynamicflags += TAO_FLRESOURCE_BUILD_DLL + Header_Files { + FlResource_Factory.h + FlResource_Loader.h + TAO_FlResource_Export.h + } + Source_Files(TAO_COMPONENTS) { + Default_Resources { + FlResource_Factory.cpp + FlResource_Loader.cpp + } + } +} diff --git a/TAO/tao/FlResource_Factory.cpp b/TAO/tao/FlResource_Factory.cpp new file mode 100644 index 00000000000..b0529d29a0e --- /dev/null +++ b/TAO/tao/FlResource_Factory.cpp @@ -0,0 +1,36 @@ +//$Id$ + +#include "FlResource_Factory.h" +#include "debug.h" +#include "ace/FlReactor.h" + +ACE_RCSID( TAO_FlResource, + FlResource_Factory, + "$Id$"); + +namespace TAO +{ + + FlResource_Factory::FlResource_Factory (): + reactor_impl_( 0 ) + { + } + + ACE_Reactor_Impl * + FlResource_Factory::reactor_impl (void) + { + // synchronized by external locks + if (!this->reactor_impl_) + { + ACE_NEW_RETURN (this->reactor_impl_, + ACE_FlReactor (), + 0); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - ACE_FlReactor created \n")); + } + + return this->reactor_impl_; + } +} diff --git a/TAO/tao/FlResource_Factory.h b/TAO/tao/FlResource_Factory.h new file mode 100644 index 00000000000..ab34c6ef503 --- /dev/null +++ b/TAO/tao/FlResource_Factory.h @@ -0,0 +1,55 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file FlResource_Factory.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= +#ifndef TAO_FLRESOURCE_FACTORY_H +#define TAO_FLRESOURCE_FACTORY_H +#include /**/ "ace/pre.h" +#include "ace/FlReactor.h" +#include "tao/TAO_FlResource_Export.h" +#include "tao/GUIResource_Factory.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace TAO +{ + /** + * @class FlResource_Factory + * + * @brief TAO_GUI_Resource_Factory for creating FlReactor. + * + * This factory is intended for creating FlReactor for ORB. This + * factory can be feed into ORB using + * TAO_ORB_Core::set_gui_resource_factory method which is usually + * done by TAO_FlResource_Loader. + */ + + class TAO_FlResource_Export FlResource_Factory : public GUIResource_Factory + { + public: + + FlResource_Factory (); + + protected: + + /// Create or obtain current reactor implementation + virtual ACE_Reactor_Impl *reactor_impl (void); + + private: + + /// Reactor created by this factory. + ACE_FlReactor *reactor_impl_; + }; +} +#include /**/ "ace/post.h" +#endif /* TAO_FLRESOURCE_FACTORY_H */ diff --git a/TAO/tao/FlResource_Loader.cpp b/TAO/tao/FlResource_Loader.cpp new file mode 100644 index 00000000000..13f01c7bef4 --- /dev/null +++ b/TAO/tao/FlResource_Loader.cpp @@ -0,0 +1,26 @@ +//$Id$ +#include "FlResource_Loader.h" +#include "ORB_Core.h" +#include "FlResource_Factory.h" + +ACE_RCSID( TAO_FlResource, + FlResource_Loader, + "$Id$"); + +namespace TAO +{ + + FlResource_Loader::FlResource_Loader () + { + FlResource_Factory *tmp = 0; + + ACE_NEW (tmp, + FlResource_Factory ()); + + TAO_ORB_Core::set_gui_resource_factory( tmp ); + } + + FlResource_Loader::~FlResource_Loader () + { + } +} diff --git a/TAO/tao/FlResource_Loader.h b/TAO/tao/FlResource_Loader.h new file mode 100644 index 00000000000..c56c2c5a39f --- /dev/null +++ b/TAO/tao/FlResource_Loader.h @@ -0,0 +1,50 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file FlResource_Loader.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= + +#ifndef TAO_FLRESOURCE_LOADER_H +#define TAO_FLRESOURCE_LOADER_H +#include /**/ "ace/pre.h" +#include "tao/TAO_FlResource_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace TAO +{ + + /** + * @class FlResource_Loader + * + * @brief Loads TAO resources related with Fl. + * + * This class changes the default reactor implementation into + * ACE_FlReactor one by calling TAO_ORB_Core::set_gui_resource_factory. + * User should create an instance of this class before ORB_init + * when the TAO server has has to be integrated within Fl event loop. + * + * Please notice, this class has to be created in the main Fl thread, + * because set_gui_resource_factory creates a variable in TSS. This way + * FlReactor is instantiated only in Qt event loop thread. + */ + class TAO_FlResource_Export FlResource_Loader + { + + public: + FlResource_Loader ( ); + + virtual ~FlResource_Loader (); + }; +} +#include /**/ "ace/post.h" +#endif /* TAO_FLRESOURCE_LOADER_H */ diff --git a/TAO/tao/GUIResource_Factory.cpp b/TAO/tao/GUIResource_Factory.cpp new file mode 100644 index 00000000000..ae586a57a99 --- /dev/null +++ b/TAO/tao/GUIResource_Factory.cpp @@ -0,0 +1,55 @@ +//$Id$ +#include "tao/GUIResource_Factory.h" +#include "ace/Reactor.h" +#include "tao/debug.h" + +namespace TAO +{ + GUIResource_Factory::GUIResource_Factory (): + dynamically_allocated_reactor_ (0) + { + } + + GUIResource_Factory::~GUIResource_Factory () + { + } + + ACE_Reactor * + GUIResource_Factory::get_reactor (void) + { + // @@Marek, do we need a lock here?? + // @Bala, I suppose we don't need locking for any + // reasonable use case as this + // factory is intended to be a variable in TSS. + // I can imagine that someone may try to use it in distinct + // threads, though I do not know + // what for. Nevertheless, just for a case I sync the creation of reactor. + // I think, that double checked locking is + // not necessary, because the performance is not an issue here. + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + + ACE_Reactor *reactor = 0; + ACE_NEW_RETURN (reactor, + ACE_Reactor (this->reactor_impl (), 1), + 0); + + if (reactor->initialized () == 0) + { + delete reactor; + reactor = 0; + } + else + this->dynamically_allocated_reactor_ = 1; + + return reactor; + } + + void + GUIResource_Factory::reclaim_reactor (ACE_Reactor *reactor) + { + ACE_GUARD ( TAO_SYNCH_MUTEX, ace_mon, this->lock_ ); + + if (this->dynamically_allocated_reactor_ == 1) + delete reactor; + } +} diff --git a/TAO/tao/GUIResource_Factory.h b/TAO/tao/GUIResource_Factory.h new file mode 100644 index 00000000000..e10a3770497 --- /dev/null +++ b/TAO/tao/GUIResource_Factory.h @@ -0,0 +1,90 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file GUI_Resource_Factory.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= + +#ifndef TAO_GUI_RESOURCE_FACTORY_H +#define TAO_GUI_RESOURCE_FACTORY_H +#include /**/ "ace/pre.h" +#include "ace/Thread_Mutex.h" +#include "tao/TAO_Export.h" +#include "tao/orbconf.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +//forwards +class ACE_Reactor_Impl; +class ACE_Reactor; + +namespace TAO +{ + /** Abstract base class for the GUI resource factory. + * + * This base class for resource factories which provide + * GUIReactors integrated with specific GUI + * event loop. In general, children of this class reimplement + * reactor_impl method where specific + * GUIReactor is created. GUIResource_Factory are usually + * created by GUIResource_Loader subclasses. + * Children of this class will be held in TSS by the ORB Core. + */ + class TAO_Export GUIResource_Factory + { + public: + + GUIResource_Factory (); + + virtual ~GUIResource_Factory (); + + /** Create ACE_Reactor using allocate_reactor_impl. + * Please note that this call is NOT synchronized. Left to the + * higher level versions to synchronize access. + */ + virtual ACE_Reactor *get_reactor (void) ; + + /** Reclaim the reactor if allocated by this factory. + * Please note that this call is NOT synchronized. Left to the + * higher level versions to synchronize access. + */ + virtual void reclaim_reactor (ACE_Reactor *); + + protected: + + /** Create or return current reactor instance. + * Please note that this call is NOT synchronized. Left to the + * get_reactor to synchronize access. + */ + virtual ACE_Reactor_Impl *reactor_impl (void) = 0; + + private: + + /** + * Flag that is set to 1 if the reactor obtained from the + * get_reactor() method is dynamically allocated. If this flag is + * set to 1, then the reclaim_reactor() method with call the delete + * operator on the given reactor. This flag is necessary to make + * sure that a reactor not allocated by the default resource factory + * is not reclaimed by the default resource factory. Such a + * situation can occur when a resource factory derived from the + * default one overrides the get_reactor() method but does not + * override the reclaim_reactor() method. + */ + int dynamically_allocated_reactor_; + + /// for internal locking. + TAO_SYNCH_MUTEX lock_; + }; +} + +#include /**/ "ace/post.h" +#endif /*TAO_GUI_RESOURCE_FACTORY_H*/ diff --git a/TAO/tao/Leader_Follower.cpp b/TAO/tao/Leader_Follower.cpp index 308f613abd8..cf05375db8a 100644 --- a/TAO/tao/Leader_Follower.cpp +++ b/TAO/tao/Leader_Follower.cpp @@ -6,6 +6,7 @@ #include "tao/LF_Event_Binder.h" #include "tao/debug.h" #include "tao/Transport.h" +#include "tao/GUIResource_Factory.h" #include "ace/OS_NS_sys_time.h" #include "ace/Reactor.h" @@ -27,7 +28,12 @@ TAO_Leader_Follower::~TAO_Leader_Follower (void) delete follower; } // Hand the reactor back to the resource factory. - this->orb_core_->resource_factory ()->reclaim_reactor (this->reactor_); + // use GUI reactor factory if available + if ( this->orb_core_->gui_resource_factory () ) + this->orb_core_->gui_resource_factory ()->reclaim_reactor (this->reactor_); + else + this->orb_core_->resource_factory ()->reclaim_reactor (this->reactor_); + this->reactor_ = 0; } @@ -116,8 +122,13 @@ TAO_Leader_Follower::reactor (void) ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock (), 0); if (this->reactor_ == 0) { - this->reactor_ = - this->orb_core_->resource_factory ()->get_reactor (); + // use GUI reactor factory if available + if ( this->orb_core_->gui_resource_factory () ) + this->reactor_ = + this->orb_core_->gui_resource_factory ()->get_reactor (); + else + this->reactor_ = + this->orb_core_->resource_factory ()->get_reactor (); } } return this->reactor_; diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index d5f61469f9c..e3d47cbacf0 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -1230,6 +1230,23 @@ TAO_ORB_Core::set_resource_factory (const char *resource_factory_name) } void +TAO_ORB_Core::set_gui_resource_factory (TAO::GUIResource_Factory *gui_resource_factory) +{ + // @@Marek, I would as well like this to be stored in per-orb TSS + // instead of globasl TSS. Please see TAO_ORB_Core_TSS_Resources in + // ORB_Core.h for details. + if (TAO_TSS_RESOURCES::instance ()->gui_resource_factory_ != 0) + { + + ACE_DEBUG ((LM_WARNING, + "TAO (%P|%t) - Deleting old gui_resource_factory.\n")); + delete TAO_TSS_RESOURCES::instance ()->gui_resource_factory_; + } + + TAO_TSS_RESOURCES::instance ()->gui_resource_factory_ = gui_resource_factory; +} + +void TAO_ORB_Core::dynamic_adapter_name (const char *name) { TAO_ORB_Core_Static_Resources::instance ()->dynamic_adapter_name_ = name; @@ -1306,6 +1323,13 @@ TAO_ORB_Core::resource_factory (void) return this->resource_factory_; } +TAO::GUIResource_Factory * +TAO_ORB_Core::gui_resource_factory (void) +{ + return TAO_TSS_RESOURCES::instance ()->gui_resource_factory_; +} + + TAO_Thread_Lane_Resources_Manager & TAO_ORB_Core::thread_lane_resources_manager (void) { diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h index 5e225ddb5f5..4c2ecd1995b 100644 --- a/TAO/tao/ORB_Core.h +++ b/TAO/tao/ORB_Core.h @@ -104,6 +104,10 @@ class TAO_ClientRequestInfo; class TAO_Transport_Sync_Strategy; class TAO_Sync_Strategy; class TAO_Policy_Validator; +namespace TAO +{ + class GUIResource_Factory; +} namespace CORBA { @@ -189,7 +193,6 @@ public: /// current thread. TAO_ClientRequestInfo *client_request_info_; #endif /* TAO_HAS_INTERCEPTORS == 1 */ - }; @@ -293,7 +296,7 @@ public: * No-Collocation is a special case of collocation. */ static - TAO::Collocation_Strategy collocation_strategy (CORBA::Object_ptr object +TAO::Collocation_Strategy collocation_strategy (CORBA::Object_ptr object ACE_ENV_ARG_DECL); //@} @@ -375,6 +378,9 @@ public: /// Returns pointer to the resource factory. TAO_Resource_Factory *resource_factory (void); + /// Returns pointer to the factory for creating gui resources + TAO::GUIResource_Factory *gui_resource_factory (void); + /// Returns pointer to the client factory. TAO_Client_Strategy_Factory *client_factory (void); @@ -412,6 +418,13 @@ public: /// Sets the value of TAO_ORB_Core::resource_factory_ static void set_resource_factory (const char *resource_factory_name); + /** Sets the value of TAO_ORB_Core::gui_resource_factory_. + * + * Sets the value of gui_resource_factory in TSS. ORB_Core is responsible + * for releasing this factory if needed. + */ + static void set_gui_resource_factory (TAO::GUIResource_Factory *gui_resource_factory); + /// Sets the value of TAO_ORB_Core::protocols_hooks_ static void set_protocols_hooks (const char *protocols_hooks_name); @@ -460,6 +473,7 @@ public: /// Gets the value of TAO_ORB_Core::valuetype_adapter_name. static const char *valuetype_adapter_name (void); + /// See if we have a collocated address, if yes, return the POA /// associated with the address. int is_collocated (const TAO_MProfile& mprofile); diff --git a/TAO/tao/QtResource.mpc b/TAO/tao/QtResource.mpc new file mode 100644 index 00000000000..801422a9219 --- /dev/null +++ b/TAO/tao/QtResource.mpc @@ -0,0 +1,19 @@ +project(TAO_QtResource) : acelib, taolib, taoversion, core, tao_output, taodefaults, ace_qtreactor { + + sharedname = TAO_QtResource + + dynamicflags += TAO_QTRESOURCE_BUILD_DLL + + Header_Files { + QtResource_Factory.h + QtResource_Loader.h + TAO_QtResource_Export.h + } + + Source_Files(TAO_COMPONENTS) { + Default_Resources { + QtResource_Factory.cpp + QtResource_Loader.cpp + } + } +} diff --git a/TAO/tao/QtResource_Factory.cpp b/TAO/tao/QtResource_Factory.cpp new file mode 100644 index 00000000000..561fffca095 --- /dev/null +++ b/TAO/tao/QtResource_Factory.cpp @@ -0,0 +1,45 @@ +//$Id$ + +#include "QtResource_Factory.h" +#include "debug.h" +#include "ace/QtReactor.h" + +ACE_RCSID( TAO_QtResource, + QtResource_Factory, + "$Id$"); + +namespace TAO +{ + + QtResource_Factory::QtResource_Factory (QApplication *qapp) + : reactor_impl_ (0) + , qapp_ (qapp) + { + } + + ACE_Reactor_Impl * + QtResource_Factory::reactor_impl (void) + { // synchronized by external locks + if (this->qapp_ == 0) + { + ACE_ERROR ((LM_ERROR, + "TAO (%P|%t) - QApplication is undefined.", + " Cannot create ACE_XtReactor \n")); + return 0; + } + + if (!this->reactor_impl_) + { + + ACE_NEW_RETURN (this->reactor_impl_, + ACE_QtReactor (qapp_), + 0); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - ACE_QtReactor created\n")); + } + + return this->reactor_impl_; + } +} diff --git a/TAO/tao/QtResource_Factory.h b/TAO/tao/QtResource_Factory.h new file mode 100644 index 00000000000..5e9b78bf60b --- /dev/null +++ b/TAO/tao/QtResource_Factory.h @@ -0,0 +1,65 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file QtResource_Factory.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= +#ifndef TAO_QTRESOURCE_FACTORY_H +#define TAO_QTRESOURCE_FACTORY_H +#include /**/ "ace/pre.h" + +#include "tao/TAO_QtResource_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include <qapplication.h> +#include "ace/QtReactor.h" +#include "tao/GUIResource_Factory.h" + +namespace TAO +{ + + /** + * @class QtResource_Factory + * + * @brief TAO_GUI_Resource_Factory for creating QtReactor. + * + * This factory is intended for creating QtReactor for ORB. This + * factory can be feed into ORB using + * TAO_ORB_Core::set_gui_resource_factory method which is usually + * done by TAO_QtResource_Loader. + */ + class TAO_QtResource_Export QtResource_Factory : public GUIResource_Factory + { + public: + + QtResource_Factory (QApplication *qapp_); + + protected: + + /// Create or obtain current reactor implementation + virtual ACE_Reactor_Impl *reactor_impl (void); + + private: + + /// Reactor created by this factory. + ACE_QtReactor *reactor_impl_; + + /// QApplication running reactor + QApplication *qapp_; + + /// for internal locking. + TAO_SYNCH_MUTEX lock_; + }; +} + +#include /**/ "ace/post.h" +#endif /* TAO_QTRESOURCE_FACTORY_H */ diff --git a/TAO/tao/QtResource_Loader.cpp b/TAO/tao/QtResource_Loader.cpp new file mode 100644 index 00000000000..70fdae3053c --- /dev/null +++ b/TAO/tao/QtResource_Loader.cpp @@ -0,0 +1,25 @@ +//$Id$ +#include "QtResource_Loader.h" +#include "ORB_Core.h" +#include "QtResource_Factory.h" + +ACE_RCSID( TAO_QtResource, + QtResource_Loader, + "$Id$"); + +namespace TAO +{ + QtResource_Loader::QtResource_Loader (QApplication *qapp) + { + QtResource_Factory *tmp = 0; + + ACE_NEW (tmp, + QtResource_Factory (qapp)); + + TAO_ORB_Core::set_gui_resource_factory (tmp); + } + + QtResource_Loader::~QtResource_Loader (void) + { + } +} diff --git a/TAO/tao/QtResource_Loader.h b/TAO/tao/QtResource_Loader.h new file mode 100644 index 00000000000..14a2e6d84b6 --- /dev/null +++ b/TAO/tao/QtResource_Loader.h @@ -0,0 +1,52 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file QtResource_Loader.h + * + * $Id$ + * + * @author Marek Brudka <mbrudka@aster.pl> + * @author Balachandran Natarajan <bala@cs.wustl.edu> + */ +//============================================================================= + +#ifndef TAO_QTRESOURCE_LOADER_H +#define TAO_QTRESOURCE_LOADER_H +#include /**/ "ace/pre.h" + +#include "tao/TAO_QtResource_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include <qapplication.h> + +namespace TAO +{ + /** + * @class QtResource_Loader + * + * @brief Loads TAO resources related with Qt. + * + * This class changes the default reactor implementation into + * ACE_QtReactor one by calling TAO_ORB_Core::set_gui_resource_factory. + * User should create an instance of this class before ORB_init + * when the TAO server has has to be integrated within Qt event loop. + * + * Please notice, this class has to be created in the main Qt thread, + * because set_gui_resource_factory creates a variable in TSS. This way + * QtReactor is instantiated only in Qt event loop thread. + */ + + class TAO_QtResource_Export QtResource_Loader + { + public: + QtResource_Loader (QApplication *qapp); + + virtual ~QtResource_Loader (void); + }; +} +#include /**/ "ace/post.h" +#endif /* TAO_QTRESOURCE_LOADER_H */ diff --git a/TAO/tao/Strategies.mpc b/TAO/tao/Strategies.mpc index 266541846ea..d4ae5aa3c54 100644 --- a/TAO/tao/Strategies.mpc +++ b/TAO/tao/Strategies.mpc @@ -1,4 +1,5 @@ //$Id$ + project : taolib, core { sharedname = TAO_Strategies dynamicflags = TAO_STRATEGIES_BUILD_DLL diff --git a/TAO/tao/Strategies/advanced_resource.cpp b/TAO/tao/Strategies/advanced_resource.cpp index 2703a4e1590..8f33d43c0a7 100644 --- a/TAO/tao/Strategies/advanced_resource.cpp +++ b/TAO/tao/Strategies/advanced_resource.cpp @@ -1,5 +1,5 @@ // $Id$ - +#include "ace/Service_Config.h" #include "advanced_resource.h" #include "UIOP_Factory.h" @@ -19,14 +19,13 @@ #include "tao/LF_Follower.h" #include "tao/Leader_Follower.h" #include "tao/StringSeqC.h" +#include "tao/ORB_Core.h" #include "ace/Arg_Shifter.h" #include "ace/Auto_Ptr.h" #include "ace/Dynamic_Service.h" #include "ace/Service_Config.h" #include "ace/Select_Reactor.h" -#include "ace/FlReactor.h" -#include "ace/TkReactor.h" #include "ace/WFMO_Reactor.h" #include "ace/Msg_WFMO_Reactor.h" #include "ace/TP_Reactor.h" @@ -39,6 +38,7 @@ ACE_RCSID(Strategies, advanced_resource, "$Id$") TAO_Resource_Factory_Changer::TAO_Resource_Factory_Changer (void) { + TAO_ORB_Core::set_resource_factory ("Advanced_Resource_Factory"); ACE_Service_Config::process_directive (ace_svc_desc_TAO_Advanced_Resource_Factory); @@ -100,6 +100,7 @@ TAO_Advanced_Resource_Factory::init (int argc, ACE_TCHAR** argv) } this->options_processed_ = 1; + // If the default resource factory exists, then disable it. // This causes any directives for the "Resource_Factory" to // report warnings. @@ -150,19 +151,6 @@ TAO_Advanced_Resource_Factory::init (int argc, ACE_TCHAR** argv) ACE_TEXT("select_st")) == 0) this->reactor_type_ = TAO_REACTOR_SELECT_ST; else if (ACE_OS::strcasecmp (current_arg, - ACE_TEXT("fl")) == 0) -#if defined(ACE_HAS_FL) - this->reactor_type_ = TAO_REACTOR_FL; -#else - this->report_unsupported_error (ACE_TEXT("FlReactor")); -#endif /* ACE_HAS_FL */ - else if (ACE_OS::strcasecmp (current_arg, ACE_TEXT("tk_reactor")) == 0) -#if defined(ACE_HAS_TK) - this->reactor_type_ = TAO_REACTOR_TK; -#else - this->report_unsupported_error (ACE_TEXT("TkReactor")); -#endif /* ACE_HAS_TK */ - else if (ACE_OS::strcasecmp (current_arg, ACE_TEXT("wfmo")) == 0) #if defined(ACE_WIN32) this->reactor_type_ = TAO_REACTOR_WFMO; @@ -180,6 +168,16 @@ TAO_Advanced_Resource_Factory::init (int argc, ACE_TCHAR** argv) else if (ACE_OS::strcasecmp (current_arg, ACE_TEXT("tp")) == 0) this->reactor_type_ = TAO_REACTOR_TP; + else if (ACE_OS::strcasecmp (current_arg, + ACE_TEXT("fl")) == 0) + this->report_option_value_error ( + ACE_TEXT("FlReactor not supported by Advanced_Resources_Factory. Please use TAO_FlResource_Loader instead."), + current_arg); + else if (ACE_OS::strcasecmp (current_arg, + ACE_TEXT("tk")) == 0) + this->report_option_value_error ( + ACE_TEXT("TkReactor not supported by Advanced_Resources_Factory. Please use TAO_TkResource_Loader instead."), + current_arg); else this->report_option_value_error (ACE_TEXT("-ORBReactorType"), current_arg); @@ -276,7 +274,7 @@ TAO_Advanced_Resource_Factory::init (int argc, ACE_TCHAR** argv) ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TAO_Advanced_Resource_Factory: -ORBReactorThreadQueue ") ACE_TEXT ("option can only be used with -ORBReactorType ") - ACE_TEXT ("tp (default).\n"))); + ACE_TEXT ("tp.\n"))); // Explicitely set the default only if not set. else if (this->threadqueue_type_ == TAO_THREAD_QUEUE_NOT_SET) this->threadqueue_type_ = TAO_THREAD_QUEUE_LIFO; @@ -305,6 +303,7 @@ TAO_Advanced_Resource_Factory::load_default_protocols (void) int TAO_Advanced_Resource_Factory::init_protocol_factories (void) { + // If the default resource factory exists, then disable it. // This causes any directives for the "Resource_Factory" to // report warnings. @@ -618,6 +617,8 @@ TAO_Advanced_Resource_Factory::init_protocol_factories (void) return 0; } + + TAO_ProtocolFactorySet * TAO_Advanced_Resource_Factory::get_protocol_factories (void) { @@ -650,18 +651,6 @@ TAO_Advanced_Resource_Factory::allocate_reactor_impl (void) const 0); break; - case TAO_REACTOR_FL: -#if defined(ACE_HAS_FL) - ACE_NEW_RETURN (impl, ACE_FlReactor, 0); -#endif /* ACE_HAS_FL */ - break; - - case TAO_REACTOR_TK: -#if defined(ACE_HAS_TK) - ACE_NEW_RETURN (impl, ACE_TkReactor, 0); -#endif /* ACE_HAS_TK */ - break; - case TAO_REACTOR_WFMO: #if defined(ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO) ACE_NEW_RETURN (impl, ACE_WFMO_Reactor, 0); diff --git a/TAO/tao/Strategies/advanced_resource.h b/TAO/tao/Strategies/advanced_resource.h index 4e3fa7508c6..7cefef08844 100644 --- a/TAO/tao/Strategies/advanced_resource.h +++ b/TAO/tao/Strategies/advanced_resource.h @@ -30,6 +30,7 @@ public: * factory can return resource instances which are, e.g., global, * stored in thread-specific storage, stored in shared memory, * etc. + * */ class TAO_Strategies_Export TAO_Advanced_Resource_Factory : public TAO_Default_Resource_Factory { @@ -56,15 +57,13 @@ public: enum { /// Use ACE_Token - TAO_REACTOR_SELECT_MT, + TAO_REACTOR_SELECT_MT = 1 , /// Use ACE_Noop_Token - TAO_REACTOR_SELECT_ST, - TAO_REACTOR_FL, - TAO_REACTOR_TK, - TAO_REACTOR_WFMO, - TAO_REACTOR_MSGWFMO, - TAO_REACTOR_TP + TAO_REACTOR_SELECT_ST = 2, + TAO_REACTOR_WFMO = 3, + TAO_REACTOR_MSGWFMO = 4 , + TAO_REACTOR_TP = 5, }; /// Thread queueing Strategy diff --git a/TAO/tao/TAO_FlResource_Export.h b/TAO/tao/TAO_FlResource_Export.h new file mode 100644 index 00000000000..e63890b54a6 --- /dev/null +++ b/TAO/tao/TAO_FlResource_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s TAO_FlResource +// ------------------------------ +#ifndef TAO_FLRESOURCE_EXPORT_H +#define TAO_FLRESOURCE_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_FLRESOURCE_HAS_DLL) +# define TAO_FLRESOURCE_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && TAO_FLRESOURCE_HAS_DLL */ + +#if !defined (TAO_FLRESOURCE_HAS_DLL) +# define TAO_FLRESOURCE_HAS_DLL 1 +#endif /* ! TAO_FLRESOURCE_HAS_DLL */ + +#if defined (TAO_FLRESOURCE_HAS_DLL) && (TAO_FLRESOURCE_HAS_DLL == 1) +# if defined (TAO_FLRESOURCE_BUILD_DLL) +# define TAO_FlResource_Export ACE_Proper_Export_Flag +# define TAO_FLRESOURCE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_FLRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_FLRESOURCE_BUILD_DLL */ +# define TAO_FlResource_Export ACE_Proper_Import_Flag +# define TAO_FLRESOURCE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_FLRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_FLRESOURCE_BUILD_DLL */ +#else /* TAO_FLRESOURCE_HAS_DLL == 1 */ +# define TAO_FlResource_Export +# define TAO_FLRESOURCE_SINGLETON_DECLARATION(T) +# define TAO_FLRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_FLRESOURCE_HAS_DLL == 1 */ + +// Set TAO_FLRESOURCE_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_FLRESOURCE_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_FLRESOURCE_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_FLRESOURCE_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_FLRESOURCE_NTRACE */ + +#if (TAO_FLRESOURCE_NTRACE == 1) +# define TAO_FLRESOURCE_TRACE(X) +#else /* (TAO_FLRESOURCE_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define TAO_FLRESOURCE_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (TAO_FLRESOURCE_NTRACE == 1) */ + +#endif /* TAO_FLRESOURCE_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/TAO_QtResource_Export.h b/TAO/tao/TAO_QtResource_Export.h new file mode 100644 index 00000000000..1e61d00a1c0 --- /dev/null +++ b/TAO/tao/TAO_QtResource_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s TAO_QtResource +// ------------------------------ +#ifndef TAO_QTRESOURCE_EXPORT_H +#define TAO_QTRESOURCE_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_QTRESOURCE_HAS_DLL) +# define TAO_QTRESOURCE_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && TAO_QTRESOURCE_HAS_DLL */ + +#if !defined (TAO_QTRESOURCE_HAS_DLL) +# define TAO_QTRESOURCE_HAS_DLL 1 +#endif /* ! TAO_QTRESOURCE_HAS_DLL */ + +#if defined (TAO_QTRESOURCE_HAS_DLL) && (TAO_QTRESOURCE_HAS_DLL == 1) +# if defined (TAO_QTRESOURCE_BUILD_DLL) +# define TAO_QtResource_Export ACE_Proper_Export_Flag +# define TAO_QTRESOURCE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_QTRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_QTRESOURCE_BUILD_DLL */ +# define TAO_QtResource_Export ACE_Proper_Import_Flag +# define TAO_QTRESOURCE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_QTRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_QTRESOURCE_BUILD_DLL */ +#else /* TAO_QTRESOURCE_HAS_DLL == 1 */ +# define TAO_QtResource_Export +# define TAO_QTRESOURCE_SINGLETON_DECLARATION(T) +# define TAO_QTRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_QTRESOURCE_HAS_DLL == 1 */ + +// Set TAO_QTRESOURCE_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_QTRESOURCE_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_QTRESOURCE_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_QTRESOURCE_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_QTRESOURCE_NTRACE */ + +#if (TAO_QTRESOURCE_NTRACE == 1) +# define TAO_QTRESOURCE_TRACE(X) +#else /* (TAO_QTRESOURCE_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define TAO_QTRESOURCE_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (TAO_QTRESOURCE_NTRACE == 1) */ + +#endif /* TAO_QTRESOURCE_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/TAO_TkResource_Export.h b/TAO/tao/TAO_TkResource_Export.h new file mode 100644 index 00000000000..34904a6d9af --- /dev/null +++ b/TAO/tao/TAO_TkResource_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s TAO_TkResource +// ------------------------------ +#ifndef TAO_TKRESOURCE_EXPORT_H +#define TAO_TKRESOURCE_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_TKRESOURCE_HAS_DLL) +# define TAO_TKRESOURCE_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && TAO_TKRESOURCE_HAS_DLL */ + +#if !defined (TAO_TKRESOURCE_HAS_DLL) +# define TAO_TKRESOURCE_HAS_DLL 1 +#endif /* ! TAO_TKRESOURCE_HAS_DLL */ + +#if defined (TAO_TKRESOURCE_HAS_DLL) && (TAO_TKRESOURCE_HAS_DLL == 1) +# if defined (TAO_TKRESOURCE_BUILD_DLL) +# define TAO_TkResource_Export ACE_Proper_Export_Flag +# define TAO_TKRESOURCE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_TKRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_TKRESOURCE_BUILD_DLL */ +# define TAO_TkResource_Export ACE_Proper_Import_Flag +# define TAO_TKRESOURCE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_TKRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_TKRESOURCE_BUILD_DLL */ +#else /* TAO_TKRESOURCE_HAS_DLL == 1 */ +# define TAO_TkResource_Export +# define TAO_TKRESOURCE_SINGLETON_DECLARATION(T) +# define TAO_TKRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_TKRESOURCE_HAS_DLL == 1 */ + +// Set TAO_TKRESOURCE_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_TKRESOURCE_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_TKRESOURCE_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_TKRESOURCE_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_TKRESOURCE_NTRACE */ + +#if (TAO_TKRESOURCE_NTRACE == 1) +# define TAO_TKRESOURCE_TRACE(X) +#else /* (TAO_TKRESOURCE_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define TAO_TKRESOURCE_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (TAO_TKRESOURCE_NTRACE == 1) */ + +#endif /* TAO_TKRESOURCE_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/TAO_XtResource_Export.h b/TAO/tao/TAO_XtResource_Export.h new file mode 100644 index 00000000000..5cc41d8da11 --- /dev/null +++ b/TAO/tao/TAO_XtResource_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl -s TAO_XtResource +// ------------------------------ +#ifndef TAO_XTRESOURCE_EXPORT_H +#define TAO_XTRESOURCE_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_XTRESOURCE_HAS_DLL) +# define TAO_XTRESOURCE_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && TAO_XTRESOURCE_HAS_DLL */ + +#if !defined (TAO_XTRESOURCE_HAS_DLL) +# define TAO_XTRESOURCE_HAS_DLL 1 +#endif /* ! TAO_XTRESOURCE_HAS_DLL */ + +#if defined (TAO_XTRESOURCE_HAS_DLL) && (TAO_XTRESOURCE_HAS_DLL == 1) +# if defined (TAO_XTRESOURCE_BUILD_DLL) +# define TAO_XtResource_Export ACE_Proper_Export_Flag +# define TAO_XTRESOURCE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_XTRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_XTRESOURCE_BUILD_DLL */ +# define TAO_XtResource_Export ACE_Proper_Import_Flag +# define TAO_XTRESOURCE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_XTRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_XTRESOURCE_BUILD_DLL */ +#else /* TAO_XTRESOURCE_HAS_DLL == 1 */ +# define TAO_XtResource_Export +# define TAO_XTRESOURCE_SINGLETON_DECLARATION(T) +# define TAO_XTRESOURCE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_XTRESOURCE_HAS_DLL == 1 */ + +// Set TAO_XTRESOURCE_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_XTRESOURCE_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_XTRESOURCE_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_XTRESOURCE_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_XTRESOURCE_NTRACE */ + +#if (TAO_XTRESOURCE_NTRACE == 1) +# define TAO_XTRESOURCE_TRACE(X) +#else /* (TAO_XTRESOURCE_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define TAO_XTRESOURCE_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (TAO_XTRESOURCE_NTRACE == 1) */ + +#endif /* TAO_XTRESOURCE_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/TSS_Resources.cpp b/TAO/tao/TSS_Resources.cpp index d0e1acf739f..1085b0e68bb 100644 --- a/TAO/tao/TSS_Resources.cpp +++ b/TAO/tao/TSS_Resources.cpp @@ -1,28 +1,33 @@ // $Id$ #include "TSS_Resources.h" +#include "GUIResource_Factory.h" ACE_RCSID (tao, TSS_Resources, "$Id$") TAO_TSS_Resources::TAO_TSS_Resources (void) - : poa_current_impl_ (0), - rtscheduler_current_impl_ (0), - rtscheduler_previous_current_impl_ (0), - default_environment_ (&this->tss_environment_) + : poa_current_impl_ (0) + , rtscheduler_current_impl_ (0) + , rtscheduler_previous_current_impl_ (0) + , default_environment_ (&this->tss_environment_) #if (TAO_HAS_CORBA_MESSAGING == 1) , policy_current_ (&this->initial_policy_current_) #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ + , gui_resource_factory_ (0) { } TAO_TSS_Resources::~TAO_TSS_Resources (void) { + if (gui_resource_factory_) + delete gui_resource_factory_; + gui_resource_factory_ = 0; } // **************************************************************** diff --git a/TAO/tao/TSS_Resources.h b/TAO/tao/TSS_Resources.h index 1fb3d2302b0..fa67eead299 100644 --- a/TAO/tao/TSS_Resources.h +++ b/TAO/tao/TSS_Resources.h @@ -27,6 +27,11 @@ #include "tao/Environment.h" #include "tao/TAO_Export.h" +// Forward declarations +namespace TAO +{ + class GUIResource_Factory; +} /** * @class TAO_TSS_Resources * @@ -88,7 +93,12 @@ public: TAO_Policy_Current_Impl * policy_current_; #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ - + /** A factory for creating GUIReactors. + * + * GUIResource_Factory has to be stored in TSS, as GUIReactor are operational + * only in within the context of GUI event loops. + */ + TAO::GUIResource_Factory *gui_resource_factory_; }; /** diff --git a/TAO/tao/TkResource.mpc b/TAO/tao/TkResource.mpc new file mode 100644 index 00000000000..1b857222914 --- /dev/null +++ b/TAO/tao/TkResource.mpc @@ -0,0 +1,15 @@ +project(TAO_TkResource) : acelib, taolib, taoversion, core, tao_output, taodefaults, ace_tkreactor { + sharedname = TAO_TkResource + dynamicflags += TAO_TKRESOURCE_BUILD_DLL + Header_Files { + TkResource_Factory.h + TkResource_Loader.h + TAO_TkResource_Export.h + } + Source_Files(TAO_COMPONENTS) { + Default_Resources { + TkResource_Factory.cpp + TkResource_Loader.cpp + } + } +} diff --git a/TAO/tao/TkResource_Factory.cpp b/TAO/tao/TkResource_Factory.cpp new file mode 100644 index 00000000000..765e7a40e02 --- /dev/null +++ b/TAO/tao/TkResource_Factory.cpp @@ -0,0 +1,37 @@ +//$Id$ + +#include "tao/TkResource_Factory.h" +#include "tao/debug.h" +#include "ace/TkReactor.h" + +ACE_RCSID( TAO_TkResource, + TkResource_Factory, + "$Id$"); + + +namespace TAO +{ + + TkResource_Factory::TkResource_Factory (): + reactor_impl_( 0 ) + { + } + + ACE_Reactor_Impl * + TkResource_Factory::reactor_impl (void) + { + // synchronized by external locks + if (!this->reactor_impl_) + { + ACE_NEW_RETURN (this->reactor_impl_, + ACE_TkReactor (), + 0); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - ACE_TkReactor created \n")); + } + + return this->reactor_impl_; + } +} diff --git a/TAO/tao/TkResource_Factory.h b/TAO/tao/TkResource_Factory.h new file mode 100644 index 00000000000..e08b436d274 --- /dev/null +++ b/TAO/tao/TkResource_Factory.h @@ -0,0 +1,59 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file TkResource_Factory.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= +#ifndef TAO_TKRESOURCE_FACTORY_H +#define TAO_TKRESOURCE_FACTORY_H +#include /**/ "ace/pre.h" +#include "ace/TkReactor.h" +#include "tao/TAO_TkResource_Export.h" +#include "tao/GUIResource_Factory.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace TAO +{ + + /** + * @class TkResource_Factory + * + * @brief TAO_GUI_Resource_Factory for creating TkReactor. + * + * This factory is intended for creating TkReactor for ORB. This + * factory can be feed into ORB using + * TAO_ORB_Core::set_gui_resource_factory method which is usually + * done by TAO_TkResource_Loader. + */ + + class TAO_TkResource_Export TkResource_Factory : public GUIResource_Factory + { + public: + + TkResource_Factory (); + + protected: + + /// Create or obtain current reactor implementation + virtual ACE_Reactor_Impl *reactor_impl (void); + + private: + + /// Reactor created by this factory. + ACE_TkReactor *reactor_impl_; + + /// for internal locking. + TAO_SYNCH_MUTEX lock_; + }; +} +#include /**/ "ace/post.h" +#endif /* TAO_TKRESOURCE_FACTORY_H */ diff --git a/TAO/tao/TkResource_Loader.cpp b/TAO/tao/TkResource_Loader.cpp new file mode 100644 index 00000000000..782fbc92bf0 --- /dev/null +++ b/TAO/tao/TkResource_Loader.cpp @@ -0,0 +1,26 @@ +//$Id$ +#include "TkResource_Loader.h" +#include "ORB_Core.h" +#include "TkResource_Factory.h" + +ACE_RCSID( TAO_TkResource, + TkResource_Loader, + "$Id$"); + +namespace TAO +{ + + TkResource_Loader::TkResource_Loader () + { + TkResource_Factory *tmp = 0; + + ACE_NEW (tmp, + TkResource_Factory ()); + + TAO_ORB_Core::set_gui_resource_factory( tmp ); + } + + TkResource_Loader::~TkResource_Loader () + { + } +} diff --git a/TAO/tao/TkResource_Loader.h b/TAO/tao/TkResource_Loader.h new file mode 100644 index 00000000000..9b20a5eac02 --- /dev/null +++ b/TAO/tao/TkResource_Loader.h @@ -0,0 +1,49 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file TkResource_Loader.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= + +#ifndef TAO_TKRESOURCE_LOADER_H +#define TAO_TKRESOURCE_LOADER_H +#include /**/ "ace/pre.h" +#include "tao/TAO_TkResource_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace TAO +{ + /** + * @class TkResource_Loader + * + * @brief Loads TAO resources related with Tk. + * + * This class changes the default reactor implementation into + * ACE_TkReactor one by calling TAO_ORB_Core::set_gui_resource_factory. + * User should create an instance of this class before ORB_init + * when the TAO server has has to be integrated within Tk event loop. + * + * Please notice, this class has to be created in the main Tk thread, + * because set_gui_resource_factory creates a variable in TSS. This way + * TkReactor is instantiated only in Tk event loop thread. + */ + class TAO_TkResource_Export TkResource_Loader + { + + public: + TkResource_Loader ( ); + + virtual ~TkResource_Loader (); + }; +} +#include /**/ "ace/post.h" +#endif /* TAO_TKRESOURCE_LOADER_H */ diff --git a/TAO/tao/XtResource.mpc b/TAO/tao/XtResource.mpc new file mode 100644 index 00000000000..e0754fe1ca5 --- /dev/null +++ b/TAO/tao/XtResource.mpc @@ -0,0 +1,15 @@ +project(TAO_XtResource) : acelib, taolib, taoversion, core, tao_output, taodefaults, ace_xtreactor { + sharedname = TAO_XtResource + dynamicflags += TAO_XTRESOURCE_BUILD_DLL + Header_Files { + XtResource_Factory.h + XtResource_Loader.h + TAO_XtResource_Export.h + } + Source_Files(TAO_COMPONENTS) { + Default_Resources { + XtResource_Factory.cpp + XtResource_Loader.cpp + } + } +} diff --git a/TAO/tao/XtResource_Factory.cpp b/TAO/tao/XtResource_Factory.cpp new file mode 100644 index 00000000000..5ca19fba0f0 --- /dev/null +++ b/TAO/tao/XtResource_Factory.cpp @@ -0,0 +1,45 @@ +//$Id$ + +#include "XtResource_Factory.h" +#include "debug.h" +#include "ace/XtReactor.h" + +ACE_RCSID( TAO_XtResource, + XtResource_Factory, + "$Id$"); + +namespace TAO +{ + + XtResource_Factory::XtResource_Factory (XtAppContext p_context): + reactor_impl_( 0 ), + context_( p_context ) + { + } + + ACE_Reactor_Impl * + XtResource_Factory::reactor_impl (void) + { + // synchronized by external locks + if (this->context_ == 0) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT("TAO (%P|%t) - XtAppContext is undefined.") + ACE_TEXT(" Cannot create ACE_XtReactor \n"))); + return 0; + } + + if (!this->reactor_impl_) + { + ACE_NEW_RETURN (this->reactor_impl_, + ACE_XtReactor (this->context_), + 0); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - ACE_XtReactor created \n")); + } + + return this->reactor_impl_; + } +} diff --git a/TAO/tao/XtResource_Factory.h b/TAO/tao/XtResource_Factory.h new file mode 100644 index 00000000000..5498865a256 --- /dev/null +++ b/TAO/tao/XtResource_Factory.h @@ -0,0 +1,61 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file XtResource_Factory.h + * + * $Id$ + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= +#ifndef TAO_XTRESOURCE_FACTORY_H +#define TAO_XTRESOURCE_FACTORY_H +#include /**/ "ace/pre.h" +#include /**/ <X11/Intrinsic.h> +#include "tao/TAO_XtResource_Export.h" +#include "ace/XtReactor.h" +#include "tao/GUIResource_Factory.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace TAO +{ + + /** + * @class XtResource_Factory + * + * @brief TAO_GUI_Resource_Factory for creating XtReactor. + * + * This factory is intended for creating XtReactor for ORB. This + * factory can be feed into ORB using + * TAO_ORB_Core::set_gui_resource_factory method which is usually + * done by TAO_XtResource_Loader. + */ + + class TAO_XtResource_Export XtResource_Factory : public GUIResource_Factory + { + public: + XtResource_Factory (XtAppContext context); + + /// Create or obtain current reactor implementation + virtual ACE_Reactor_Impl *reactor_impl (void); + + private: + + /// Reactor created by this factory. + ACE_XtReactor *reactor_impl_; + + /// Xt context for XtReactor + XtAppContext context_; + + /// for internal locking + TAO_SYNCH_MUTEX lock_; + }; +} + +#include /**/ "ace/post.h" +#endif /* TAO_XTRESOURCE_FACTORY_H */ diff --git a/TAO/tao/XtResource_Loader.cpp b/TAO/tao/XtResource_Loader.cpp new file mode 100644 index 00000000000..d2350ddcc00 --- /dev/null +++ b/TAO/tao/XtResource_Loader.cpp @@ -0,0 +1,26 @@ +//$Id$ +#include "XtResource_Loader.h" +#include "ORB_Core.h" +#include "XtResource_Factory.h" + +ACE_RCSID( TAO_XtResource, + XtResource_Loader, + "$Id$"); + +namespace TAO +{ + + XtResource_Loader::XtResource_Loader (XtAppContext context) + { + XtResource_Factory *tmp = 0; + + ACE_NEW (tmp, + XtResource_Factory (context)); + + TAO_ORB_Core::set_gui_resource_factory( tmp ); + } + + XtResource_Loader::~XtResource_Loader () + { + } +} diff --git a/TAO/tao/XtResource_Loader.h b/TAO/tao/XtResource_Loader.h new file mode 100644 index 00000000000..f3e809ab1ed --- /dev/null +++ b/TAO/tao/XtResource_Loader.h @@ -0,0 +1,50 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file XtResource_Loader.h + * + * $Id$ + * + * @author Marek Brudka <mbrudka@aster.pl> + * @author Balachandran Natarajan <bala@cs.wustl.edu> + */ +//============================================================================= + +#ifndef TAO_XTRESOURCE_LOADER_H +#define TAO_XTRESOURCE_LOADER_H +#include /**/ "ace/pre.h" +#include /**/ <X11/Intrinsic.h> +#include "tao/TAO_XtResource_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace TAO +{ + /** + * @class XtResource_Loader + * + * @brief Loads TAO resources related with Xt. + * + * This class changes the default reactor implementation into + * ACE_XtReactor one by calling TAO_ORB_Core::set_gui_resource_factory. + * User should create an instance of this class before ORB_init + * when the TAO server has has to be integrated within Xt event loop. + * + * Please notice, this class has to be created in the main Xt thread, + * because set_gui_resource_factory creates a variable in TSS. This way + * XtReactor is instantiated only in Xt event loop thread. + */ + class TAO_XtResource_Export XtResource_Loader + { + + public: + XtResource_Loader (XtAppContext context); + + virtual ~XtResource_Loader (); + }; +} +#include /**/ "ace/post.h" +#endif /* TAO_XTRESOURCE_LOADER_H */ diff --git a/TAO/tao/qt_resource.cpp b/TAO/tao/qt_resource.cpp deleted file mode 100644 index 5207f41c981..00000000000 --- a/TAO/tao/qt_resource.cpp +++ /dev/null @@ -1,41 +0,0 @@ -//$Id$ -#include "tao/qt_resource.h" - -#if defined (ACE_HAS_QT) - -#if !defined (__ACE_INLINE__) -# include "qt_resource.i" -#endif /* ! __ACE_INLINE__ */ - -QApplication *TAO_QtResource_Factory::qapp_ = 0 ; - -ACE_Reactor_Impl * -TAO_QtResource_Factory::allocate_reactor_impl (void) const -{ - if (this->qapp_ == 0) - return 0; - - ACE_Reactor_Impl *impl = 0; - - ACE_NEW_RETURN(impl, - ACE_QtReactor (qapp_), - 0); - return impl; -} - -void -TAO_QtResource_Factory::set_context (QApplication *qapp) -{ - TAO_QtResource_Factory::qapp_ = qapp; -} - -ACE_STATIC_SVC_DEFINE (TAO_QtResource_Factory, - ACE_TEXT ("QtResource_Factory"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_QtResource_Factory), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) - -ACE_FACTORY_DEFINE (TAO, TAO_QtResource_Factory) - -#endif /* ACE_HAS_QT */ diff --git a/TAO/tao/qt_resource.h b/TAO/tao/qt_resource.h deleted file mode 100644 index 6e7a84c5b15..00000000000 --- a/TAO/tao/qt_resource.h +++ /dev/null @@ -1,63 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file qt_resource.h - * - * $Id$ - * - * @author Hamish Friedlander <ullexco@wave.co.nz> - * @author Balachandran Natarajan <bala@cs.wustl.edu> - */ -//============================================================================= - -#ifndef _TAO_QTRESOURCE_H -#define _TAO_QTRESOURCE_H -#include /**/ "ace/pre.h" - -#include "tao/default_resource.h" -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_QT) -#include "ace/QtReactor.h" - - -/** - * @class TAO_QtResource_Factory - * - * @brief TAO's default resource factory - * - * Using a <{resource source specifier}> as a discriminator, the - * factory can return resource instances which are, e.g., global, - * stored in thread-specific storage, stored in shared memory, - * etc. - */ -class TAO_Export TAO_QtResource_Factory : public TAO_Default_Resource_Factory -{ - -public: - TAO_QtResource_Factory (void); - - /// Set the context used to create the QtReactor - static void set_context (QApplication *qapp) ; - -protected: - /// Obtain the reactor implementation - virtual ACE_Reactor_Impl *allocate_reactor_impl (void) const; - -private: - static QApplication *qapp_ ; -}; - -#if defined (__ACE_INLINE__) -#include "tao/qt_resource.i" -#endif /* __ACE_INLINE__ */ - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO, TAO_QtResource_Factory) -ACE_FACTORY_DECLARE (TAO, TAO_QtResource_Factory) - -#endif /*ACE_HAS_QT */ -#include /**/ "ace/post.h" -#endif /* QTRESOURCE_H */ diff --git a/TAO/tao/qt_resource.i b/TAO/tao/qt_resource.i deleted file mode 100644 index 633d38ff2aa..00000000000 --- a/TAO/tao/qt_resource.i +++ /dev/null @@ -1,5 +0,0 @@ -//$Id$ -ACE_INLINE -TAO_QtResource_Factory::TAO_QtResource_Factory (void) -{ -} diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc index eea53137f1b..02a7b9d1efc 100644 --- a/TAO/tao/tao.mpc +++ b/TAO/tao/tao.mpc @@ -203,7 +203,6 @@ project(TAO) : acelib, taoversion, core, tao_output, taodefaults, pidl, extra_co Profile_Transport_Resolver.cpp Protocol_Factory.cpp Protocols_Hooks.cpp - qt_resource.cpp Queued_Message.cpp Reactive_Connect_Strategy.cpp Reactive_Flushing_Strategy.cpp @@ -280,11 +279,352 @@ project(TAO) : acelib, taoversion, core, tao_output, taodefaults, pidl, extra_co WrongTransactionC.cpp WStringSeqA.cpp WStringSeqC.cpp - xt_resource.cpp + GUIResource_Factory.cpp } Header_Files { - *.h + Abstract_Servant_Base.h + Acceptor_Filter.h + Acceptor_Impl.h + Acceptor_Registry.h + Adapter_Factory.h + Adapter.h + Adapter_Registry.h + Allocator.h + Any_Arg_Traits.h + Any_Array_Impl_T.h + Any_Basic_Impl.h + Any_Basic_Impl_T.h + Any_Dual_Impl_T.h + Any.h + Any_Impl.h + Any_Impl_T.h + AnySeqC.h + AnySeqS.h + Any_Special_Impl_T.h + Any_SystemException.h + Any_Unknown_IDL_Type.h + Arg_Traits_T.h + Argument.h + Array_VarOut_T.h + Asynch_Queued_Message.h + Asynch_Reply_Dispatcher_Base.h + Auto_Functor.h + Base_Transport_Property.h + Basic_Arguments.h + Basic_Argument_T.h + Basic_SArguments.h + Basic_SArgument_T.h + Basic_Types.h + BD_String_Argument_T.h + BD_String_SArgument_T.h + BiDir_Adapter.h + Bind_Dispatcher_Guard.h + Blocked_Connect_Strategy.h + Block_Flushing_Strategy.h + BooleanSeqC.h + BooleanSeqS.h + BoundsC.h + Buffer_Allocator_T.h + Buffering_Constraint_Policy.h + Cache_Entries.h + CDR_Encaps_Codec.h + CDR.h + CharSeqC.h + CharSeqS.h + Cleanup_Func_Registry.h + ClientRequestInfo.h + ClientRequestInfo_i.h + ClientRequestInterceptor_Adapter.h + Client_Strategy_Factory.h + CodecFactory.h + CodecFactory_ORBInitializer.h + Codeset_Manager.h + Codeset_Translator_Factory.h + Codeset_Translator_Factory_T.h + Collocated_Invocation.h + Collocation_Proxy_Broker.h + Collocation_Resolver.h + Collocation_Strategy.h + Condition.h + Connection_Handler.h + Connection_Purging_Strategy.h + Connector_Impl.h + Connector_Registry.h + Connect_Strategy.h + CONV_FRAMEC.h + CONV_FRAMES.h + CONV_FRAMES_T.h + corbafwd.h + corba.h + CORBALOC_Parser.h + CORBA_methods.h + CORBANAME_Parser.h + CORBA_String.h + CurrentC.h + debug.h + default_client.h + Default_Collocation_Resolver.h + Default_Endpoint_Selector_Factory.h + default_environment.h + default_ports.h + Default_Protocols_Hooks.h + default_resource.h + default_server.h + Default_Stub_Factory.h + Default_Thread_Lane_Resources_Manager.h + DLL_Parser.h + DomainC.h + DoubleSeqC.h + DoubleSeqS.h + Dynamic_Adapter.h + DynamicC.h + Dynamic_ParameterC.h + Encodable.h + Endpoint.h + Endpoint_Selector_Factory.h + Environment.h + Exception_Data.h + Exception.h + Exclusive_TMS.h + Fault_Tolerance_Service.h + FILE_Parser.h + Fixed_Array_Argument_T.h + Fixed_Array_SArgument_T.h + Fixed_Size_Argument_T.h + Fixed_Size_SArgument_T.h + FloatSeqC.h + FloatSeqS.h + Flushing_Strategy.h + GIOPC.h + GIOP_Message_Base.h + GIOP_Message_Generator_Parser_10.h + GIOP_Message_Generator_Parser_11.h + GIOP_Message_Generator_Parser_12.h + GIOP_Message_Generator_Parser.h + GIOP_Message_Generator_Parser_Impl.h + GIOP_Message_Lite.h + GIOP_Message_Locate_Header.h + GIOP_Message_State.h + GIOP_Message_Version.h + GIOPS.h + GIOPS_T.h + GIOP_Utils.h + GUIResource_Factory.h + IFR_Client_Adapter.h + IIOP_Acceptor.h + IIOPC.h + IIOP_Connection_Handler.h + IIOP_Connector.h + IIOP_Endpoint.h + IIOP_EndpointsC.h + IIOP_Factory.h + IIOP_Lite_Factory.h + IIOP_Profile.h + IIOP_Transport.h + Incoming_Message_Queue.h + Interceptor_List.h + Invocation_Adapter.h + Invocation_Base.h + Invocation_Endpoint_Selectors.h + Invocation_Utils.h + IOPC.h + IOP_CodecC.h + IOP_IORC.h + IOPS.h + IOPS_T.h + IORInterceptor_Adapter_Factory.h + IORInterceptor_Adapter.h + IOR_Parser.h + Leader_Follower_Flushing_Strategy.h + Leader_Follower.h + LF_CH_Event.h + LF_Connect_Strategy.h + LF_Event_Binder.h + LF_Event.h + LF_Event_Loop_Thread_Helper.h + LF_Follower_Auto_Adder.h + LF_Follower_Auto_Ptr.h + LF_Follower.h + LF_Invocation_Event.h + LF_Strategy_Complete.h + LF_Strategy.h + LocalObject.h + LocateRequest_Invocation_Adapter.h + LocateRequest_Invocation.h + LongDoubleSeqC.h + LongDoubleSeqS.h + LongLongSeqC.h + LongLongSeqS.h + LongSeqC.h + LongSeqS.h + LRU_Connection_Purging_Strategy.h + Managed_Types.h + Marshal.h + MCAST_Parser.h + Messaging_PolicyValueC.h + Messaging_SyncScopeC.h + MProfile.h + Muxed_TMS.h + New_Leader_Generator.h + NVList.h + Object_Argument_T.h + Object.h + objectid.h + ObjectIdListC.h + Object_KeyC.h + ObjectKey_Table.h + Object_Loader.h + Object_Proxy_Broker.h + Object_Proxy_Impl.h + Object_Ref_Table.h + Object_SArgument_T.h + Object_T.h + Objref_VarOut_T.h + OBV_Constants.h + OctetSeqC.h + OctetSeqS.h + operation_details.h + orbconf.h + ORB_Constants.h + ORB_Core_Auto_Ptr.h + ORB_Core.h + ORB.h + ORBInitializer_Registry.h + ORBInitInfo.h + ORB_Table.h + orb_typesC.h + orb_typesS.h + ParameterModeC.h + ParameterModeS.h + params.h + Parser_Registry.h + PICurrent_Copy_Callback.h + PICurrent.h + PICurrent_ORBInitializer.h + PI_ForwardC.h + Pluggable_Messaging.h + Pluggable_Messaging_Utils.h + PolicyC.h + PolicyFactory_Registry.h + Policy_ForwardC.h + Policy_Manager.h + Policy_Set.h + PolicyS.h + Policy_Validator.h + PollableC.h + PollableS.h + PollableS_T.h + PortableInterceptorC.h + PortableInterceptor.h + PortableInterceptorS.h + Principal.h + Profile.h + Profile_Transport_Resolver.h + Protocol_Factory.h + Protocols_Hooks.h + Pseudo_VarOut_T.h + Queued_Message.h + Reactive_Connect_Strategy.h + Reactive_Flushing_Strategy.h + Refcounted_ObjectKey.h + Remote_Invocation.h + Remote_Object_Proxy_Broker.h + Reply_Dispatcher.h + Request_Dispatcher.h + RequestInfo_Util.h + Resource_Factory.h + Resume_Handle.h + Seq_Out_T.h + Sequence.h + Sequence_T.h + Seq_Var_T.h + Server_Strategy_Factory.h + Service_Callbacks.h + Service_Context.h + Services_Activate.h + ServicesC.h + ServicesS.h + ServicesS_T.h + ShortSeqC.h + ShortSeqS.h + Special_Basic_Arguments.h + Special_Basic_Argument_T.h + Special_Basic_SArguments.h + Special_Basic_SArgument_T.h + StringSeqC.h + StringSeqS.h + Stub_Factory.h + Stub.h + Synch_Invocation.h + Synch_Queued_Message.h + Synch_Refcountable.h + Synch_Reply_Dispatcher.h + Sync_Strategies.h + SystemException.h + Tagged_Components.h + Tagged_Profile.h + TAOC.h + TAO_Export.h + TAO_Internal.h + TAO_Server_Request.h + TAOS.h + TAO_Singleton.h + TAO_Singleton_Manager.h + TAOS_T.h + target_specification.h + TC_Constants_Forward.h + Thread_Lane_Resources.h + Thread_Lane_Resources_Manager.h + Thread_Per_Connection_Handler.h + TimeBaseC.h + TimeBaseS.h + TimeBaseS_T.h + Timeprobe.h + Transport_Acceptor.h + Transport_Cache_Manager.h + Transport_Connector.h + Transport_Descriptor_Interface.h + Transport.h + Transport_Mux_Strategy.h + Transport_Timer.h + TSS_Resources.h + Typecode_Constants.h + TypeCodeFactory_Adapter.h + Typecode.h + Typecode_typesC.h + Typecode_typesS.h + UB_String_Arguments.h + UB_String_Argument_T.h + UB_String_SArguments.h + UB_String_SArgument_T.h + ULongLongSeqC.h + ULongLongSeqS.h + ULongSeqC.h + ULongSeqS.h + UserException.h + UShortSeqC.h + UShortSeqS.h + UTF16_BOM_Factory.h + UTF16_BOM_Translator.h + Valuetype_Adapter.h + Var_Array_Argument_T.h + Var_Array_SArgument_T.h + varbase.h + VarOut_T.h + Var_Size_Argument_T.h + Var_Size_SArgument_T.h + Version.h + Wait_On_Leader_Follower.h + Wait_On_LF_No_Upcall.h + Wait_On_Reactor.h + Wait_On_Read.h + Wait_Strategy.h + WCharSeqC.h + WCharSeqS.h + WrongTransactionC.h + WStringSeqC.h + WStringSeqS.h } Inline_Files { diff --git a/TAO/tao/xt_resource.cpp b/TAO/tao/xt_resource.cpp deleted file mode 100644 index 747bf2672e5..00000000000 --- a/TAO/tao/xt_resource.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -#include "tao/xt_resource.h" - -#if defined(ACE_HAS_XT) - -#if !defined (__ACE_INLINE__) -# include "tao/xt_resource.i" -#endif /* ! __ACE_INLINE__ */ - -ACE_RCSID(tao, xt_resource, "$Id$") - -XtAppContext -TAO_XT_Resource_Factory::context_ = 0; - -ACE_Reactor_Impl* -TAO_XT_Resource_Factory::allocate_reactor_impl (void) const -{ - if (TAO_XT_Resource_Factory::context_ == 0) - return 0; - - ACE_Reactor_Impl *impl = 0; - - ACE_NEW_RETURN (impl, ACE_XtReactor (TAO_XT_Resource_Factory::context_), 0); - return impl; -} - -void -TAO_XT_Resource_Factory::set_context (XtAppContext context) -{ - TAO_XT_Resource_Factory::context_ = context; -} - -ACE_STATIC_SVC_DEFINE (TAO_XT_Resource_Factory, - ACE_TEXT ("XT_Resource_Factory"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_XT_Resource_Factory), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) -ACE_FACTORY_DEFINE (TAO, TAO_XT_Resource_Factory) - -#endif /* ACE_HAS_XT */ diff --git a/TAO/tao/xt_resource.h b/TAO/tao/xt_resource.h deleted file mode 100644 index 04274f55e16..00000000000 --- a/TAO/tao/xt_resource.h +++ /dev/null @@ -1,68 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file xt_resource.h - * - * $Id$ - * - * @author Carlos O'Ryan - */ -//============================================================================= - - -#ifndef TAO_XT_RESOURCE_H -#define TAO_XT_RESOURCE_H -#include /**/ "ace/pre.h" - -#include "tao/default_resource.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined (ACE_HAS_XT) - -#include "ace/XtReactor.h" - -// **************************************************************** - -/** - * @class TAO_XT_Resource_Factory - * - * @brief TAO's default resource factory - * - * Using a <{resource source specifier}> as a discriminator, the - * factory can return resource instances which are, e.g., global, - * stored in thread-specific storage, stored in shared memory, - * etc. - */ -class TAO_XT_Resource_Factory : public TAO_Default_Resource_Factory -{ -public: - // = Initialization and termination methods. - /// Constructor. - TAO_XT_Resource_Factory (void); - - /// Set the context used to create the XtReactor - static void set_context (XtAppContext context); - -protected: - /// Obtain the reactor implementation - virtual ACE_Reactor_Impl *allocate_reactor_impl (void) const; - -private: - static XtAppContext context_; -}; - -#if defined (__ACE_INLINE__) -#include "tao/xt_resource.i" -#endif /* __ACE_INLINE__ */ - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO, TAO_XT_Resource_Factory) -ACE_FACTORY_DECLARE (TAO, TAO_XT_Resource_Factory) - -#endif /* ACE_HAS_XT */ - -#include /**/ "ace/post.h" -#endif /* TAO_DEFAULT_CLIENT_H */ diff --git a/TAO/tao/xt_resource.i b/TAO/tao/xt_resource.i deleted file mode 100644 index 0b14c74dcf9..00000000000 --- a/TAO/tao/xt_resource.i +++ /dev/null @@ -1,6 +0,0 @@ -// $Id$ - -ACE_INLINE -TAO_XT_Resource_Factory::TAO_XT_Resource_Factory (void) -{ -} |