OnDemandBuilderForScope.h

Go to the documentation of this file.
00001 // @(#)root/reflex:$Id: OnDemandBuilderForScope.h 29355 2009-07-06 17:34:05Z axel $
00002 // Author: Axel Naumann, 2009
00003 
00004 // Copyright CERN, CH-1211 Geneva 23, 2004-2009, All rights reserved.
00005 //
00006 // Permission to use, copy, modify, and distribute this software for any
00007 // purpose is hereby granted without fee, provided that this copyright and
00008 // permissions notice appear in all copies and derivatives.
00009 //
00010 // This software is provided "as is" without express or implied warranty.
00011 
00012 #ifndef Reflex_OnDemandBuilderForScope
00013 #define Reflex_OnDemandBuilderForScope
00014 
00015 #include "Reflex/Kernel.h"
00016 #include "Reflex/Builder/OnDemandBuilder.h"
00017 
00018 namespace Reflex {
00019 // not part of the interface
00020 class BuilderContainer;
00021 class ScopeBase;
00022 
00023 class RFLX_API OnDemandBuilderForScope: public OnDemandBuilder {
00024 public:
00025 
00026    OnDemandBuilderForScope() {}
00027    OnDemandBuilderForScope(ScopeBase* scope): fContext(scope) {}
00028    virtual ~OnDemandBuilderForScope() {}
00029 
00030    // return whether the builder has changed reflection data
00031    virtual void BuildAll() = 0;
00032 
00033    void SetContext(ScopeBase* scope) { fContext = scope; }
00034    ScopeBase* Context() const { return fContext; }
00035 
00036 private:
00037    ScopeBase* fContext; // which scope to build for
00038 };
00039 } // namespace Reflex
00040 
00041 #endif // Reflex_OnDemandBuilderForScope

Generated on Tue Jul 5 14:25:49 2011 for ROOT_528-00b_version by  doxygen 1.5.1