LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
ProcessUnitPipeline.h
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/***************************************************************************
7 * Copyright (C) 2004-2012 by CEA LIST *
8 * *
9 ***************************************************************************/
10#ifndef LIMA_COMMON_PROCESSUNITFRAMEWORK_PROCESSUNITPIPELINE_H
11#define LIMA_COMMON_PROCESSUNITFRAMEWORK_PROCESSUNITPIPELINE_H
12
14#include <list>
15#include <set>
16
17namespace Lima
18{
19
20
21class InactiveUnitsData : public std::set<std::string>, public AnalysisData
22{
23public:
25 virtual ~InactiveUnitsData() {}
26};
27
31template <typename ProcessUnit>
32class ProcessUnitPipeline : public ProcessUnit
33{
34public:
37
45 virtual void init(
47 typename ProcessUnit::Manager* manager) override;
48
55 AnalysisContent& analysis) const override;
56
58 void setActiveProcessUnit(const std::string& processUnitId);
60 void setInactiveProcessUnit(const std::string& processUnitId);
61
63 const std::string& unitId,
64 typename ProcessUnit::Manager* manager);
65
66 void push_back(std::shared_ptr<ProcessUnit> pu);
67
68private:
69 void debugPrintInactiveUnits() const;
70
71 typedef typename std::list<std::shared_ptr<ProcessUnit>> ProcessUnitSequence;
72 typedef typename std::list<std::shared_ptr<ProcessUnit>>::const_iterator ProcessUnitSequenceCItr;
73 ProcessUnitSequence m_processUnitSequence;
74
76 std::set<std::string> m_inactiveUnitsIds;
77};
78
79} // Lima
80
81#include "ProcessUnitPipeline.tcc"
82
83#endif
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
just for semantics: base class for analysisData
void push_back(std::shared_ptr< ProcessUnit > pu)
virtual void init(Common::XMLConfigurationFiles::GroupConfigurationStructure &unitConfiguration, typename ProcessUnit::Manager *manager) override
initialize all sub processunits with parameters from configuration file.
void setActiveProcessUnit(const std::string &processUnitId)
void setInactiveProcessUnit(const std::string &processUnitId)
void push_back(const std::string &unitId, typename ProcessUnit::Manager *manager)
virtual LimaStatusCode process(AnalysisContent &analysis) const override
Sequentially apply each processUnit on data in analysisContent.
NAUTITIA.
LimaStatusCode
Definition LimaCommon.h:236