OnDemandBuilder.h

Go to the documentation of this file.
00001 // @(#)root/reflex:$Id: OnDemandBuilder.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_OnDemandBuilder
00013 #define Reflex_OnDemandBuilder
00014 
00015 #include "Reflex/Kernel.h"
00016 
00017 namespace Reflex {
00018 // not part of the interface
00019 class BuilderContainer;
00020 
00021 class RFLX_API OnDemandBuilder {
00022 public:
00023 
00024    OnDemandBuilder(): fContainer(0), fNext(0) {}
00025    virtual ~OnDemandBuilder();
00026 
00027    virtual void BuildAll() = 0;
00028 
00029    void Unregister();
00030 
00031    void SetContainer(BuilderContainer* cont);
00032    void SetNext(OnDemandBuilder* next) { fNext = next; }
00033 
00034    OnDemandBuilder* Next() const { return fNext; }
00035 
00036 private:
00037    BuilderContainer* fContainer; // where the builder is registered
00038    OnDemandBuilder* fNext; // next builder in chain
00039 };
00040 } // namespace Reflex
00041 
00042 #endif // Reflex_OnDemandBuilder

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