| // 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_ |