// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_SYNC_JS_BACKEND_H_ #define CHROME_BROWSER_SYNC_JS_BACKEND_H_ #pragma once // See README.js for design comments. #include <string> namespace browser_sync { class JsArgList; class JsEventHandler; class JsEventRouter; class JsBackend { public: // Sets the JS event router to which all backend events will be // sent. virtual void SetParentJsEventRouter(JsEventRouter* router) = 0; // Removes any existing JS event router. virtual void RemoveParentJsEventRouter() = 0; // Gets the crurent JS event router, or NULL if there is none. Used // for testing. virtual const JsEventRouter* GetParentJsEventRouter() const = 0; // Processes the given message. All reply events are sent to the // parent JS event router (if set). virtual void ProcessMessage( const std::string& name, const JsArgList& args, const JsEventHandler* sender) = 0; protected: virtual ~JsBackend() {} }; } // namespace browser_sync #endif // CHROME_BROWSER_SYNC_JS_BACKEND_H_