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 JsEventHandler;
     17 template <typename T> class WeakHandle;
     18 
     19 // Interface representing the backend of chrome://sync-internals.  A
     20 // JsBackend can handle messages and can emit events to a
     21 // JsEventHandler.
     22 class SYNC_EXPORT_PRIVATE JsBackend {
     23  public:
     24   // Starts emitting events to the given handler, if initialized.
     25   virtual void SetJsEventHandler(
     26       const WeakHandle<JsEventHandler>& event_handler) = 0;
     27 
     28  protected:
     29   virtual ~JsBackend() {}
     30 };
     31 
     32 }  // namespace syncer
     33 
     34 #endif  // SYNC_JS_JS_BACKEND_H_
     35