00001 //StiDetectorTreeBuilder.h 00002 //M.L. Miller (Yale Software) 00003 //07/01 00004 00047 #ifndef StiDetectorTreeBuilder_HH 00048 #define StiDetectorTreeBuilder_HH 00049 00050 #include <vector> 00051 using std::vector; 00052 #include "Sti/Base/Factory.h" 00053 #include "StiCompositeTreeNode.h" 00054 #include "StiDetector.h" 00055 class StiDetectorBuilder; 00056 00057 class StiDetectorTreeBuilder 00058 { 00059 public: 00060 00062 StiDetectorTreeBuilder(); 00063 00065 virtual ~StiDetectorTreeBuilder(); 00066 00068 00077 StiDetectorNode* build(StiDetectorBuilder * builder); 00078 00079 protected: 00081 void loopOnDetectors(); 00082 00084 void buildRoot(); 00085 00087 void addToTree(StiDetector*); 00088 00090 StiDetectorNode* hangWhere(StiDetectorNode* parent, const StiOrderKey& order, 00091 string& keystring); 00092 00094 StiDetectorNode* mroot; 00096 00099 Factory<StiDetectorNode>* mnodefactory; 00100 00102 StiDetectorBuilder *mDetectorBuilder; 00103 00105 StiDetectorNode* mregion; 00106 00108 00109 }; 00110 00111 #endif
1.5.9