- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / proxy / connection.h
1 // Copyright (c) 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 PPAPI_PROXY_CONNECTION_H_
6 #define PPAPI_PROXY_CONNECTION_H_
7
8 #include "ipc/ipc_message.h"
9
10 namespace IPC {
11 class Sender;
12 }
13
14 namespace ppapi {
15 namespace proxy {
16
17 // This struct holds the channels that a resource uses to send message to the
18 // browser and renderer.
19 struct Connection {
20   Connection() : browser_sender(0),
21                  renderer_sender(0),
22                  in_process(false),
23                  browser_sender_routing_id(MSG_ROUTING_NONE) {
24   }
25   Connection(IPC::Sender* browser, IPC::Sender* renderer)
26       : browser_sender(browser),
27         renderer_sender(renderer),
28         in_process(false),
29         browser_sender_routing_id(MSG_ROUTING_NONE) {
30   }
31   Connection(IPC::Sender* browser, IPC::Sender* renderer, int routing_id)
32       : browser_sender(browser),
33         renderer_sender(renderer),
34         in_process(true),
35         browser_sender_routing_id(routing_id) {
36   }
37
38   IPC::Sender* browser_sender;
39   IPC::Sender* renderer_sender;
40   bool in_process;
41   // We need to use a routing ID when a plugin is in-process, and messages are
42   // sent back from the browser to the renderer. This is so that messages are
43   // routed to the proper RenderViewImpl.
44   int browser_sender_routing_id;
45 };
46
47 }  // namespace proxy
48 }  // namespace ppapi
49
50
51 #endif  // PPAPI_PROXY_CONNECTION_H_
52