Functions

Reactor.cpp File Reference

#include "ace/Reactor.h"
#include "ace/Service_Config.h"
#include "ace/Select_Reactor.h"
#include "ace/Static_Object_Lock.h"
#include "ace/Framework_Component.h"
#include "ace/Guard_T.h"
#include "ace/Recursive_Thread_Mutex.h"
Include dependency graph for Reactor.cpp:

Go to the source code of this file.

Functions

 ACE_RCSID (ace, Reactor,"$Id: Reactor.cpp 88832 2010-02-04 09:57:42Z johnnyw $") 1 ACE_Reactor

Function Documentation

ACE_RCSID ( ace  ,
Reactor  ,
"$Id: Reactor.cpp 88832 2010-02-04 09:57:42Z johnnyw $"   
)

Definition at line 54 of file Reactor.cpp.

               : Reactor.cpp 88832 2010-02-04 09:57:42Z johnnyw $")

ACE_BEGIN_VERSIONED_NAMESPACE_DECL

ACE_ALLOC_HOOK_DEFINE(ACE_Reactor)

ACE_Reactor::ACE_Reactor (ACE_Reactor_Impl *impl,
                          bool delete_implementation)
  : implementation_ (0),
    delete_implementation_ (delete_implementation)
{
  this->implementation (impl);

  if (this->implementation () == 0)
    {
/*
 * Hook to specialize the reactor implementation with the concrete
 * Reactor implementation known at compile time. This hook will
 * cause the conditionally defined code to be commented out and
 * the concrete Reactor directly created.
 */
//@@ REACTOR_SPL_CONSTRUCTOR_COMMENT_HOOK_START
#if !defined (ACE_WIN32) \
      || !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0) \
      || defined (ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL) \
      || defined (ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL) \
      || defined (ACE_USE_DEV_POLL_REACTOR_FOR_REACTOR_IMPL)
#  if defined (ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL)
      ACE_NEW (impl,
               ACE_TP_Reactor);
#  else
#    if defined (ACE_USE_DEV_POLL_REACTOR_FOR_REACTOR_IMPL)
      ACE_NEW (impl,
               ACE_Dev_Poll_Reactor);
#    else
      ACE_NEW (impl,
               ACE_Select_Reactor);
#    endif /* ACE_USE_DEV_POLL_REACTOR_FOR_REACTOR_IMPL */
#  endif /* ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL */
#else /* We are on Win32 and we have winsock and ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL is not defined */
  #if defined (ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL)
      ACE_NEW (impl,
               ACE_Msg_WFMO_Reactor);
  #else
      ACE_NEW (impl,
               ACE_WFMO_Reactor);
  #endif /* ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL */
#endif /* !defined (ACE_WIN32) || !defined (ACE_HAS_WINSOCK2) || (ACE_HAS_WINSOCK2 == 0) || defined (ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL) */

/*
 * End hook.
 */
//@@ REACTOR_SPL_CONSTRUCTOR_COMMENT_HOOK_END

      this->implementation (impl);
      this->delete_implementation_ = true;
    }
}

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines