Home | History | Annotate | Download | only in js
      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_
     43