00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file XtResource_Factory.h 00006 * 00007 * $Id: XtResource_Factory.h 75470 2006-11-22 11:40:45Z johnnyw $ 00008 * 00009 * @author Balachandran Natarajan <bala@cs.wustl.edu> 00010 * @author Marek Brudka <mbrudka@aster.pl> 00011 */ 00012 //============================================================================= 00013 #ifndef TAO_XTRESOURCE_FACTORY_H 00014 #define TAO_XTRESOURCE_FACTORY_H 00015 #include /**/ "ace/pre.h" 00016 #include /**/ <X11/Intrinsic.h> 00017 #include "tao/XtResource/TAO_XtResource_Export.h" 00018 #include "ace/XtReactor/XtReactor.h" 00019 #include "tao/GUIResource_Factory.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 namespace TAO 00026 { 00027 00028 /** 00029 * @class XtResource_Factory 00030 * 00031 * @brief TAO_GUI_Resource_Factory for creating XtReactor. 00032 * 00033 * This factory is intended for creating XtReactor for ORB. This 00034 * factory can be feed into ORB using 00035 * TAO_ORB_Core::set_gui_resource_factory method which is usually 00036 * done by TAO_XtResource_Loader. 00037 */ 00038 00039 class TAO_XtResource_Export XtResource_Factory : public GUIResource_Factory 00040 { 00041 public: 00042 XtResource_Factory (XtAppContext context); 00043 00044 /// Create or obtain current reactor implementation 00045 virtual ACE_Reactor_Impl *reactor_impl (void); 00046 00047 private: 00048 00049 /// Reactor created by this factory. 00050 ACE_XtReactor *reactor_impl_; 00051 00052 /// Xt context for XtReactor 00053 XtAppContext context_; 00054 00055 /// for internal locking 00056 TAO_SYNCH_MUTEX lock_; 00057 }; 00058 } 00059 00060 #include /**/ "ace/post.h" 00061 #endif /* TAO_XTRESOURCE_FACTORY_H */