00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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
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
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;
00038 };
00039 }
00040
00041 #endif // Reflex_OnDemandBuilderForScope