00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 #ifndef Reflex_BuilderContainer
00013 #define Reflex_BuilderContainer
00014 
00015 #include "Reflex/Kernel.h"
00016 
00017 namespace Reflex {
00018 class OnDemandBuilder;
00019 
00020 class RFLX_API BuilderContainer {
00021 public:
00022 
00023    BuilderContainer(): fFirst(0) {}
00024    ~BuilderContainer() { Clear(); }
00025 
00026    void Insert(OnDemandBuilder* odb);
00027    void Remove(OnDemandBuilder* odb);
00028    void Clear();
00029 
00030    OnDemandBuilder* First() const { return fFirst; }
00031    bool Empty() const { return !fFirst; }
00032 
00033    void BuildAll();
00034 
00035 private:
00036    OnDemandBuilder* fFirst;
00037 };
00038 } 
00039 
00040 #endif // Reflex_BuilderContainer