Skip to content

Commit 90959dc

Browse files
authored
Follow changes of OutputSpec in O2 (#183)
1 parent 667459c commit 90959dc

4 files changed

Lines changed: 14 additions & 10 deletions

File tree

Framework/src/Checker.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <Common/Exceptions.h>
2525
#include <Configuration/ConfigurationFactory.h>
2626
#include <Framework/DataRefUtils.h>
27+
#include <Framework/DataSpecUtils.h>
2728
#include <TMap.h>
2829
// QC
2930
#include "QualityControl/DatabaseFactory.h"
@@ -188,9 +189,9 @@ void Checker::store(std::shared_ptr<MonitorObject> mo)
188189
void Checker::send(std::unique_ptr<TObjArray>& moArray, framework::DataAllocator& allocator)
189190
{
190191
mLogger << "Sending Monitor Object array with " << moArray->GetEntries() << " objects inside." << AliceO2::InfoLogger::InfoLogger::endm;
191-
192+
auto concreteOutput = framework::DataSpecUtils::asConcreteDataMatcher(mOutputSpec);
192193
allocator.adopt(
193-
framework::Output{ mOutputSpec.origin, mOutputSpec.description, mOutputSpec.subSpec, mOutputSpec.lifetime }, moArray.release());
194+
framework::Output{ concreteOutput.origin, concreteOutput.description, concreteOutput.subSpec, mOutputSpec.lifetime }, moArray.release());
194195
}
195196

196197
void Checker::loadLibrary(const std::string libraryName)

Framework/src/HistoMerger.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
///
1515

1616
#include "QualityControl/HistoMerger.h"
17-
17+
#include <Framework/DataSpecUtils.h>
1818
#include <Framework/DataRefUtils.h>
1919
#include <TObjArray.h>
2020

@@ -64,7 +64,8 @@ void HistoMerger::run(framework::ProcessingContext& ctx)
6464
}
6565
if (mPublicationTimer.isTimeout()) {
6666
if (!mMergedArray.IsEmpty()) {
67-
ctx.outputs().snapshot(Output{ mOutputSpec.origin, mOutputSpec.description, mOutputSpec.subSpec }, mMergedArray);
67+
auto concreteOutput = framework::DataSpecUtils::asConcreteDataMatcher(mOutputSpec);
68+
ctx.outputs().snapshot(Output{ concreteOutput.origin, concreteOutput.description, concreteOutput.subSpec }, mMergedArray);
6869
}
6970
// avoid publishing mo many times consecutively because of too long initial waiting time
7071
do {

Framework/src/TaskRunner.cxx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <Framework/DataSamplingPolicy.h>
2727
#include <Framework/CallbackService.h>
2828
#include <Framework/TimesliceIndex.h>
29+
#include <Framework/DataSpecUtils.h>
2930
#include <Headers/DataHeader.h>
3031
#include <Monitoring/MonitoringFactory.h>
3132
#include "QualityControl/QcInfoLogger.h"
@@ -378,10 +379,11 @@ void TaskRunner::finishCycle(DataAllocator& outputs)
378379

379380
unsigned long TaskRunner::publish(DataAllocator& outputs)
380381
{
382+
auto concreteOutput = framework::DataSpecUtils::asConcreteDataMatcher(mMonitorObjectsSpec);
381383
outputs.adopt(
382-
Output{ mMonitorObjectsSpec.origin,
383-
mMonitorObjectsSpec.description,
384-
mMonitorObjectsSpec.subSpec,
384+
Output{ concreteOutput.origin,
385+
concreteOutput.description,
386+
concreteOutput.subSpec,
385387
mMonitorObjectsSpec.lifetime },
386388
dynamic_cast<TObject*>(mObjectsManager->getNonOwningArray()));
387389

Framework/test/testInfrastructureGenerator.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE(qc_factory_local_test)
3939
BOOST_CHECK_EQUAL(workflow[0].name, "skeletonTask");
4040
BOOST_CHECK_EQUAL(workflow[0].inputs.size(), 1);
4141
BOOST_CHECK_EQUAL(workflow[0].outputs.size(), 1);
42-
BOOST_CHECK_EQUAL(workflow[0].outputs[0].subSpec, 1);
42+
BOOST_CHECK_EQUAL(DataSpecUtils::getOptionalSubSpec(workflow[0].outputs[0]).value_or(-1), 1);
4343
}
4444

4545
{
@@ -50,7 +50,7 @@ BOOST_AUTO_TEST_CASE(qc_factory_local_test)
5050
BOOST_CHECK_EQUAL(workflow[0].name, "skeletonTask");
5151
BOOST_CHECK_EQUAL(workflow[0].inputs.size(), 1);
5252
BOOST_CHECK_EQUAL(workflow[0].outputs.size(), 1);
53-
BOOST_CHECK_EQUAL(workflow[0].outputs[0].subSpec, 2);
53+
BOOST_CHECK_EQUAL(DataSpecUtils::getOptionalSubSpec(workflow[0].outputs[0]).value_or(-1), 2);
5454
}
5555

5656
{
@@ -76,7 +76,7 @@ BOOST_AUTO_TEST_CASE(qc_factory_remote_test)
7676
auto concreteInput1 = DataSpecUtils::asConcreteDataMatcher(d.inputs[1]);
7777
return d.name == "skeletonTask-merger" &&
7878
d.inputs.size() == 2 && concreteInput0.subSpec == 1 && concreteInput1.subSpec == 2 &&
79-
d.outputs.size() == 1 && d.outputs[0].subSpec == 0;
79+
d.outputs.size() == 1 && DataSpecUtils::getOptionalSubSpec(d.outputs[0]).value_or(-1) == 0;
8080
});
8181
BOOST_CHECK(mergerSkeletonTask != workflow.end());
8282

0 commit comments

Comments
 (0)