Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYNameManager.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012-2024> <EDF-DTG> <FRANCE>
3  * This file is part of Code_TYMPAN (R).
4  * Code_TYMPAN (R) is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * Code_TYMPAN (R) is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with Code_TYMPAN (R). If not, see <https://www.gnu.org/licenses/>.
14  */
15 
16 /*
17  *
18  */
19 
21 #include "TYNameManager.h"
22 #include <sstream>
23 
24 // Initialise a NULL.
26 
27 TYNameManager::TYNameManager() : _enable(true) {}
28 
30 {
31  _idMap.clear();
32 }
33 
35 {
36  if (!_pInstance)
37  {
38  _pInstance = new TYNameManager();
39  }
40 
41  return _pInstance;
42 }
43 
44 QString TYNameManager::generateName(const char* classname)
45 {
46  if (_enable)
47  {
49  {
50  std::string displayName;
51  unsigned int displayId = 0;
52 
53  IDMap::iterator it = _idMap.find(classname);
54  if (it == _idMap.end())
55  {
56  displayName =
57  (const char*)(OLocalizator::getString("DisplayName", classname).toUtf8().data());
58  displayId = 0;
59 
60  _idMap[classname] = IDCounter(displayName, 0);
61  }
62  else
63  {
64  displayName = it->second.first;
65  displayId = ++it->second.second;
66  }
67 
68  std::ostringstream oss;
69  oss << displayName << " " << displayId;
70 
71  return QString(oss.str().c_str());
72  }
73  }
74 
75  return "";
76 }
static bool isRessourceFile()
Definition: OLocalizator.h:57
static QString getString(const QString &classname, const QString &stringId)
Generateur de nom unique.
Definition: TYNameManager.h:41
QString generateName(const char *classname)
Retourne le nom de la classe associe a un nombre.
static TYNameManager * get()
Retourne l'instance singleton.
std::pair< std::string, unsigned int > IDCounter
Definition: TYNameManager.h:83
static LPTYNameManager _pInstance
Definition: TYNameManager.h:80