Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Unified Diff: third_party/liblouis/nacl_wrapper/liblouis_instance.h

Issue 67283007: Build liblouis_nacl using gyp. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Don't copy build artifacts to final location (defered to the cl that lands all of chromevox). Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/liblouis/nacl_wrapper/liblouis_instance.h
diff --git a/third_party/liblouis/nacl_wrapper/liblouis_instance.h b/third_party/liblouis/nacl_wrapper/liblouis_instance.h
new file mode 100644
index 0000000000000000000000000000000000000000..d202a7681d776f5f340dc626c2f87fb304bea321
--- /dev/null
+++ b/third_party/liblouis/nacl_wrapper/liblouis_instance.h
@@ -0,0 +1,92 @@
+// Copyright 2013 Google Inc.
+//
+// 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.
+
+#ifndef LIBLOUIS_NACL_LIBLOUIS_INSTANCE_H_
+#define LIBLOUIS_NACL_LIBLOUIS_INSTANCE_H_
+
+#include <string>
+
+#include "base/basictypes.h"
+#include "json/json.h"
+#include "liblouis_wrapper.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/message_loop.h"
+#include "ppapi/cpp/var.h"
+#include "ppapi/utility/completion_callback_factory.h"
+#include "ppapi/utility/threading/simple_thread.h"
+#include "translation_params.h"
+
+namespace liblouis_nacl {
+
+class LibLouisInstance : public pp::Instance {
+ public:
+ explicit LibLouisInstance(PP_Instance instance);
+ virtual ~LibLouisInstance();
+
+ virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]);
+ virtual void HandleMessage(const pp::Var& var_message);
+
+ private:
+ // Post work to the background (liblouis) thread.
+ int32_t PostWorkToBackground(const pp::CompletionCallback& callback) {
+ return liblouis_thread_.message_loop().PostWork(callback);
+ }
+
+ // Encodes a message as JSON and sends it over to JavaScript.
+ void PostReply(Json::Value reply, const std::string& in_reply_to);
+
+ // Posts an error response to JavaScript.
+ void PostError(const std::string& error);
+
+ // Posts an error response to JavaScript, with the message ID of the call
+ // which caused it.
+ void PostError(const std::string& error, const std::string& in_reply_to);
+
+ // Parses and executes a table check command.
+ void HandleCheckTable(const Json::Value& message,
+ const std::string& message_id);
+
+ // Called to check a table on a background thread.
+ void CheckTableInBackground(int32_t result, const std::string& table_name,
+ const std::string& message_id);
+
+ // Parses and executes a translation command.
+ void HandleTranslate(const Json::Value& message,
+ const std::string& message_id);
+
+ // Called to translate text on a background thread.
+ void TranslateInBackground(int32_t result, const TranslationParams& params,
+ const std::string& message_id);
+
+ // Parses and executes a back translation command.
+ void HandleBackTranslate(const Json::Value& message,
+ const std::string& message_id);
+
+ // Called to back-translate text on a background thread.
+ void BackTranslateInBackground(int32_t result,
+ const std::string& table_name, const std::vector<unsigned char>& cells,
+ const std::string& message_id);
+
+ LibLouisWrapper liblouis_;
+ pp::SimpleThread liblouis_thread_;
+ pp::CompletionCallbackFactory<LibLouisInstance> cc_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(LibLouisInstance);
+};
+
+} // namespace liblouis_nacl
+
+#endif // LIBLOUIS_NACL_LIBLOUIS_INSTANCE_H_

Powered by Google App Engine
This is Rietveld 408576698