31 m_doPreLoadOpt =
false;
35 m_outputType =
"UPDATE";
36 m_storeName =
"EventDataSvc";
37 m_persName =
"EventPersistencySvc";
39 m_acceptAlgs =
new std::vector<Algorithm*>();
40 m_requireAlgs =
new std::vector<Algorithm*>();
41 m_vetoAlgs =
new std::vector<Algorithm*>();
44 m_fireIncidents =
true;
45 declareProperty(
"ItemList", m_itemNames);
46 declareProperty(
"OptItemList", m_optItemNames);
47 declareProperty(
"Preload", m_doPreLoad);
48 declareProperty(
"PreloadOptItems", m_doPreLoadOpt);
49 declareProperty(
"Output", m_output);
50 declareProperty(
"OutputFile", m_outputName);
51 declareProperty(
"EvtDataSvc", m_storeName);
52 declareProperty(
"EvtConversionSvc", m_persName);
53 declareProperty(
"AcceptAlgs", m_acceptNames);
54 declareProperty(
"RequireAlgs", m_requireNames);
55 declareProperty(
"VetoAlgs", m_vetoNames);
56 declareProperty(
"VerifyItems", m_verifyItems);
113 ItemNames::iterator
i;
203 if ( sel->begin() != sel->end() )
210 for ( IDataSelector::iterator j = sel->begin(); j != sel->end(); ++j )
223 catch (
const std::exception & excpt )
226 const std::string loc = ( (*j)->registry() ?
227 (*j)->registry()->identifier() :
"UnRegistered" );
229 <<
"std::exception during createRep for '" << loc <<
"' "
236 for ( IDataSelector::iterator j = sel->begin(); j != sel->end(); ++j )
247 catch (
const std::exception & excpt )
250 const std::string loc = ( (*j)->registry() ?
251 (*j)->registry()->identifier() :
"UnRegistered" );
253 <<
"std::exception during fillRepRefs for '" << loc <<
"'"
277 if ( level < m_currentItem->depth() ) {
278 if ( dir->
object() != 0 ) {
310 log <<
MSG::ERROR <<
"Cannot write mandatory object(s) (Not found) "
325 log <<
MSG::DEBUG <<
"Ignore request to write non-mandatory object(s) "
332 std::set<DataObject*> unique;
333 std::vector<DataObject*> tmp;
335 for (std::vector<DataObject*>::iterator o =
m_objects.begin(); o !=
m_objects.end(); ++o) {
336 if (!unique.count(*o)) {
355 for ( Items::iterator
i = itms.begin();
i != itms.end();
i++ ) {
358 itms.erase(itms.begin(), itms.end());
365 if ( (*i)->path() ==
path )
return (*
i);
368 if ( (*j)->path() ==
path )
return (*j);
377 size_t sep = descriptor.rfind(
"#");
378 std::string obj_path (descriptor,0,sep);
379 std::string slevel (descriptor,sep+1,descriptor.length());
380 if ( slevel ==
"*" ) {
384 level = atoi(slevel.c_str());
387 size_t idx = obj_path.find(
"/",1);
388 while(idx != std::string::npos) {
389 std::string sub_item = obj_path.substr(0,idx);
393 idx = obj_path.find(
"/",idx+1);
399 <<
" with " << item->
depth()
400 <<
" level(s)." <<
endmsg;
401 itms.push_back( item );
409 std::string dbType, svc, shr;
412 for(Tokenizer::Items::iterator
i = tok.
items().begin();
i != tok.
items().end(); ++
i) {
413 const std::string& tag = (*i).tag();
414 const std::string& val = (*i).value();
424 case 'V': svc = val;
break;
425 case 'H': shr =
"YES";
break;
431 if ( ::strncasecmp(val.c_str(),
"RECREATE",3)==0 )
433 else if ( ::strncasecmp(val.c_str(),
"READ",3)==0 )
458 if ( dbType.length() > 0 || svc.length() > 0 ) {
459 std::string typ = dbType.length()>0 ? dbType : svc;
466 status = ipers->getService(typ, cnvSvc);
468 log <<
MSG::FATAL <<
"Unable to locate IConversionSvc interface of database type " << typ <<
endmsg;
476 <<
"Unable to locate IConversionSvc interface (Unknown technology) " <<
endmsg
477 <<
"You either have to specify a technology name or a service name!" <<
endmsg
478 <<
"Please correct the job option \"" <<
name() <<
".Output\" !" <<
endmsg;
492 "OutputStream::acceptAlgsHandler",sc);
504 "OutputStream::requireAlgsHandler",sc);
516 "OutputStream::vetoAlgsHandler",sc);
521 std::vector<Algorithm*>* theAlgs )
533 const std::vector<std::string> nameList = theNames.
value( );
534 std::vector<std::string>::const_iterator it;
535 std::vector<std::string>::const_iterator itend = nameList.end( );
536 for (it = nameList.begin(); it != itend; ++it) {
539 const std::string &theName = (*it);
552 std::vector<Algorithm*>::iterator ita;
553 std::vector<Algorithm*>::iterator itaend = theAlgs->end( );
554 for (ita = theAlgs->begin(); ita != itaend; ++ita) {
556 if ( theAlgorithm == existAlgorithm ) {
562 theAlgorithm->addRef();
563 theAlgs->push_back( theAlgorithm );
579 typedef std::vector<Algorithm*>::iterator AlgIter;
589 if ( (*i)->isExecuted() && (*i)->filterPassed() ) {
602 if ( !(*i)->isExecuted() || !(*i)->filterPassed() ) {
615 if ( (*i)->isExecuted() && (*i)->filterPassed() ) {