00001 // $Header: /bes/bes/BossCvs/Calibration/rdbModel/src/Management/Manager.cxx,v 1.1.1.1 2005/10/17 06:10:53 maqm Exp $ 00002 #include <string> 00003 #include <iostream> 00004 #include <fstream> 00005 #include <vector> 00006 00007 00008 #include "rdbModel/Management/Visitor.h" 00009 00010 #include "rdbModel/Management/Manager.h" 00011 #include "rdbModel/Management/Builder.h" 00012 #include "rdbModel/Rdb.h" 00013 00014 namespace rdbModel{ 00015 00016 Manager* Manager::s_pMyself = 0; 00017 00018 Manager::~Manager(){ 00019 delete m_rdb; 00020 delete m_builder; 00021 s_pMyself = 0; 00022 } 00023 00024 Manager* Manager::getManager() 00025 { 00026 if (s_pMyself == 0) 00027 s_pMyself = new Manager; 00028 return s_pMyself; 00029 } 00030 00031 void Manager::cleanRdb(){ 00032 delete m_rdb; 00033 m_rdb = new Rdb; 00034 // delete manBuilder; 00035 } 00036 00037 void Manager::setBuilder(Builder* b) 00038 { 00039 m_builder = b; 00040 00041 } 00042 00043 int Manager::build() { 00044 int errCode = m_builder->parseInput(m_filename); 00045 00046 // Unlike geometry description/detModel, there is only one way to 00047 // build here: build everything. 00048 if (!errCode) { 00049 return m_builder->buildRdb(); 00050 } 00051 else return errCode; 00052 } 00053 void Manager::startVisitor(Visitor* v) 00054 { 00055 // if (TablesVisitor* tv = dynamic_cast<TablesVisitor*>(v)) 00056 // { // the only kind we support, at least for now 00057 00058 // if (v->getRecursive()) 00059 m_rdb->accept(v); 00060 // else 00061 // m_rdb->acceptNotRec(sv); 00062 // } 00063 } 00064 00065 }