00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef Reflex_OnDemandBuilder
00013 #define Reflex_OnDemandBuilder
00014
00015 #include "Reflex/Kernel.h"
00016
00017 namespace Reflex {
00018
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;
00038 OnDemandBuilder* fNext;
00039 };
00040 }
00041
00042 #endif // Reflex_OnDemandBuilder