- add sources.
[platform/framework/web/crosswalk.git] / src / sync / js / js_backend.h
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef SYNC_JS_JS_BACKEND_H_
6 #define SYNC_JS_JS_BACKEND_H_
7
8 // See README.js for design comments.
9
10 #include <string>
11
12 #include "sync/base/sync_export.h"
13
14 namespace syncer {
15
16 class JsArgList;
17 class JsEventHandler;
18 class JsReplyHandler;
19 template <typename T> class WeakHandle;
20
21 // Interface representing the backend of chrome://sync-internals.  A
22 // JsBackend can handle messages and can emit events to a
23 // JsEventHandler.
24 class SYNC_EXPORT_PRIVATE JsBackend {
25  public:
26   // Starts emitting events to the given handler, if initialized.
27   virtual void SetJsEventHandler(
28       const WeakHandle<JsEventHandler>& event_handler) = 0;
29
30   // Processes the given message and replies via the given handler, if
31   // initialized.
32   virtual void ProcessJsMessage(
33       const std::string& name, const JsArgList& args,
34       const WeakHandle<JsReplyHandler>& reply_handler) = 0;
35
36  protected:
37   virtual ~JsBackend() {}
38 };
39
40 }  // namespace syncer
41
42 #endif  // SYNC_JS_JS_BACKEND_H_