cc: Added inline to Tile::IsReadyToDraw
[chromium-blink-merge.git] / ppapi / host / host_message_context.h
blob916dab51b64b5199874141716c93f0ee88e2aa13
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.
5 #ifndef PPAPI_HOST_HOST_MESSAGE_CONTEXT_H_
6 #define PPAPI_HOST_HOST_MESSAGE_CONTEXT_H_
8 #include "ipc/ipc_message.h"
9 #include "ppapi/host/ppapi_host_export.h"
10 #include "ppapi/proxy/resource_message_params.h"
12 namespace ppapi {
13 namespace host {
15 // This context structure provides information about outgoing resource message
16 // replies.
17 struct PPAPI_HOST_EXPORT ReplyMessageContext {
18 ReplyMessageContext();
19 ReplyMessageContext(
20 const ppapi::proxy::ResourceMessageReplyParams& cp,
21 IPC::Message* sync_reply_msg,
22 int routing_id);
23 ~ReplyMessageContext();
25 // The "reply params" struct with the same resource and sequence number
26 // as the original resource message call.
27 ppapi::proxy::ResourceMessageReplyParams params;
29 // If this context is generated from a sync message, this will be set to the
30 // incoming sync message. Otherwise, it will be NULL. The plugin controls
31 // whether or not the resource call is synchronous or asynchronous so a
32 // ResoureHost cannot make any assumptions about whether or not this is NULL.
33 IPC::Message* sync_reply_msg;
35 // Routing ID to be used when sending a reply message. This is only useful
36 // when the plugin is in-process. Otherwise, the value will be
37 // MSG_ROUTING_NONE.
38 int routing_id;
41 // This context structure provides information about incoming resource message
42 // call requests when passed to resources.
43 struct PPAPI_HOST_EXPORT HostMessageContext {
44 explicit HostMessageContext(
45 const ppapi::proxy::ResourceMessageCallParams& cp);
46 HostMessageContext(
47 int routing_id,
48 const ppapi::proxy::ResourceMessageCallParams& cp);
49 HostMessageContext(
50 const ppapi::proxy::ResourceMessageCallParams& cp,
51 IPC::Message* sync_reply_msg);
52 ~HostMessageContext();
54 // Returns a reply message context struct which includes the reply params.
55 ReplyMessageContext MakeReplyMessageContext() const;
57 // The original call parameters passed to the resource message call. This
58 // cannot be a reference because this object may be passed to another thread.
59 ppapi::proxy::ResourceMessageCallParams params;
61 // The reply message. If the params has the callback flag set, this message
62 // will be sent in reply. It is initialized to the empty message. If the
63 // handler wants to send something else, it should just assign the message
64 // it wants to this value.
65 IPC::Message reply_msg;
67 // If this context is generated from a sync message, this will be set to the
68 // incoming sync message. Otherwise, it will be NULL.
69 IPC::Message* sync_reply_msg;
71 // Routing ID to be used when sending a reply message. This is only useful
72 // when the plugin is in-process. Otherwise, the value will be
73 // MSG_ROUTING_NONE.
74 int routing_id;
77 } // namespace host
78 } // namespace ppapi
80 #endif // PPAPI_HOST_HOST_MESSAGE_CONTEXT_H_