ROOT logo
// @(#)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
 Callback.h:1
 Callback.h:2
 Callback.h:3
 Callback.h:4
 Callback.h:5
 Callback.h:6
 Callback.h:7
 Callback.h:8
 Callback.h:9
 Callback.h:10
 Callback.h:11
 Callback.h:12
 Callback.h:13
 Callback.h:14
 Callback.h:15
 Callback.h:16
 Callback.h:17
 Callback.h:18
 Callback.h:19
 Callback.h:20
 Callback.h:21
 Callback.h:22
 Callback.h:23
 Callback.h:24
 Callback.h:25
 Callback.h:26
 Callback.h:27
 Callback.h:28
 Callback.h:29
 Callback.h:30
 Callback.h:31
 Callback.h:32
 Callback.h:33
 Callback.h:34
 Callback.h:35
 Callback.h:36
 Callback.h:37
 Callback.h:38
 Callback.h:39
 Callback.h:40
 Callback.h:41
 Callback.h:42
 Callback.h:43
 Callback.h:44
 Callback.h:45
 Callback.h:46
 Callback.h:47
 Callback.h:48
 Callback.h:49
 Callback.h:50
 Callback.h:51
 Callback.h:52
 Callback.h:53
 Callback.h:54
 Callback.h:55
 Callback.h:56
 Callback.h:57