Roll harfbuzz-ng to 1.0.2
[chromium-blink-merge.git] / third_party / liblouis / nacl_wrapper / liblouis_wrapper.h
blob46c48163ae788ca69d32bd4c5d7da384d4435854
1 // Copyright 2013 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
15 #ifndef LIBLOUIS_NACL_LIBLOUIS_WRAPPER_H_
16 #define LIBLOUIS_NACL_LIBLOUIS_WRAPPER_H_
18 #include <string>
20 #include "base/basictypes.h"
21 #include "translation_params.h"
22 #include "translation_result.h"
24 namespace liblouis_nacl {
26 // Encapsulates logic for interacting (synchronously) with liblouis.
28 // This class is *not* thread-safe; it should be used only from one thread.
29 // Since the underlying library is not reentrant, only one instance should be
30 // in use at a time.
32 // All input strings should be represented in UTF-8.
33 class LibLouisWrapper {
34 public:
35 LibLouisWrapper();
36 ~LibLouisWrapper();
38 // Returns one of the paths where tables may be searched for.
39 const char* tables_dir() const;
41 // Loads, checks, and compiles the requested table.
42 // Returns true on success.
43 bool CheckTable(const std::string& table_names);
45 // Translates the given text and cursor position into braille.
46 bool Translate(const TranslationParams& params, TranslationResult* out);
48 // Translates the given braille cells into text.
49 bool BackTranslate(const std::string& table_names,
50 const std::vector<unsigned char>& cells, std::string* out);
52 private:
53 DISALLOW_COPY_AND_ASSIGN(LibLouisWrapper);
56 } // namespace liblouis_nacl
58 #endif // LIBLOUIS_NACL_LIBLOUIS_WRAPPER_H_