-
Notifications
You must be signed in to change notification settings - Fork 0
/
TextTranslator.cpp
95 lines (82 loc) · 2.95 KB
/
TextTranslator.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*------------------------------------------------------------------------------
Copyright 2021 Garmin Ltd. or its subsidiaries.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------------------------------------------------------------------------------*/
/**
@file
@brief Represents the ActiveCaptain community database
TextTranslator from the SQLite database
Copyright 2018-2020 by Garmin Ltd. or its subsidiaries.
*/
#define DBG_MODULE "ACDB"
#define DBG_TAG "TextTranslator"
#include <unordered_map>
#include "DBG_pub.h"
#include "Acdb/StringUtil.hpp"
#include "Acdb/TextTranslator.hpp"
namespace Acdb {
//----------------------------------------------------------------
//!
//! @public
//! @brief Constructor
//!
//----------------------------------------------------------------
TextTranslator::TextTranslator() : mValue() {} // end of TextTranslator
//----------------------------------------------------------------
//!
//! @public
//! @brief Erases all text handle/string pairs.
//!
//----------------------------------------------------------------
void TextTranslator::Clear() { mValue.clear(); } // end of Clear
//----------------------------------------------------------------
//!
//! @public
//! @brief Accessor
//!
//! @return translation for given text handle ID
//!
//----------------------------------------------------------------
std::string TextTranslator::Find(const int aTranslationId) const {
std::string result;
auto record = mValue.find(aTranslationId);
if (mValue.end() != record) {
result = record->second;
} else {
result = String::Format("MISSING STRING! [%i]", aTranslationId);
}
return result;
} // end of Find
//----------------------------------------------------------------
//!
//! @public
//! @brief accessor
//!
//! @returns reference to the single instance
//! of the text translator
//!
//----------------------------------------------------------------
/*static*/ TextTranslator& TextTranslator::GetInstance() {
static TextTranslator instance;
return instance;
} // end of GetInstance
//----------------------------------------------------------------
//!
//! @public
//! @brief Modifier
//!
//! @return success of operation
//!
//----------------------------------------------------------------
bool TextTranslator::Insert(const int aTranslationId, std::string&& aValue) {
return mValue.insert(std::make_pair(aTranslationId, std::move(aValue))).second;
} // end of Insert
} // end of namespace Acdb