diff options
author | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2017-05-25 16:54:36 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2017-05-26 13:12:44 +0300 |
commit | 72232bbe535758c9788c354cff15821b8b5ff898 (patch) | |
tree | 2d0b07422df451d2f0cd11a4b04677939a1e0635 /coding | |
parent | fb242784ab4f7b472eb06970cfc4a4bc16581afd (diff) |
Added transliteration enabling setting.
Diffstat (limited to 'coding')
-rw-r--r-- | coding/transliteration.cpp | 13 | ||||
-rw-r--r-- | coding/transliteration.hpp | 6 |
2 files changed, 17 insertions, 2 deletions
diff --git a/coding/transliteration.cpp b/coding/transliteration.cpp index 717b90a4f7..c75839b3e9 100644 --- a/coding/transliteration.cpp +++ b/coding/transliteration.cpp @@ -12,7 +12,6 @@ #include "std/unique_ptr.hpp" -#include <atomic> #include <cstring> #include <mutex> @@ -27,6 +26,10 @@ struct Transliteration::TransliteratorInfo std::unique_ptr<Transliterator> m_transliterator; }; +Transliteration::Transliteration() + : m_enabled(true) +{} + Transliteration::~Transliteration() { // The use of u_cleanup() just before an application terminates is optional, @@ -59,8 +62,16 @@ void Transliteration::Init(std::string const & icuDataDir) } } +void Transliteration::SetEnabled(bool enable) +{ + m_enabled = enable; +} + bool Transliteration::Transliterate(std::string const & str, int8_t langCode, std::string & out) const { + if (!m_enabled) + return false; + if (str.empty() || strings::IsASCIIString(str)) return false; diff --git a/coding/transliteration.hpp b/coding/transliteration.hpp index 088f870b56..aa10126e88 100644 --- a/coding/transliteration.hpp +++ b/coding/transliteration.hpp @@ -1,5 +1,6 @@ #pragma once +#include <atomic> #include <map> #include <memory> #include <string> @@ -13,10 +14,13 @@ public: void Init(std::string const & icuDataDir); + void SetEnabled(bool enable); bool Transliterate(std::string const & str, int8_t langCode, std::string & out) const; private: - Transliteration() = default; + Transliteration(); + + std::atomic<bool> m_enabled; struct TransliteratorInfo; std::map<std::string, std::unique_ptr<TransliteratorInfo>> m_transliterators; |