⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select_reactor_mt.spl

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 SPL
字号:
<?xml version="1.0"?><!-- Select Reactor Specializations: *   =============================== *   Details all the specialization transformations necessary *   to specialize the Reactor framework when the target reactor *   is a select reactor. * *   @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu> *   Select_Reactor_MT.spl,v 1.2 2005/11/18 23:06:23 arvindk Exp--><transform><!-- Define the module where there are multiple files --><module name="ace"><!-- File where the transformations happen --><file name="Select_Reactor_Base.h"><!-- Add the following lines based on a hook --><add>  <hook>REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK</hook>  <data>class ACE_Sig_Handler;</data>  <data>class ACE_Sig_Action;</data>  <data>class ACE_Sig_Set;</data></add><add> <hook>REACTOR_SPL_PUBLIC_METHODS_ADD_HOOK</hook> <data>//--- How can we devirtualize these methods?virtual ~ACE_Select_Reactor_Impl () {}virtual int notify (ACE_Event_Handler *event_handler = 0,                    ACE_Reactor_Mask mask = ACE_Event_Handler::EXCEPT_MASK,                    ACE_Time_Value * = 0) =0;virtual int remove_handler (ACE_Event_Handler *eh,                            ACE_Reactor_Mask mask) =0;virtual int register_handler (ACE_HANDLE handle,                              ACE_Event_Handler *eh,                              ACE_Reactor_Mask mask) =0;  </data></add><!-- Remove what ever is present in the tag from the file --><remove>virtual</remove><remove>: public ACE_Reactor_Impl</remove><remove>#include "ace/Reactor_Impl.h"</remove><!-- Replace a with b --><substitute>  <search>public ACE_Reactor_Notify</search>  <replace>public ACE_Event_Handler</replace></substitute><!-- Replace the generic versions with the Select specialized versions --><substitute>  <search>ACE_Reactor_Notify</search>  <replace>ACE_Select_Reactor_Notify</replace></substitute><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor_Impl</replace></substitute><!-- After the specialization, the following functions are still virtual --><substitute> <search>void renew</search> <replace>virtual void renew</replace></substitute><substitute> <search>int is_suspended_i</search> <replace>virtual int is_suspended_i</replace></substitute><substitute> <search>void clear_dispatch_mask</search> <replace>virtual void clear_dispatch_mask</replace></substitute></file><file name="Select_Reactor_Base.cpp"><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor_Impl</replace></substitute></file><file name="Select_Reactor_Base.inl"><remove>#include "ace/Reactor.h"</remove></file><!-- Transformations to Reactor_Token_T.h --><file name="Reactor_Token_T.h"><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor_Impl</replace></substitute><substitute match-line="yes"> <search>#include "ace/Reactor_Impl.h"</search> <replace>#include "ace/Select_Reactor_Base.h"</replace></substitute></file><file name="Reactor_Token_T.cpp"><!-- Search for ACE_Reactor_Impl and replace it with     ACE_Select_Reactor_Impl --><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor_Impl</replace></substitute></file><file name="Select_Reactor_T.h"><add><hook>REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK</hook><data>class ACE_Sig_Handler;</data><data>class ACE_Sig_Action;</data><data>class ACE_Sig_Set;</data></add><substitute> <search>ACE_Reactor_Notify</search> <replace>ACE_Select_Reactor_Notify</replace></substitute><remove>virtual</remove></file><file name="Select_Reactor_T.cpp"><add> <hook>REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK</hook> <data>#include "ace/Countdown_Time.h"</data></add><substitute>  <search>ACE_Reactor_Notify</search>  <replace>ACE_Select_Reactor_Notify</replace></substitute></file><!-- <file name="Select_Reactor_T.inl"><remove>#include "ace/Reactor.h"</remove></file>--><file name="Reactor.h"><add><hook>REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK</hook><data>#include "ace/Select_Reactor.h"</data></add><remove>class ACE_Reactor_Impl;</remove><remove>virtual</remove><substitute><search>ACE_Reactor_Impl</search><replace>ACE_Select_Reactor</replace></substitute><!-- Remove the Reactor_Timer interface include --><remove>: public ACE_Reactor_Timer_Interface</remove><remove>#include "ace/Reactor_Timer_Interface.h"</remove></file><file name="Event_Handler.h"><!-- remove the ACE_Event_Handler forware declaration --><remove>class ACE_Reactor_Timer_Interface;</remove><!-- substitute ACE_Reactor_Timer operations with ACE_Reactor --><substitute> <search>ACE_Reactor_Timer_Interface</search> <replace>ACE_Reactor</replace></substitute></file><file name="Event_Handler.cpp"> <substitute>  <search>ACE_Reactor_Timer_Interface</search>  <replace>ACE_Reactor</replace> </substitute></file><file name="Timer_Queue_T.cpp"><!-- Remove the Reactor_Timer_Interface include --><remove>#include "ace/Reactor_Timer_Interface.h"</remove></file><file name="Reactor.cpp"><!-- Comment the conditional includes in the file --><comment> <start-hook>REACTOR_SPL_COMMENT_INCLUDE_START_HOOK</start-hook> <end-hook>REACTOR_SPL_COMMENT_INCLUDE_END_HOOK</end-hook></comment><!-- Comment out conditional includes files in the Reactor's     constructor--><comment>  <start-hook>REACTOR_SPL_CONSTRUCTOR_COMMENT_HOOK_START</start-hook>  <end-hook>REACTOR_SPL_CONSTRUCTOR_COMMENT_HOOK_END</end-hook></comment><!-- Within the constructor now create the right Reactor --><add> <hook>REACTOR_SPL_CONSTRUCTOR_COMMENT_HOOK_END</hook> <data>    ACE_NEW (impl,             ACE_Select_Reactor); </data></add><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor</replace></substitute></file><file name="Reactor.inl"><add> <hook>REACTOR_SPL_INCLUDE_FORWARD_DECL_ADD_HOOK</hook> <data>// Check if this is necessary#include "ace/Select_Reactor.h" </data></add></file><!-- Do not build the other reactors than the Select Reactor! --><file name="ace.mpc"><!-- Here is where regular expressions can come handy. Such     a capability is not currently provided --><substitute>  <search>TP_Reactor.h</search>  <replace>// TP_Reactor.h </replace></substitute><substitute>  <search>TP_Reactor.cpp</search>  <replace>// TP_Reactor.cpp</replace></substitute><!-- Do not build the Msg_WFMO_Reactor --><substitute>  <search>Msg_WFMO_Reactor.cpp</search>  <replace>// Msg_WFMO_Reactor.cpp</replace></substitute><!-- Do not build the WFMO Reactor --><substitute>  <search>WFMO_Reactor.cpp</search>  <replace>// WFMO_Reactor.cpp</replace></substitute><!-- Do not build the Reactor Impl --><substitute>  <search>Reactor_Impl.cpp</search>  <replace>// Reactor_Impl.cpp</replace></substitute><substitute>  <search>Reactor_Impl.h</search>  <replace>// Reactor_Impl.h</replace></substitute><!-- Do not build the Dev Poll Reactor --><substitute>  <search>Dev_Poll_Reactor.cpp</search>  <replace>// Dev_Poll_Reactor.cpp</replace></substitute><!-- Do not build the priority Reactor --><substitute>  <search>Priority_Reactor.cpp</search>  <replace>// Priority_Reactor.cpp</replace></substitute><!-- Do not build the Reactor_Timer_Interface --><substitute> <search>Reactor_Timer_Interface.h</search> <replace>// Reactor_Timer_Interface.h</replace></substitute><substitute> <search>Reactor_Timer_Interface.cpp</search> <replace>// Reactor_Timer_Interface.cpp </replace></substitute></file></module><!-- transformations required in TAO to work with a select reactor --><module name="TAO/tao"><!-- Changes to default_resource.h --><file name="default_resource.h"><!-- Remove the forward declaration of ACE_Reactor_Impl --><substitute match-line="yes"><search>class ACE_Reactor_Impl;</search><replace>#include "ace/Reactor.h"</replace></substitute><!-- Replace all occurences of ACE_Reactor_Impl with     ACE_Select_Reactor --><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor</replace></substitute></file><!-- Changes to default_resource.cpp --><file name="default_resource.cpp"><!-- Remove the occurence of TP_Reactor --><remove>#include "ace/TP_Reactor.h"</remove><!-- Replace all occurences of ACE_Reactor_Impl with     ACE_Select_Reactor --><substitute> <search>ACE_Reactor_Impl</search> <replace>ACE_Select_Reactor</replace></substitute><!-- Comment out the code that creates TP_Reactor --><comment> <start-hook>TAO_REACTOR_SPL_COMMENT_HOOK_START</start-hook> <end-hook>TAO_REACTOR_SPL_COMMENT_HOOK_END</end-hook></comment><!-- Add hook to add code that creates the select reactor     component --><add> <!-- We use the same hook that signifies where the comment code      ended to add the concrete Reactor type --> <hook>TAO_REACTOR_SPL_COMMENT_HOOK_END</hook> <data>  ACE_NEW_RETURN (impl,                  TAO_REACTOR ((ACE_Sig_Handler*)0,                               (ACE_Timer_Queue*)0,                                0,                               (ACE_Select_Reactor_Notify*)0,                                this->reactor_mask_signals_),                  0); </data></add></file><!-- changes to tao.mpc --><file name="tao.mpc"> <substitute>  <search>GUIResource_Factory.cpp</search>  <replace>// GUIResource_Factory.cpp</replace> </substitute> <substitute>  <search>GUIResource_Factory.h</search>  <replace>// GUIResource_Factory.h</replace> </substitute></file></module><module name="TAO/tao/Strategies"><file name="advanced_resource.h"><!-- Replace all occurances of ACE_Reactor_Impl with     Select_Reactor  --><substitute>  <search>ACE_Reactor_Impl</search>  <replace>ACE_Select_Reactor</replace></substitute></file><file name="advanced_resource.cpp"><!-- Comment out all other reactor includes --><remove>#include "ace/FlReactor.h"</remove><remove>#include "ace/TkReactor.h"</remove><remove>#include "ace/WFMO_Reactor.h"</remove><remove>#include "ace/TP_Reactor.h"</remove><remove>#include "ace/Msg_WFMO_Reactor.h"</remove><substitute>  <search>ACE_Reactor_Impl</search>  <replace>ACE_Select_Reactor</replace></substitute><!-- Replace Select_Reactor.h with Reactor.h --><substitute> <search>ace/Select_Reactor.h</search> <replace>ace/Reactor.h</replace></substitute><!-- Comment out creation code for all other reactors --><comment> <start-hook>TAO_ADVANCED_RESOURCE_REACTOR_SPL_COMMENT_HOOK_START</start-hook> <end-hook>TAO_ADVANCED_RESOURCE_REACTOR_SPL_COMMENT_HOOK_END</end-hook></comment><!-- Use the end hook to insert code that will create right reactor --><add>  <hook>TAO_ADVANCED_RESOURCE_REACTOR_SPL_COMMENT_HOOK_END</hook>  <data>     ACE_NEW_RETURN (impl,                     TAO_REACTOR ((ACE_Sig_Handler*)0,                                  (ACE_Timer_Queue*)0,                                   0,                                  (ACE_Select_Reactor_Notify*)0,                                  this->reactor_mask_signals_),                      0);  </data></add></file></module></transform>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -