summaryrefslogtreecommitdiff
path: root/TAO/tao
diff options
context:
space:
mode:
authormbrudka <mbrudka@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-01-23 01:30:32 +0000
committermbrudka <mbrudka@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-01-23 01:30:32 +0000
commit64a8b101a6c5d47987892a0129c148a38fca17be (patch)
treef1a11a2cbf2feca71b9ff15288a392aa4efae06e /TAO/tao
parent2e0c262596bbc80570d7a9f4f2ec773d71958e2d (diff)
downloadATCD-64a8b101a6c5d47987892a0129c148a38fca17be.tar.gz
ChangeLogTag: Sun Jan 23 01:54:59 2005 Marek Brudka <mbrudka@aster.pl>
Diffstat (limited to 'TAO/tao')
-rw-r--r--TAO/tao/FlResource.mpc15
-rw-r--r--TAO/tao/FlResource_Factory.cpp36
-rw-r--r--TAO/tao/FlResource_Factory.h55
-rw-r--r--TAO/tao/FlResource_Loader.cpp26
-rw-r--r--TAO/tao/FlResource_Loader.h50
-rw-r--r--TAO/tao/GUIResource_Factory.cpp55
-rw-r--r--TAO/tao/GUIResource_Factory.h90
-rw-r--r--TAO/tao/Leader_Follower.cpp17
-rw-r--r--TAO/tao/ORB_Core.cpp24
-rw-r--r--TAO/tao/ORB_Core.h18
-rw-r--r--TAO/tao/QtResource.mpc19
-rw-r--r--TAO/tao/QtResource_Factory.cpp45
-rw-r--r--TAO/tao/QtResource_Factory.h65
-rw-r--r--TAO/tao/QtResource_Loader.cpp25
-rw-r--r--TAO/tao/QtResource_Loader.h52
-rw-r--r--TAO/tao/Strategies.mpc1
-rw-r--r--TAO/tao/Strategies/advanced_resource.cpp47
-rw-r--r--TAO/tao/Strategies/advanced_resource.h13
-rw-r--r--TAO/tao/TAO_FlResource_Export.h58
-rw-r--r--TAO/tao/TAO_QtResource_Export.h58
-rw-r--r--TAO/tao/TAO_TkResource_Export.h58
-rw-r--r--TAO/tao/TAO_XtResource_Export.h58
-rw-r--r--TAO/tao/TSS_Resources.cpp13
-rw-r--r--TAO/tao/TSS_Resources.h12
-rw-r--r--TAO/tao/TkResource.mpc15
-rw-r--r--TAO/tao/TkResource_Factory.cpp37
-rw-r--r--TAO/tao/TkResource_Factory.h59
-rw-r--r--TAO/tao/TkResource_Loader.cpp26
-rw-r--r--TAO/tao/TkResource_Loader.h49
-rw-r--r--TAO/tao/XtResource.mpc15
-rw-r--r--TAO/tao/XtResource_Factory.cpp45
-rw-r--r--TAO/tao/XtResource_Factory.h61
-rw-r--r--TAO/tao/XtResource_Loader.cpp26
-rw-r--r--TAO/tao/XtResource_Loader.h50
-rw-r--r--TAO/tao/qt_resource.cpp41
-rw-r--r--TAO/tao/qt_resource.h63
-rw-r--r--TAO/tao/qt_resource.i5
-rw-r--r--TAO/tao/tao.mpc346
-rw-r--r--TAO/tao/xt_resource.cpp42
-rw-r--r--TAO/tao/xt_resource.h68
-rw-r--r--TAO/tao/xt_resource.i6
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)
-{
-}