LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
MainFactoriesMap.cpp
Go to the documentation of this file.
1// Copyright 2002-2019 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6#include <iostream>
7
8#include "common/LimaCommon.h"
9#include "MainFactoriesMap.h"
10
11namespace Lima
12{
13
15 {
16
17 friend class MainFactoriesMap;
18
20 {
21 if (nullptr != s_mainFactoriesMap)
22 {
23 delete s_mainFactoriesMap;
24 s_mainFactoriesMap = nullptr;
25 shuttingDown = true;
26 }
27 }
28
29 private:
30
31 static bool shuttingDown;
32 static MainFactoryMap *s_mainFactoriesMap;
33 };
34
35 MainFactoryMap* MainFactoriesMap::MainFactoriesMapPrivate::s_mainFactoriesMap = nullptr;
36 bool MainFactoriesMap::MainFactoriesMapPrivate::shuttingDown = false;
37
39 {
40 if (MainFactoriesMap::MainFactoriesMapPrivate::shuttingDown)
41 throw LimaException("Access to s_mainFactoriesMap while shutting down");
42
43 if (nullptr == MainFactoriesMap::MainFactoriesMapPrivate::s_mainFactoriesMap)
44 MainFactoriesMap::MainFactoriesMapPrivate::s_mainFactoriesMap = new MainFactoryMap;
45
46 return *MainFactoriesMap::MainFactoriesMapPrivate::s_mainFactoriesMap;
47 }
48
49}
The main LIMA exception class.
Definition LimaCommon.h:262
static MainFactoryMap & get()
NAUTITIA.
std::map< std::string, void * > MainFactoryMap