Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: ppapi/host/ppapi_host.h

Issue 1864293002: Convert //ppapi to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more nullptr Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ppapi/host/host_factory.h ('k') | ppapi/host/ppapi_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PPAPI_HOST_PPAPI_HOST_H_ 5 #ifndef PPAPI_HOST_PPAPI_HOST_H_
6 #define PPAPI_HOST_PPAPI_HOST_H_ 6 #define PPAPI_HOST_PPAPI_HOST_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
12 #include "base/macros.h" 13 #include "base/macros.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/observer_list.h" 14 #include "base/observer_list.h"
15 #include "ipc/ipc_listener.h" 15 #include "ipc/ipc_listener.h"
16 #include "ipc/ipc_sender.h" 16 #include "ipc/ipc_sender.h"
17 #include "ppapi/c/pp_instance.h" 17 #include "ppapi/c/pp_instance.h"
18 #include "ppapi/c/pp_resource.h" 18 #include "ppapi/c/pp_resource.h"
19 #include "ppapi/host/ppapi_host_export.h" 19 #include "ppapi/host/ppapi_host_export.h"
20 #include "ppapi/shared_impl/ppapi_permissions.h" 20 #include "ppapi/shared_impl/ppapi_permissions.h"
21 21
22 namespace ppapi { 22 namespace ppapi {
23 23
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 // Sends the given unsolicited reply message to the plugin. 62 // Sends the given unsolicited reply message to the plugin.
63 void SendUnsolicitedReply(PP_Resource resource, const IPC::Message& msg); 63 void SendUnsolicitedReply(PP_Resource resource, const IPC::Message& msg);
64 64
65 // Similar to |SendUnsolicitedReply()|, but also sends handles. 65 // Similar to |SendUnsolicitedReply()|, but also sends handles.
66 void SendUnsolicitedReplyWithHandles( 66 void SendUnsolicitedReplyWithHandles(
67 PP_Resource resource, 67 PP_Resource resource,
68 const IPC::Message& msg, 68 const IPC::Message& msg,
69 const std::vector<proxy::SerializedHandle>& handles); 69 const std::vector<proxy::SerializedHandle>& handles);
70 70
71 // Create a ResourceHost with the given |nested_msg|. 71 // Create a ResourceHost with the given |nested_msg|.
72 scoped_ptr<ResourceHost> CreateResourceHost(PP_Resource resource, 72 std::unique_ptr<ResourceHost> CreateResourceHost(
73 PP_Instance instance, 73 PP_Resource resource,
74 const IPC::Message& nested_msg); 74 PP_Instance instance,
75 const IPC::Message& nested_msg);
75 76
76 // Adds the given host resource as a pending one (with no corresponding 77 // Adds the given host resource as a pending one (with no corresponding
77 // PluginResource object and no PP_Resource ID yet). The pending resource ID 78 // PluginResource object and no PP_Resource ID yet). The pending resource ID
78 // is returned. See PpapiHostMsg_AttachToPendingHost. 79 // is returned. See PpapiHostMsg_AttachToPendingHost.
79 int AddPendingResourceHost(scoped_ptr<ResourceHost> resource_host); 80 int AddPendingResourceHost(std::unique_ptr<ResourceHost> resource_host);
80 81
81 // Adds the given host factory filter to the host. The PpapiHost will take 82 // Adds the given host factory filter to the host. The PpapiHost will take
82 // ownership of the pointer. 83 // ownership of the pointer.
83 void AddHostFactoryFilter(scoped_ptr<HostFactory> filter); 84 void AddHostFactoryFilter(std::unique_ptr<HostFactory> filter);
84 85
85 // Adds the given message filter to the host. The PpapiHost will take 86 // Adds the given message filter to the host. The PpapiHost will take
86 // ownership of the pointer. 87 // ownership of the pointer.
87 void AddInstanceMessageFilter(scoped_ptr<InstanceMessageFilter> filter); 88 void AddInstanceMessageFilter(std::unique_ptr<InstanceMessageFilter> filter);
88 89
89 // Returns null if the resource doesn't exist. 90 // Returns null if the resource doesn't exist.
90 host::ResourceHost* GetResourceHost(PP_Resource resource) const; 91 host::ResourceHost* GetResourceHost(PP_Resource resource) const;
91 92
92 private: 93 private:
93 friend class InstanceMessageFilter; 94 friend class InstanceMessageFilter;
94 95
95 void HandleResourceCall( 96 void HandleResourceCall(
96 const proxy::ResourceMessageCallParams& params, 97 const proxy::ResourceMessageCallParams& params,
97 const IPC::Message& nested_msg, 98 const IPC::Message& nested_msg,
(...skipping 18 matching lines...) Expand all
116 117
117 // Non-owning pointer. 118 // Non-owning pointer.
118 IPC::Sender* sender_; 119 IPC::Sender* sender_;
119 120
120 PpapiPermissions permissions_; 121 PpapiPermissions permissions_;
121 122
122 // Filters for resource creation messages. Note that since we don't support 123 // Filters for resource creation messages. Note that since we don't support
123 // deleting these dynamically we don't need to worry about modifications 124 // deleting these dynamically we don't need to worry about modifications
124 // during iteration. If we add that capability, this should be replaced with 125 // during iteration. If we add that capability, this should be replaced with
125 // an base::ObserverList. 126 // an base::ObserverList.
126 std::vector<scoped_ptr<HostFactory>> host_factory_filters_; 127 std::vector<std::unique_ptr<HostFactory>> host_factory_filters_;
127 128
128 // Filters for instance messages. Note that since we don't support deleting 129 // Filters for instance messages. Note that since we don't support deleting
129 // these dynamically we don't need to worry about modifications during 130 // these dynamically we don't need to worry about modifications during
130 // iteration. If we add that capability, this should be replaced with an 131 // iteration. If we add that capability, this should be replaced with an
131 // base::ObserverList. 132 // base::ObserverList.
132 std::vector<scoped_ptr<InstanceMessageFilter>> instance_message_filters_; 133 std::vector<std::unique_ptr<InstanceMessageFilter>> instance_message_filters_;
133 134
134 typedef std::map<PP_Resource, scoped_ptr<ResourceHost>> ResourceMap; 135 typedef std::map<PP_Resource, std::unique_ptr<ResourceHost>> ResourceMap;
135 ResourceMap resources_; 136 ResourceMap resources_;
136 137
137 // Resources that have been created in the host and have not yet had the 138 // Resources that have been created in the host and have not yet had the
138 // corresponding PluginResource associated with them. 139 // corresponding PluginResource associated with them.
139 // See PpapiHostMsg_AttachToPendingHost. 140 // See PpapiHostMsg_AttachToPendingHost.
140 typedef std::map<int, scoped_ptr<ResourceHost>> PendingHostResourceMap; 141 typedef std::map<int, std::unique_ptr<ResourceHost>> PendingHostResourceMap;
141 PendingHostResourceMap pending_resource_hosts_; 142 PendingHostResourceMap pending_resource_hosts_;
142 int next_pending_resource_host_id_; 143 int next_pending_resource_host_id_;
143 144
144 DISALLOW_COPY_AND_ASSIGN(PpapiHost); 145 DISALLOW_COPY_AND_ASSIGN(PpapiHost);
145 }; 146 };
146 147
147 } // namespace host 148 } // namespace host
148 } // namespace ppapi 149 } // namespace ppapi
149 150
150 #endif // PPAPI_HOST_PPAPIE_HOST_H_ 151 #endif // PPAPI_HOST_PPAPIE_HOST_H_
OLDNEW
« no previous file with comments | « ppapi/host/host_factory.h ('k') | ppapi/host/ppapi_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698