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

Side by Side Diff: ipc/ipc_message_macros.h

Issue 7064033: Virtual destructors should have virtual keyword. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « ipc/ipc_channel_posix.h ('k') | ipc/ipc_sync_channel.h » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Defining IPC Messages 5 // Defining IPC Messages
6 // 6 //
7 // Your IPC messages will be defined by macros inside of an XXX_messages.h 7 // Your IPC messages will be defined by macros inside of an XXX_messages.h
8 // header file. Most of the time, the system can automatically generate all 8 // header file. Most of the time, the system can automatically generate all
9 // of messaging mechanism from these definitions, but sometimes some manual 9 // of messaging mechanism from these definitions, but sometimes some manual
10 // coding is required. In these cases, you will also have an XXX_messages.cc 10 // coding is required. In these cases, you will also have an XXX_messages.cc
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 msg_class(int32 routing_id) \ 435 msg_class(int32 routing_id) \
436 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \ 436 : IPC::Message(routing_id, ID, PRIORITY_NORMAL) {} \
437 }; 437 };
438 438
439 #define IPC_ASYNC_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ 439 #define IPC_ASYNC_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \
440 class msg_class : \ 440 class msg_class : \
441 public IPC::MessageWithTuple<IPC_TUPLE_IN_##in_cnt in_list> { \ 441 public IPC::MessageWithTuple<IPC_TUPLE_IN_##in_cnt in_list> { \
442 public: \ 442 public: \
443 enum { ID = IPC_MESSAGE_ID() }; \ 443 enum { ID = IPC_MESSAGE_ID() }; \
444 msg_class(IPC_TYPE_IN_##in_cnt in_list); \ 444 msg_class(IPC_TYPE_IN_##in_cnt in_list); \
445 ~msg_class(); \ 445 virtual ~msg_class(); \
446 static void Log(std::string* name, const Message* msg, std::string* l); \ 446 static void Log(std::string* name, const Message* msg, std::string* l); \
447 }; 447 };
448 448
449 #define IPC_ASYNC_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ 449 #define IPC_ASYNC_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \
450 class msg_class : \ 450 class msg_class : \
451 public IPC::MessageWithTuple<IPC_TUPLE_IN_##in_cnt in_list> { \ 451 public IPC::MessageWithTuple<IPC_TUPLE_IN_##in_cnt in_list> { \
452 public: \ 452 public: \
453 enum { ID = IPC_MESSAGE_ID() }; \ 453 enum { ID = IPC_MESSAGE_ID() }; \
454 msg_class(int32 routing_id IPC_COMMA_##in_cnt \ 454 msg_class(int32 routing_id IPC_COMMA_##in_cnt \
455 IPC_TYPE_IN_##in_cnt in_list); \ 455 IPC_TYPE_IN_##in_cnt in_list); \
456 ~msg_class(); \ 456 virtual ~msg_class(); \
457 static void Log(std::string* name, const Message* msg, std::string* l); \ 457 static void Log(std::string* name, const Message* msg, std::string* l); \
458 }; 458 };
459 459
460 #define IPC_SYNC_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ 460 #define IPC_SYNC_CONTROL_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \
461 class msg_class : \ 461 class msg_class : \
462 public IPC::MessageWithReply<IPC_TUPLE_IN_##in_cnt in_list, \ 462 public IPC::MessageWithReply<IPC_TUPLE_IN_##in_cnt in_list, \
463 IPC_TUPLE_OUT_##out_cnt out_list> { \ 463 IPC_TUPLE_OUT_##out_cnt out_list> { \
464 public: \ 464 public: \
465 enum { ID = IPC_MESSAGE_ID() }; \ 465 enum { ID = IPC_MESSAGE_ID() }; \
466 msg_class(IPC_TYPE_IN_##in_cnt in_list \ 466 msg_class(IPC_TYPE_IN_##in_cnt in_list \
467 IPC_COMMA_AND_##in_cnt(IPC_COMMA_##out_cnt) \ 467 IPC_COMMA_AND_##in_cnt(IPC_COMMA_##out_cnt) \
468 IPC_TYPE_OUT_##out_cnt out_list); \ 468 IPC_TYPE_OUT_##out_cnt out_list); \
469 ~msg_class(); \ 469 virtual ~msg_class(); \
470 static void Log(std::string* name, const Message* msg, std::string* l); \ 470 static void Log(std::string* name, const Message* msg, std::string* l); \
471 }; 471 };
472 472
473 #define IPC_SYNC_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \ 473 #define IPC_SYNC_ROUTED_DECL(msg_class, in_cnt, out_cnt, in_list, out_list) \
474 class msg_class : \ 474 class msg_class : \
475 public IPC::MessageWithReply<IPC_TUPLE_IN_##in_cnt in_list, \ 475 public IPC::MessageWithReply<IPC_TUPLE_IN_##in_cnt in_list, \
476 IPC_TUPLE_OUT_##out_cnt out_list> { \ 476 IPC_TUPLE_OUT_##out_cnt out_list> { \
477 public: \ 477 public: \
478 enum { ID = IPC_MESSAGE_ID() }; \ 478 enum { ID = IPC_MESSAGE_ID() }; \
479 msg_class(int32 routing_id \ 479 msg_class(int32 routing_id \
480 IPC_COMMA_OR_##in_cnt(IPC_COMMA_##out_cnt) \ 480 IPC_COMMA_OR_##in_cnt(IPC_COMMA_##out_cnt) \
481 IPC_TYPE_IN_##in_cnt in_list \ 481 IPC_TYPE_IN_##in_cnt in_list \
482 IPC_COMMA_AND_##in_cnt(IPC_COMMA_##out_cnt) \ 482 IPC_COMMA_AND_##in_cnt(IPC_COMMA_##out_cnt) \
483 IPC_TYPE_OUT_##out_cnt out_list); \ 483 IPC_TYPE_OUT_##out_cnt out_list); \
484 ~msg_class(); \ 484 virtual ~msg_class(); \
485 static void Log(std::string* name, const Message* msg, std::string* l); \ 485 static void Log(std::string* name, const Message* msg, std::string* l); \
486 }; 486 };
487 487
488 #if defined(IPC_MESSAGE_IMPL) 488 #if defined(IPC_MESSAGE_IMPL)
489 489
490 // "Implementation" inclusion produces constructors, destructors, and 490 // "Implementation" inclusion produces constructors, destructors, and
491 // logging functions, except for the no-arg special cases, where the 491 // logging functions, except for the no-arg special cases, where the
492 // implementation occurs in the declaration, and there is no special 492 // implementation occurs in the declaration, and there is no special
493 // logging function. 493 // logging function.
494 #define IPC_MESSAGE_EXTRA(sync, kind, msg_class, \ 494 #define IPC_MESSAGE_EXTRA(sync, kind, msg_class, \
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 // This corresponds to an enum value from IPCMessageStart. 770 // This corresponds to an enum value from IPCMessageStart.
771 #define IPC_MESSAGE_CLASS(message) \ 771 #define IPC_MESSAGE_CLASS(message) \
772 IPC_MESSAGE_ID_CLASS(message.type()) 772 IPC_MESSAGE_ID_CLASS(message.type())
773 773
774 #endif // IPC_IPC_MESSAGE_MACROS_H_ 774 #endif // IPC_IPC_MESSAGE_MACROS_H_
775 775
776 // Clean up IPC_MESSAGE_START in this unguarded section so that the 776 // Clean up IPC_MESSAGE_START in this unguarded section so that the
777 // XXX_messages.h files need not do so themselves. This makes the 777 // XXX_messages.h files need not do so themselves. This makes the
778 // XXX_messages.h files easier to write. 778 // XXX_messages.h files easier to write.
779 #undef IPC_MESSAGE_START 779 #undef IPC_MESSAGE_START
780
OLDNEW
« no previous file with comments | « ipc/ipc_channel_posix.h ('k') | ipc/ipc_sync_channel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698