00001 #ifndef STAGEPROCESSORIMP_H 00002 #define STAGEPROCESSORIMP_H 00003 00004 template <class HeaderType> 00005 StageProcessor<HeaderType>::StageProcessor(const std::string& name, ISvcLocator* pSvcLocator) 00006 : DybAlgorithm<HeaderType>(name,pSvcLocator) 00007 { 00008 m_pullMode = true; 00009 } 00010 00011 template <class HeaderType> 00012 StageProcessor<HeaderType>::~StageProcessor() 00013 { 00014 } 00015 00016 template <class HeaderType> 00017 StatusCode StageProcessor<HeaderType>::initialize() 00018 { 00019 // infinite loop? 00020 StatusCode sc = DybAlgorithm<HeaderType>::initialize(); 00021 if (sc.isFailure()) return sc; 00022 00023 // should probably make this configurable one day 00024 sc = service("StageDataManager",m_sdmgr); 00025 if (sc.isFailure()) return sc; 00026 00027 return StatusCode::SUCCESS; 00028 } 00029 00030 00031 template <class HeaderType> 00032 HeaderType* StageProcessor<HeaderType>::MakeHeaderObject() 00033 { 00034 HeaderType* ho = this->DybAlgorithm<HeaderType>::MakeHeaderObject(); 00035 m_sdmgr->registerData(this->Location(), ho); 00036 return ho; 00037 } 00038 00039 00040 #endif 00041