// @(#)root/reflex:$Id: Callback.h 22729 2008-03-19 10:20:10Z pcanal $ // Author: Stefan Roiser 2004 // Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved. // // Permission to use, copy, modify, and distribute this software for any // purpose is hereby granted without fee, provided that this copyright and // permissions notice appear in all copies and derivatives. // // This software is provided "as is" without express or implied warranty. #ifndef Reflex_Callback #define Reflex_Callback // Include files #include "Reflex/Kernel.h" namespace Reflex { // forward declarations class Type; class Member; /** * @class Callback Callback.h Reflex/Callback.h * @author Pere Mato * @date 12/11/2004 * @ingroup Ref */ class RFLX_API ICallback { public: /** constructor */ ICallback() {} /** destructor */ virtual ~ICallback() {} /** * operator call (virtual) */ virtual void operator () ( const Type & ) = 0; virtual void operator () ( const Member & ) = 0; }; // class ICallback RFLX_API void InstallClassCallback( ICallback * cb ); RFLX_API void UninstallClassCallback( ICallback * cb ); RFLX_API void FireClassCallback( const Type & ); RFLX_API void FireFunctionCallback( const Member & ); } // namespace Reflex #endif // Reflex_Callback