////////////////////////////////////////////////////////////////////////// // // Function: createTower.cc // Purpose: Implementation of the createTower mon-member function. // // Created: 12/05/99 Pierre Savard // History: // ////////////////////////////////////////////////////////////////////////// #include #include #include "CalorObjects/createTower.hh" #include "CalorObjects/TowerType.hh" using namespace std; // namespace calor{ typedef CalTower* (*CREATE_FUNC)(); // anonymous namespace to make these functions local to this file namespace{ CalTower* createType0(){return new TowerType0;} CalTower* createType1(){return new TowerType1;} CalTower* createType2(){return new TowerType2;} CalTower* createType3(){return new TowerType3;} CalTower* createType4(){return new TowerType4;} CalTower* createType5(){return new TowerType5;} CalTower* createType6(){return new TowerType6;} CalTower* createType7(){return new TowerType7;} CalTower* createType8(){return new TowerType8;} CalTower* createType9(){return new TowerType9;} CalTower* createType10(){return new TowerType10;} CalTower* createType11(){return new TowerType11;} CREATE_FUNC createType[] = { createType0, createType1, createType2, createType3, createType4, createType5, createType6, createType7, createType8, createType9, createType10, createType11 }; } CalTower* createTower(size_t type){return (*createType[ type ])();} // } // namespace calor