// @(#)root/reflex:$Name: $:$Id: Callback.h,v 1.8 2006/07/05 07:09:08 roiser Exp $ // 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 ROOT_Reflex_Callback #define ROOT_Reflex_Callback // Include files #include "Reflex/Kernel.h" namespace ROOT { 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 } // namespace ROOT #endif // ROOT_Reflex_Callback