native_message_port.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// Use of this source code is governed by a BSD-style license that can be 3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// found in the LICENSE file. 4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGE_PORT_H_ 6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGE_PORT_H_ 7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "chrome/browser/extensions/api/messaging/message_service.h" 9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovnamespace extensions { 11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovclass NativeMessageProcessHost; 12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// A port that manages communication with a native application. 14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovclass NativeMessagePort : public MessageService::MessagePort { 15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov public: 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov // Takes ownership of |native_process|. 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov explicit NativeMessagePort(NativeMessageProcessHost* native_process); 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov virtual ~NativeMessagePort(); 19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov virtual void DispatchOnMessage(const std::string& message, 20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov int target_port_id) OVERRIDE; 21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov private: 23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov NativeMessageProcessHost* native_process_; 24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} // namespace extensions 27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif // CHROME_BROWSER_EXTENSIONS_API_MESSAGING_NATIVE_MESSAGE_PORT_H_ 29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov