1 // Copyright 2013 Google Inc.
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
7 // http://www.apache.org/licenses/LICENSE-2.0
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
15 #ifndef LIBLOUIS_NACL_LIBLOUIS_WRAPPER_H_
16 #define LIBLOUIS_NACL_LIBLOUIS_WRAPPER_H_
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
32 // All input strings should be represented in UTF-8.
33 class 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
);
53 DISALLOW_COPY_AND_ASSIGN(LibLouisWrapper
);
56 } // namespace liblouis_nacl
58 #endif // LIBLOUIS_NACL_LIBLOUIS_WRAPPER_H_