diff options
author | mbrudka <mbrudka@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-12-13 00:26:55 +0000 |
---|---|---|
committer | mbrudka <mbrudka@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-12-13 00:26:55 +0000 |
commit | 56f511a4707020517c4c51875147cb726f0f29f3 (patch) | |
tree | 5162b3aeb0f51ddfc06afb7da72cf963c4a6a95c | |
parent | 0a0e94ccca3e7d6a31817a36030f96231532c3ea (diff) | |
download | ATCD-56f511a4707020517c4c51875147cb726f0f29f3.tar.gz |
ChangeLogTag: Mon Dec 13 00:38:28 2004 Marek Brudka <mbrudka@aster.pl>
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | TAO/ChangeLog | 23 | ||||
-rw-r--r-- | TAO/tao/Strategies.mpc | 4 | ||||
-rw-r--r-- | TAO/tao/Strategies/advanced_resource.cpp | 34 | ||||
-rw-r--r-- | TAO/tao/Strategies/advanced_resource.h | 10 | ||||
-rw-r--r-- | TAO/tao/TAO_TkReactor_export.h | 58 | ||||
-rw-r--r-- | TAO/tao/fl_resource.cpp | 1 | ||||
-rw-r--r-- | TAO/tao/fl_resource.h | 2 | ||||
-rw-r--r-- | TAO/tao/tao_tkreactor.mpc | 17 | ||||
-rw-r--r-- | TAO/tao/tk_resource.cpp | 28 | ||||
-rw-r--r-- | TAO/tao/tk_resource.h | 54 | ||||
-rw-r--r-- | TAO/tao/tk_resource.i | 5 | ||||
-rw-r--r-- | ace/TkReactor.cpp | 12 | ||||
-rw-r--r-- | ace/TkReactor.h | 4 | ||||
-rw-r--r-- | ace/config-doxygen.h | 3 | ||||
-rw-r--r-- | bin/MakeProjectCreator/config/ace_tk.mpb | 1 | ||||
-rw-r--r-- | bin/MakeProjectCreator/config/strategies.mpb | 5 | ||||
-rw-r--r-- | bin/MakeProjectCreator/config/tao_tkreactor.mpb | 2 | ||||
-rw-r--r-- | tests/TkReactor_Test.cpp | 17 |
19 files changed, 253 insertions, 46 deletions
diff --git a/ChangeLog b/ChangeLog index d9a05cb2eff..35f8d2a95f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +Mon Dec 13 00:36:44 2004 Marek Brudka <mbrudka@aster.pl> + + * bin/MakeProjectCreator/config/strategies.mpb (Module): + Removed explicite dependencies of TAO_Strategies on TAO_TkReactor. + + * bin/MakeProjectCreator/config/tao_tkreactor.mpb (Module): + Creating base project for using TAO_TkReactor library. + + * bin/MakeProjectCreator/config/strategies.mpb (Module): + Removed dependency on tao_tkreactor. + + * tests/TkReactor_Test.cpp (Module): + * bin/MakeProjectCreator/config/ace_tk.mpb (Module): + * ace/config-doxygen.h (Module): + Removed ACE_HAS_TK macros. + * ace/TkReactor.h (Module): + * ace/TkReactor.cpp (Module): + Removed ACE_HAS_TK macros. Created factory method TkReactor in dll. + Sun Dec 12 22:53:48 2004 Marek Brudka <mbrudka@aster.pl> * tests/FlReactor_Test.cpp (Module): diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 7f4f4cdc3f9..4214ef06348 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,26 @@ +Mon Dec 13 00:38:28 2004 Marek Brudka <mbrudka@aster.pl> + + * tao/Strategies/advanced_resource.h (Module): + * tao/Strategies/advanced_resource.cpp (Module): + Removed ACE_HAS_TK macros. Removed static linkage with ACE_TkReactor. Applied + for dynamic loading of reactor framework to TkReactor. + +Mon Dec 13 00:37:45 2004 Marek Brudka <mbrudka@aster.pl> + + * tao/tk_resource.i (Module): + * tao/tk_resource.h (Module): + * tao/tk_resource.cpp (Module): + * tao/tao_tkreactor.mpc (Module): + * tao/TAO_TkReactor_export.h (Module): + Created TAO_TkReactor library with TAO_TkResourceFactory. + + * tao/fl_resource.h (Module): + * tao/fl_resource.cpp (Module): + Move #include "ace/FlReactor" from header to definition. + + * tao/Strategies.mpc (Module): + Removed explicite dependencies of TAO_Strategies on TAO_TkReactor. + Sun Dec 12 23:38:40 2004 Marek Brudka <mbrudka@aster.pl> * docs/Options.html (Message): diff --git a/TAO/tao/Strategies.mpc b/TAO/tao/Strategies.mpc index 50f36584441..1dd3c56059a 100644 --- a/TAO/tao/Strategies.mpc +++ b/TAO/tao/Strategies.mpc @@ -1,8 +1,6 @@ //$Id$ -// Strategies should depend on tao_flreactor and tao_tkreactor, -// but cannot now due many additional dependencies. -project : taolib, core, tao_tkreactor { +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 150f1f9df90..f3b72079bce 100644 --- a/TAO/tao/Strategies/advanced_resource.cpp +++ b/TAO/tao/Strategies/advanced_resource.cpp @@ -29,7 +29,6 @@ #include "ace/Dynamic_Service.h" #include "ace/Service_Config.h" #include "ace/Select_Reactor.h" -#include "ace/TkReactor.h" #include "ace/WFMO_Reactor.h" #include "ace/Msg_WFMO_Reactor.h" #include "ace/TP_Reactor.h" @@ -42,6 +41,8 @@ ACE_RCSID(Strategies, advanced_resource, "$Id$") #define ACE_FLREACTOR_DLL_NAME ACE_TEXT( "ACE_FlReactor" ) #define ACE_FLREACTOR_FACTORY_NAME ACE_TEXT( "ACE_create_flreactor" ) +#define ACE_TKREACTOR_DLL_NAME ACE_TEXT( "ACE_TkReactor" ) +#define ACE_TKREACTOR_FACTORY_NAME ACE_TEXT( "ACE_create_tkreactor" ) TAO_Resource_Factory_Changer::TAO_Resource_Factory_Changer (void) { @@ -163,12 +164,12 @@ TAO_Advanced_Resource_Factory::init (int argc, ACE_TCHAR** argv) if ( !has_flreactor() ) this->report_unsupported_error (ACE_TEXT("FlReactor")); } - 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("tk")) == 0) + { + this->reactor_type_ = TAO_REACTOR_TK; + if ( !has_tkreactor() ) + this->report_unsupported_error (ACE_TEXT("TkReactor")); + } else if (ACE_OS::strcasecmp (current_arg, ACE_TEXT("wfmo")) == 0) #if defined(ACE_WIN32) @@ -661,11 +662,8 @@ TAO_Advanced_Resource_Factory::allocate_reactor_impl (void) const return create_flreactor( const_cast< ACE_DLL &> ( reactor_impl_factory_dll_ ) ); break; case TAO_REACTOR_TK: -#if defined(ACE_HAS_TK) - ACE_NEW_RETURN (impl, ACE_TkReactor, 0); -#endif /* ACE_HAS_TK */ + return create_tkreactor( const_cast< ACE_DLL &> ( reactor_impl_factory_dll_ ) ); break; - case TAO_REACTOR_WFMO: #if defined(ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO) ACE_NEW_RETURN (impl, ACE_WFMO_Reactor, 0); @@ -994,6 +992,20 @@ TAO_Advanced_Resource_Factory::has_flreactor( ) const return has_reactor_in_dll( ACE_FLREACTOR_DLL_NAME, ACE_FLREACTOR_FACTORY_NAME ); } +ACE_Reactor_Impl * +TAO_Advanced_Resource_Factory::create_tkreactor( ACE_DLL &dll) const +{ + return create_reactor_impl_from_dll( dll, + ACE_TKREACTOR_DLL_NAME, + ACE_TKREACTOR_FACTORY_NAME ); +} + +bool +TAO_Advanced_Resource_Factory::has_tkreactor( ) const +{ + return has_reactor_in_dll( ACE_TKREACTOR_DLL_NAME, ACE_TKREACTOR_FACTORY_NAME ); +} + // **************************************************************** ACE_STATIC_SVC_DEFINE (TAO_Advanced_Resource_Factory, diff --git a/TAO/tao/Strategies/advanced_resource.h b/TAO/tao/Strategies/advanced_resource.h index 96fe9af9fc7..f52fc95a2a0 100644 --- a/TAO/tao/Strategies/advanced_resource.h +++ b/TAO/tao/Strategies/advanced_resource.h @@ -152,13 +152,21 @@ protected: /// creates ACE_FlReactor by loading and executing factory method from DLL - /// dll i DLL object responsible for loaded shared library + /// dll is DLL object responsible for loaded shared library ACE_Reactor_Impl *create_flreactor( ACE_DLL &dll) const; /// tries to load ACE_FlReactor by temporarily loading it from DLL /// return true if suceed bool has_flreactor( ) const; + /// creates ACE_TkReactor by loading and executing factory method from DLL + /// dll is DLL object responsible for loaded shared library + ACE_Reactor_Impl *create_tkreactor( ACE_DLL &dll) const; + + /// tries to load ACE_TkReactor by temporarily loading it from DLL + /// return true if suceed + bool has_tkreactor( ) const; + /// DLL with factory method creating reactor implementations ACE_DLL reactor_impl_factory_dll_; diff --git a/TAO/tao/TAO_TkReactor_export.h b/TAO/tao/TAO_TkReactor_export.h new file mode 100644 index 00000000000..50e161392f3 --- /dev/null +++ b/TAO/tao/TAO_TkReactor_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_TkReactor +// ------------------------------ +#ifndef TAO_TKREACTOR_EXPORT_H +#define TAO_TKREACTOR_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_TKREACTOR_HAS_DLL) +# define TAO_TKREACTOR_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && TAO_TKREACTOR_HAS_DLL */ + +#if !defined (TAO_TKREACTOR_HAS_DLL) +# define TAO_TKREACTOR_HAS_DLL 1 +#endif /* ! TAO_TKREACTOR_HAS_DLL */ + +#if defined (TAO_TKREACTOR_HAS_DLL) && (TAO_TKREACTOR_HAS_DLL == 1) +# if defined (TAO_TKREACTOR_BUILD_DLL) +# define TAO_TkReactor_Export ACE_Proper_Export_Flag +# define TAO_TKREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_TKREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_TKREACTOR_BUILD_DLL */ +# define TAO_TkReactor_Export ACE_Proper_Import_Flag +# define TAO_TKREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_TKREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_TKREACTOR_BUILD_DLL */ +#else /* TAO_TKREACTOR_HAS_DLL == 1 */ +# define TAO_TkReactor_Export +# define TAO_TKREACTOR_SINGLETON_DECLARATION(T) +# define TAO_TKREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_TKREACTOR_HAS_DLL == 1 */ + +// Set TAO_TKREACTOR_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_TKREACTOR_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_TKREACTOR_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_TKREACTOR_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_TKREACTOR_NTRACE */ + +#if (TAO_TKREACTOR_NTRACE == 1) +# define TAO_TKREACTOR_TRACE(X) +#else /* (TAO_TKREACTOR_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define TAO_TKREACTOR_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (TAO_TKREACTOR_NTRACE == 1) */ + +#endif /* TAO_TKREACTOR_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/fl_resource.cpp b/TAO/tao/fl_resource.cpp index 8a7b12131bc..c171a821aad 100644 --- a/TAO/tao/fl_resource.cpp +++ b/TAO/tao/fl_resource.cpp @@ -4,6 +4,7 @@ #if !defined (__ACE_INLINE__) # include "fl_resource.i" #endif /* ! __ACE_INLINE__ */ +#include "ace/FlReactor.h" ACE_Reactor_Impl * TAO_FlResource_Factory::allocate_reactor_impl (void) const diff --git a/TAO/tao/fl_resource.h b/TAO/tao/fl_resource.h index 942b332210f..3b2aee070bb 100644 --- a/TAO/tao/fl_resource.h +++ b/TAO/tao/fl_resource.h @@ -20,8 +20,6 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/FlReactor.h" - /** * @class TAO_FlResource_Factory diff --git a/TAO/tao/tao_tkreactor.mpc b/TAO/tao/tao_tkreactor.mpc new file mode 100644 index 00000000000..89ca7f7f9ff --- /dev/null +++ b/TAO/tao/tao_tkreactor.mpc @@ -0,0 +1,17 @@ +project(TAO_TkReactor) : acelib, taolib, taoversion, core, tao_output, taodefaults, ace_tkreactor { + requires += tao_tkreactor + sharedname = TAO_TkReactor + dynamicflags += TAO_TKREACTOR_BUILD_DLL + Header_Files { + tk_resource.h + TAO_TkReactor_export.h + } + Inline_Files { + tk_resource.i + } + Source_Files(TAO_COMPONENTS) { + Default_Resources { + tk_resource.cpp + } + } +} diff --git a/TAO/tao/tk_resource.cpp b/TAO/tao/tk_resource.cpp new file mode 100644 index 00000000000..c9e46bb2b6b --- /dev/null +++ b/TAO/tao/tk_resource.cpp @@ -0,0 +1,28 @@ +//$Id$ +#include "tao/tk_resource.h" + +#if !defined (__ACE_INLINE__) +# include "tk_resource.i" +#endif /* ! __ACE_INLINE__ */ +#include "ace/TkReactor.h" + +ACE_Reactor_Impl * +TAO_TkResource_Factory::allocate_reactor_impl (void) const +{ + ACE_Reactor_Impl *impl = 0; + + ACE_NEW_RETURN(impl, + ACE_TkReactor (), + 0); + return impl; +} + +ACE_STATIC_SVC_DEFINE (TAO_TkResource_Factory, + ACE_TEXT ("TkResource_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (TAO_TkResource_Factory), + ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, + 0) + +ACE_FACTORY_DEFINE (TAO_TkReactor, TAO_TkResource_Factory) + diff --git a/TAO/tao/tk_resource.h b/TAO/tao/tk_resource.h new file mode 100644 index 00000000000..630155e047c --- /dev/null +++ b/TAO/tao/tk_resource.h @@ -0,0 +1,54 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file tk_resource.h + * + * $Id$ + * + * @author Marek Brudka <mbrudka@aster.pl> + */ +//============================================================================= + +#ifndef _TAO_TKRESOURCE_H +#define _TAO_TKRESOURCE_H +#include /**/ "ace/pre.h" + +#include "tao/default_resource.h" +#include "tao/TAO_TkReactor_export.h" +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +/** + * @class TAO_TkResource_Factory + * + * @brief TAO's default resource factory for TkReactor + * + * 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_TkReactor_Export TAO_TkResource_Factory : public TAO_Default_Resource_Factory +{ + +public: + TAO_TkResource_Factory (void); + +protected: + /// Obtain the reactor implementation + virtual ACE_Reactor_Impl *allocate_reactor_impl (void) const; +}; + +#if defined (__ACE_INLINE__) +#include "tao/tk_resource.i" +#endif /* __ACE_INLINE__ */ + +ACE_STATIC_SVC_DECLARE_EXPORT (TAO_TkReactor, TAO_TkResource_Factory) +ACE_FACTORY_DECLARE (TAO_TkReactor, TAO_TkResource_Factory) + +#include /**/ "ace/post.h" +#endif /* TKRESOURCE_H */ diff --git a/TAO/tao/tk_resource.i b/TAO/tao/tk_resource.i new file mode 100644 index 00000000000..c19120ede32 --- /dev/null +++ b/TAO/tao/tk_resource.i @@ -0,0 +1,5 @@ +//$Id$ +ACE_INLINE +TAO_TkResource_Factory::TAO_TkResource_Factory (void) +{ +} diff --git a/ace/TkReactor.cpp b/ace/TkReactor.cpp index eb14225cade..4be55a128a5 100644 --- a/ace/TkReactor.cpp +++ b/ace/TkReactor.cpp @@ -1,6 +1,5 @@ #include "ace/TkReactor.h" -#if defined (ACE_HAS_TK) #include "ace/SOCK_Acceptor.h" #include "ace/SOCK_Connector.h" @@ -434,5 +433,14 @@ ACE_TkReactor::cancel_timer (long timer_id, return 0; } } +ACE_Reactor_Impl * +ACE_create_tkreactor(void) +{ + ACE_Reactor_Impl *reactor = 0; + + ACE_NEW_RETURN (reactor, + ACE_TkReactor, + 0); + return reactor; +} -#endif /* ACE_HAS_TK */ diff --git a/ace/TkReactor.h b/ace/TkReactor.h index 55ad6c85b31..e1015a6b584 100644 --- a/ace/TkReactor.h +++ b/ace/TkReactor.h @@ -20,7 +20,6 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#if defined (ACE_HAS_TK) #include "ace/ACE_TkReactor_export.h" #include "ace/Select_Reactor.h" #include /**/ <tk.h> @@ -127,7 +126,8 @@ private: ACE_TkReactor (const ACE_TkReactor &); ACE_TkReactor &operator = (const ACE_TkReactor &); }; +// Factory method to create an instance of ACE_TkReactor +extern "C" ACE_TkReactor_Export ACE_Reactor_Impl *ACE_create_tkreactor(void); -#endif /* ACE_HAS_TK */ #include /**/ "ace/post.h" #endif /* ACE_TK_REACTOR_H */ diff --git a/ace/config-doxygen.h b/ace/config-doxygen.h index a5e13fec478..700fcf0d095 100644 --- a/ace/config-doxygen.h +++ b/ace/config-doxygen.h @@ -60,9 +60,6 @@ /// Enable support for the SSL wrappers #define ACE_HAS_SSL 1 -/// Several GUI Reactors that are only enabled in some platforms. -#define ACE_HAS_TK - /// Enable exceptions #define ACE_HAS_EXCEPTIONS diff --git a/bin/MakeProjectCreator/config/ace_tk.mpb b/bin/MakeProjectCreator/config/ace_tk.mpb index 5bda82365be..9f24270ca95 100644 --- a/bin/MakeProjectCreator/config/ace_tk.mpb +++ b/bin/MakeProjectCreator/config/ace_tk.mpb @@ -3,7 +3,6 @@ project { requires += tk - macros += ACE_HAS_TK // Depends on configration from include/makeinclude/platform_*.GNU verbatim(gnuace,local) { diff --git a/bin/MakeProjectCreator/config/strategies.mpb b/bin/MakeProjectCreator/config/strategies.mpb index 02d92a3b393..262bc6200ed 100644 --- a/bin/MakeProjectCreator/config/strategies.mpb +++ b/bin/MakeProjectCreator/config/strategies.mpb @@ -1,9 +1,6 @@ // -*- MPC -*- // $Id$ -// Strategies should depend on tao_flreactor and tao_tkreactor, -// but cannot now due many additional dependencies. - -project : taolib, tao_tkreactor { +project : taolib { after += Strategies libs += TAO_Strategies } diff --git a/bin/MakeProjectCreator/config/tao_tkreactor.mpb b/bin/MakeProjectCreator/config/tao_tkreactor.mpb index 68a9f4377b3..b77fd3a00aa 100644 --- a/bin/MakeProjectCreator/config/tao_tkreactor.mpb +++ b/bin/MakeProjectCreator/config/tao_tkreactor.mpb @@ -1,4 +1,6 @@ // -*- MPC -*- project: acelib, ace_tkreactor { requires += tao_tkreactor + after += tao_tkreactor + libs += TAO_TkReactor } diff --git a/tests/TkReactor_Test.cpp b/tests/TkReactor_Test.cpp index 5a21dbf71c1..26e2895d0e1 100644 --- a/tests/TkReactor_Test.cpp +++ b/tests/TkReactor_Test.cpp @@ -28,21 +28,6 @@ ACE_RCSID (tests, TkReactor_Test, "$Id$") -#if !defined (ACE_HAS_TK) - -int run_main (int, ACE_TCHAR*[]) -{ - ACE_START_TEST (ACE_TEXT ("TkReactor_Test")); - - ACE_ERROR ((LM_ERROR, - "Tk not supported on this platform\n")); - - ACE_END_TEST; - return 0; -} - -#else - #include "ace/Event_Handler.h" #include "ace/Acceptor.h" #include "ace/SOCK_Acceptor.h" @@ -337,5 +322,3 @@ run_main (int, ACE_TCHAR *[]) ACE_END_TEST; return 0; } - -#endif /* ACE_HAS_TK */ |