/* -*- C++ -*- */ // $Id$ // ============================================================================ // // = LIBRARY // ace // // = FILENAME // Functor_T.cpp // // = DESCRIPTION // Non-inlinable method definitions for templatized classes // implementing the GOF Command Pattern, or STL-style functors. // // = AUTHOR // Chris Gill // // Based on Command Pattern implementations originally done by // // Carlos O'Ryan and // Douglas C. Schmidt and // Sergio Flores-Gaitan // // and on STL-style functor implementations originally done by // // Irfan Pyarali // // ============================================================================ #ifndef ACE_FUNCTOR_T_C #define ACE_FUNCTOR_T_C #define ACE_BUILD_DLL #include "ace/Functor_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #if !defined (__ACE_INLINE__) #include "ace/Functor_T.i" #endif /* __ACE_INLINE__ */ ACE_RCSID(ace, Functor_T, "$Id$") ACE_ALLOC_HOOK_DEFINE(ACE_Command_Callback) /////////////////////////////////// // GOF Command Pattern Templates // /////////////////////////////////// // Constructor. template ACE_Command_Callback::ACE_Command_Callback (RECEIVER &recvr, ACTION action) : receiver_ (recvr), action_ (action) { } // Invokes an operation. template int ACE_Command_Callback::execute (void *arg) { return (receiver_.*action_) (arg); } #endif /* ACE_FUNCTOR_T_C */