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

Side by Side Diff: base/mach_ipc_mac.h

Issue 549002: Mac: Other approach for IPCing child task_ts. (Closed)
Patch Set: '' Created 10 years, 11 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 | « base/base.gypi ('k') | base/mach_ipc_mac.mm » ('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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 BASE_MACH_IPC_MAC_H_ 5 #ifndef BASE_MACH_IPC_MAC_H_
6 #define BASE_MACH_IPC_MAC_H_ 6 #define BASE_MACH_IPC_MAC_H_
7 7
8 #include <mach/mach.h> 8 #include <mach/mach.h>
9 #include <mach/message.h> 9 #include <mach/message.h>
10 #include <servers/bootstrap.h> 10 #include <servers/bootstrap.h>
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 MachReceiveMessage(void *storage, size_t storage_length) 251 MachReceiveMessage(void *storage, size_t storage_length)
252 : MachMessage(storage, storage_length) {} 252 : MachMessage(storage, storage_length) {}
253 253
254 private: 254 private:
255 DISALLOW_COPY_AND_ASSIGN(MachReceiveMessage); 255 DISALLOW_COPY_AND_ASSIGN(MachReceiveMessage);
256 }; 256 };
257 257
258 //============================================================================== 258 //==============================================================================
259 class MachSendMessage : public MachMessage { 259 class MachSendMessage : public MachMessage {
260 public: 260 public:
261 MachSendMessage(int32_t message_id); 261 explicit MachSendMessage(int32_t message_id);
262 MachSendMessage(void *storage, size_t storage_length, int32_t message_id); 262 MachSendMessage(void *storage, size_t storage_length, int32_t message_id);
263 263
264 private: 264 private:
265 void Initialize(int32_t message_id); 265 void Initialize(int32_t message_id);
266 266
267 DISALLOW_COPY_AND_ASSIGN(MachSendMessage); 267 DISALLOW_COPY_AND_ASSIGN(MachSendMessage);
268 }; 268 };
269 269
270 //============================================================================== 270 //==============================================================================
271 // Represents a mach port for which we have receive rights 271 // Represents a mach port for which we have receive rights
272 class ReceivePort { 272 class ReceivePort {
273 public: 273 public:
274 // Creates a new mach port for receiving messages and registers a name for it 274 // Creates a new mach port for receiving messages and registers a name for it
275 ReceivePort(const char *receive_port_name); 275 explicit ReceivePort(const char *receive_port_name);
276 276
277 // Given an already existing mach port, use it. We take ownership of the 277 // Given an already existing mach port, use it. We take ownership of the
278 // port and deallocate it in our destructor. 278 // port and deallocate it in our destructor.
279 ReceivePort(mach_port_t receive_port); 279 explicit ReceivePort(mach_port_t receive_port);
280 280
281 // Create a new mach port for receiving messages 281 // Create a new mach port for receiving messages
282 ReceivePort(); 282 ReceivePort();
283 283
284 ~ReceivePort(); 284 ~ReceivePort();
285 285
286 // Waits on the mach port until message received or timeout 286 // Waits on the mach port until message received or timeout
287 kern_return_t WaitForMessage(MachReceiveMessage *out_message, 287 kern_return_t WaitForMessage(MachReceiveMessage *out_message,
288 mach_msg_timeout_t timeout); 288 mach_msg_timeout_t timeout);
289 289
290 // The underlying mach port that we wrap 290 // The underlying mach port that we wrap
291 mach_port_t GetPort() const { return port_; } 291 mach_port_t GetPort() const { return port_; }
292 292
293 private: 293 private:
294 mach_port_t port_; 294 mach_port_t port_;
295 kern_return_t init_result_; 295 kern_return_t init_result_;
296 296
297 DISALLOW_COPY_AND_ASSIGN(ReceivePort); 297 DISALLOW_COPY_AND_ASSIGN(ReceivePort);
298 }; 298 };
299 299
300 //============================================================================== 300 //==============================================================================
301 // Represents a mach port for which we have send rights 301 // Represents a mach port for which we have send rights
302 class MachPortSender { 302 class MachPortSender {
303 public: 303 public:
304 // get a port with send rights corresponding to a named registered service 304 // get a port with send rights corresponding to a named registered service
305 MachPortSender(const char *receive_port_name); 305 explicit MachPortSender(const char *receive_port_name);
306 306
307 307
308 // Given an already existing mach port, use it. 308 // Given an already existing mach port, use it. Does not take ownership of
309 MachPortSender(mach_port_t send_port); 309 // |send_port|.
310 explicit MachPortSender(mach_port_t send_port);
310 311
311 kern_return_t SendMessage(MachSendMessage &message, 312 kern_return_t SendMessage(MachSendMessage &message,
312 mach_msg_timeout_t timeout); 313 mach_msg_timeout_t timeout);
313 314
314 private: 315 private:
315 mach_port_t send_port_; 316 mach_port_t send_port_;
316 kern_return_t init_result_; 317 kern_return_t init_result_;
317 318
318 DISALLOW_COPY_AND_ASSIGN(MachPortSender); 319 DISALLOW_COPY_AND_ASSIGN(MachPortSender);
319 }; 320 };
320 321
321 #endif // BASE_MACH_IPC_MAC_H_ 322 #endif // BASE_MACH_IPC_MAC_H_
OLDNEW
« no previous file with comments | « base/base.gypi ('k') | base/mach_ipc_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698