OLD | NEW |
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 #include "ipc/ipc_message_utils.h" | 5 #include "ipc/ipc_message_utils.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 } | 628 } |
629 | 629 |
630 void ParamTraits<base::DictionaryValue>::Log(const param_type& p, | 630 void ParamTraits<base::DictionaryValue>::Log(const param_type& p, |
631 std::string* l) { | 631 std::string* l) { |
632 std::string json; | 632 std::string json; |
633 base::JSONWriter::Write(p, &json); | 633 base::JSONWriter::Write(p, &json); |
634 l->append(json); | 634 l->append(json); |
635 } | 635 } |
636 | 636 |
637 #if defined(OS_POSIX) | 637 #if defined(OS_POSIX) |
| 638 void ParamTraits<base::FileDescriptor>::GetSize(base::PickleSizer* sizer, |
| 639 const param_type& p) { |
| 640 sizer->AddBool(); |
| 641 sizer->AddAttachment(); |
| 642 } |
| 643 |
638 void ParamTraits<base::FileDescriptor>::Write(base::Pickle* m, | 644 void ParamTraits<base::FileDescriptor>::Write(base::Pickle* m, |
639 const param_type& p) { | 645 const param_type& p) { |
640 const bool valid = p.fd >= 0; | 646 const bool valid = p.fd >= 0; |
641 WriteParam(m, valid); | 647 WriteParam(m, valid); |
642 | 648 |
643 if (!valid) | 649 if (!valid) |
644 return; | 650 return; |
645 | 651 |
646 if (p.auto_close) { | 652 if (p.auto_close) { |
647 if (!m->WriteAttachment( | 653 if (!m->WriteAttachment( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
680 std::string* l) { | 686 std::string* l) { |
681 if (p.auto_close) { | 687 if (p.auto_close) { |
682 l->append(base::StringPrintf("FD(%d auto-close)", p.fd)); | 688 l->append(base::StringPrintf("FD(%d auto-close)", p.fd)); |
683 } else { | 689 } else { |
684 l->append(base::StringPrintf("FD(%d)", p.fd)); | 690 l->append(base::StringPrintf("FD(%d)", p.fd)); |
685 } | 691 } |
686 } | 692 } |
687 #endif // defined(OS_POSIX) | 693 #endif // defined(OS_POSIX) |
688 | 694 |
689 #if defined(OS_MACOSX) && !defined(OS_IOS) | 695 #if defined(OS_MACOSX) && !defined(OS_IOS) |
| 696 void ParamTraits<base::SharedMemoryHandle>::GetSize(base::PickleSizer* sizer, |
| 697 const param_type& p) { |
| 698 GetParamSize(sizer, p.GetMemoryObject()); |
| 699 sizer->AddUInt32(); |
| 700 } |
| 701 |
690 void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, | 702 void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, |
691 const param_type& p) { | 703 const param_type& p) { |
692 MachPortMac mach_port_mac(p.GetMemoryObject()); | 704 MachPortMac mach_port_mac(p.GetMemoryObject()); |
693 ParamTraits<MachPortMac>::Write(m, mach_port_mac); | 705 ParamTraits<MachPortMac>::Write(m, mach_port_mac); |
694 size_t size = 0; | 706 size_t size = 0; |
695 bool result = p.GetSize(&size); | 707 bool result = p.GetSize(&size); |
696 DCHECK(result); | 708 DCHECK(result); |
697 ParamTraits<uint32_t>::Write(m, static_cast<uint32_t>(size)); | 709 ParamTraits<uint32_t>::Write(m, static_cast<uint32_t>(size)); |
698 | 710 |
699 // If the caller intended to pass ownership to the IPC stack, release a | 711 // If the caller intended to pass ownership to the IPC stack, release a |
(...skipping 19 matching lines...) Expand all Loading... |
719 return true; | 731 return true; |
720 } | 732 } |
721 | 733 |
722 void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p, | 734 void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p, |
723 std::string* l) { | 735 std::string* l) { |
724 l->append("Mach port: "); | 736 l->append("Mach port: "); |
725 LogParam(p.GetMemoryObject(), l); | 737 LogParam(p.GetMemoryObject(), l); |
726 } | 738 } |
727 | 739 |
728 #elif defined(OS_WIN) | 740 #elif defined(OS_WIN) |
| 741 void ParamTraits<base::SharedMemoryHandle>::GetSize(base::PickleSizer* s, |
| 742 const param_type& p) { |
| 743 s->AddBool(); |
| 744 if (p.NeedsBrokering()) { |
| 745 GetParamSize(s, p.GetHandle()); |
| 746 } else { |
| 747 s->AddInt(); |
| 748 } |
| 749 } |
| 750 |
729 void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, | 751 void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, |
730 const param_type& p) { | 752 const param_type& p) { |
731 m->WriteBool(p.NeedsBrokering()); | 753 m->WriteBool(p.NeedsBrokering()); |
732 | 754 |
733 if (p.NeedsBrokering()) { | 755 if (p.NeedsBrokering()) { |
734 HandleWin handle_win(p.GetHandle(), HandleWin::DUPLICATE); | 756 HandleWin handle_win(p.GetHandle(), HandleWin::DUPLICATE); |
735 ParamTraits<HandleWin>::Write(m, handle_win); | 757 ParamTraits<HandleWin>::Write(m, handle_win); |
736 | 758 |
737 // If the caller intended to pass ownership to the IPC stack, release a | 759 // If the caller intended to pass ownership to the IPC stack, release a |
738 // reference. | 760 // reference. |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1174 return result; | 1196 return result; |
1175 } | 1197 } |
1176 | 1198 |
1177 void ParamTraits<MSG>::Log(const param_type& p, std::string* l) { | 1199 void ParamTraits<MSG>::Log(const param_type& p, std::string* l) { |
1178 l->append("<MSG>"); | 1200 l->append("<MSG>"); |
1179 } | 1201 } |
1180 | 1202 |
1181 #endif // OS_WIN | 1203 #endif // OS_WIN |
1182 | 1204 |
1183 } // namespace IPC | 1205 } // namespace IPC |
OLD | NEW |