LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
AnalysisContent.cpp
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#include "AnalysisContent.h"
7
8using namespace std;
9
10namespace Lima
11{
12
14{
15 friend class AnalysisContent;
16public:
17
19
25
26 std::map<QString, std::shared_ptr< AnalysisData > > m_analysisData;
27
28};
29
33
35{
36 delete m_d;
37}
38
39std::shared_ptr< AnalysisData > AnalysisContent::getData(const QString& id)
40{
41 auto it = m_d->m_analysisData.find(id);
42 if (it == m_d->m_analysisData.end())
43 {
44#ifdef DEBUG_CD
46 LTRACE << "analysis data " << id << " doesn't exists, return 0";
47#endif
48 return nullptr;
49 }
50 return it->second;
51}
52
53const std::shared_ptr< AnalysisData > AnalysisContent::getData(const QString& id) const
54{
55 auto it = m_d->m_analysisData.find(id);
56 if (it == m_d->m_analysisData.end())
57 {
58#ifdef DEBUG_CD
60 LTRACE << "data " << id << " doesn't exists, return 0";
61#endif
62 return nullptr;
63 }
64 return it->second;
65}
66
67void AnalysisContent::setData(const QString& id, std::shared_ptr< AnalysisData > data)
68{
69#ifdef DEBUG_CD
71 LDEBUG << "AnalysisContent::setData" << id;
72#endif
73 auto it = m_d->m_analysisData.find(id);
74 if (it != m_d->m_analysisData.end())
75 {
77 LWARN << "id " << id << " already exists, it will be replaced";
78 }
79 m_d->m_analysisData[id] = data;
80}
81
82void AnalysisContent::setData(const QString& id, AnalysisData* data)
83{
84#ifdef DEBUG_CD
86 LDEBUG << "AnalysisContent::setData" << id;
87#endif
88 setData(id, std::shared_ptr<AnalysisData>(data));
89}
90
91void AnalysisContent::removeData(const QString& id)
92{
93#ifdef DEBUG_CD
95 LDEBUG << "removeData " << id;
96#endif
97 auto it = m_d->m_analysisData.find(id);
98 if (it != m_d->m_analysisData.end())
99 {
100 m_d->m_analysisData.erase(it);
101 }
102}
103
104std::shared_ptr< AnalysisData > AnalysisContent::getData(const std::string& id)
105{
106 return getData(QString::fromStdString(id));
107}
108
109std::shared_ptr< AnalysisData > AnalysisContent::getData(const char* id)
110{
111 return getData(QString::fromStdString(id));
112}
113
114const std::shared_ptr< AnalysisData > AnalysisContent::getData(const char* id) const
115{
116 return getData(QString::fromStdString(id));
117}
118
119const std::shared_ptr< AnalysisData > AnalysisContent::getData(const std::string& id) const
120{
121 return getData(QString::fromStdString(id));
122}
123
124void AnalysisContent::setData(const std::string& id, std::shared_ptr<AnalysisData> data)
125{
126 setData(QString::fromStdString(id), data);
127}
128
129void AnalysisContent::setData(const std::string& id, AnalysisData* data)
130{
131 setData(QString::fromStdString(id), data);
132}
133
134void AnalysisContent::setData(const char* id, std::shared_ptr<AnalysisData> data)
135{
136 setData(QString::fromStdString(id), data);
137}
138
139void AnalysisContent::setData(const char* id, AnalysisData* data)
140{
141 setData(QString::fromStdString(id), data);
142}
143
144void AnalysisContent::removeData(const std::string& id)
145{
146 removeData(QString::fromStdString(id));
147}
148
149void AnalysisContent::removeData(const char* id)
150{
151 removeData(QString::fromStdString(id));
152}
153
154void AnalysisContent::releaseData(const std::string& id)
155{
156#ifdef DEBUG_CD
158 LDEBUG << "AnalysisContent::releaseData " << id.c_str();
159#endif
160 removeData(id);
161}
162
163} // Lima
#define LWARN
Definition LimaCommon.h:160
#define LTRACE
Definition LimaCommon.h:156
#define PROCESSUNITFRAMEWORKLOGINIT
Definition LimaCommon.h:212
#define LDEBUG
Definition LimaCommon.h:157
~AnalysisContentPrivate()=default
Destroy all AnalysisData in AnalysisContent.
std::map< QString, std::shared_ptr< AnalysisData > > m_analysisData
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
void removeData(const QString &id)
remove the analysisData with the given id
void releaseData(const std::string &id)
remove the analysisData with the given id without destructing it
std::shared_ptr< AnalysisData > getData(const QString &id)
return AnalysisData by id
virtual ~AnalysisContent()
Reduce the reference count of all AnalysisData in AnalysisContent causing them to be deleted if neede...
void setData(const QString &id, std::shared_ptr< AnalysisData > data)
set an analysisData with the given id.
just for semantics: base class for analysisData
NAUTITIA.
STL namespace.