Ejemplo n.º 1
0
	//==========================================================================
	// присваивает неименнованным объектам имена
	//--------------------------------------------------------------------------
	// unit - [in, out] модуль
	//==========================================================================
	void AssignNames(Module *module)
	{
		AssignNames(module->objects);

		// процедуры
		for(unsigned int i = 0; i < module->objects.objList.size(); ++i)
		{
			Procedure *proc = dynamic_cast<Procedure*>(module->objects.objList[i]);
			if(proc)
				AssignNames(proc);
		}
	}
Ejemplo n.º 2
0
	//==========================================================================
	// присваивает неименнованным объектам имена
	//--------------------------------------------------------------------------
	// unit - [in, out] юнит
	//==========================================================================
	void AssignNames(Procedure *proc)
	{
		AssignNames(proc->objects);

		// вложенные процедуры
		for(unsigned int i = 0; i < proc->objects.objList.size(); ++i)
		{
			Procedure *p = dynamic_cast<Procedure*>(proc->objects.objList[i]);
			if(p)
				AssignNames(p);
		}

		// специализированные процедуры
		if(proc->WhatIsIt() == ItIsGenericProc)
		{
			GenericProc *gProc = (GenericProc*)proc;
			for(unsigned int i = 0; i < (unsigned int)gProc->specs.size(); ++i)
				AssignNames(gProc->specs[i]->objects);
		}
	}
Ejemplo n.º 3
0
 //_______________________________________________________________________________________________
 //
 // Initialize plugin with all needed for AliEn
 //
 Bool_t SetupForAlien()
 {
    if (!plugin) {
       ::Error("SetupPlugin::SetupForAlien()", "Initialize plugin first");
       return kFALSE;
    }
    
    // create names
    if (!AssignNames()) {
       ::Error("SetupPlugin::SetupForAlien()", "Failed name initializations");
       return kFALSE;
    }
    
    // API version
    plugin->SetAPIVersion(apiVersion.Data());
    
    // merging detauls
    plugin->SetMergeViaJDL();
    plugin->SetMaxMergeFiles(maxMergeFiles);
    plugin->SetMaxMergeStages(maxMergeStages);
    
    // output paths
    plugin->SetGridWorkingDir(workDir.Data());
    plugin->SetGridOutputDir(outDir.Data());
    plugin->SetDefaultOutputs(kTRUE);
    
    // excutable
    plugin->SetExecutableCommand("aliroot -q -b");
    plugin->SetExecutableArgs(">& std.log");
    plugin->SetExecutable(fileSH.Data());
    
    // automatically created files
    plugin->SetAnalysisMacro(fileC.Data());
    plugin->SetJDLName(fileJDL.Data());
    
    // JDL parameters
    plugin->SetSplitMaxInputFileNumber(split);
    plugin->SetMaxInitFailed(maxInitFailed);
    plugin->SetMasterResubmitThreshold(resubmitThr);
    plugin->SetTTL(TTL);
    plugin->SetPrice(price);
    plugin->SetInputFormat(inputFormat.Data());
    plugin->SetSplitMode(splitMode.Data());
    if (jobTag.Length() > 0) plugin->SetJobTag(jobTag.Data());
 
    // input definition
    if (alienInputRuns) {
       plugin->SetOutputToRunNo(kTRUE);
       plugin->SetNtestFiles(nTestFiles);
       plugin->SetNrunsPerMaster(nRunsPerMaster);
       plugin->SetRunPrefix(runPrefix.Data());
       plugin->SetGridDataDir(runPath.Data());
       plugin->SetDataPattern(runPattern.Data());
       plugin->AddRunList(runList.Data());
    } else {
       TObjArray *list = xmlList.Tokenize(" ");
       TObjArrayIter next(list);
       TObjString *os = 0x0;
       while ( (os = (TObjString*)next()) ) {
          plugin->AddDataFile(os->GetString().Data());
       }
       plugin->SetOutputToRunNo(kFALSE);
    }
    
    return kTRUE;
 }