| 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.h" | 5 #include "ipc/ipc_message.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 info->message_found = true; | 233 info->message_found = true; |
| 234 } | 234 } |
| 235 | 235 |
| 236 bool Message::AddPlaceholderBrokerableAttachmentWithId( | 236 bool Message::AddPlaceholderBrokerableAttachmentWithId( |
| 237 BrokerableAttachment::AttachmentId id) { | 237 BrokerableAttachment::AttachmentId id) { |
| 238 scoped_refptr<PlaceholderBrokerableAttachment> attachment( | 238 scoped_refptr<PlaceholderBrokerableAttachment> attachment( |
| 239 new PlaceholderBrokerableAttachment(id)); | 239 new PlaceholderBrokerableAttachment(id)); |
| 240 return attachment_set()->AddAttachment(attachment); | 240 return attachment_set()->AddAttachment(attachment); |
| 241 } | 241 } |
| 242 | 242 |
| 243 bool Message::WriteAttachment(scoped_refptr<MessageAttachment> attachment) { | 243 bool Message::WriteAttachment( |
| 244 scoped_refptr<base::Pickle::Attachment> attachment) { |
| 244 bool brokerable; | 245 bool brokerable; |
| 245 size_t index; | 246 size_t index; |
| 246 bool success = | 247 bool success = attachment_set()->AddAttachment( |
| 247 attachment_set()->AddAttachment(attachment, &index, &brokerable); | 248 make_scoped_refptr(static_cast<MessageAttachment*>(attachment.get())), |
| 249 &index, &brokerable); |
| 248 DCHECK(success); | 250 DCHECK(success); |
| 249 | 251 |
| 250 // Write the type of descriptor. | 252 // Write the type of descriptor. |
| 251 WriteBool(brokerable); | 253 WriteBool(brokerable); |
| 252 | 254 |
| 253 // Write the index of the descriptor so that we don't have to | 255 // Write the index of the descriptor so that we don't have to |
| 254 // keep the current descriptor as extra decoding state when deserialising. | 256 // keep the current descriptor as extra decoding state when deserialising. |
| 255 WriteInt(static_cast<int>(index)); | 257 WriteInt(static_cast<int>(index)); |
| 256 | 258 |
| 257 #if USE_ATTACHMENT_BROKER | 259 #if USE_ATTACHMENT_BROKER |
| 258 if (brokerable) | 260 if (brokerable) |
| 259 header()->num_brokered_attachments++; | 261 header()->num_brokered_attachments++; |
| 260 #endif | 262 #endif |
| 261 | 263 |
| 262 return success; | 264 return success; |
| 263 } | 265 } |
| 264 | 266 |
| 265 bool Message::ReadAttachment( | 267 bool Message::ReadAttachment( |
| 266 base::PickleIterator* iter, | 268 base::PickleIterator* iter, |
| 267 scoped_refptr<MessageAttachment>* attachment) const { | 269 scoped_refptr<base::Pickle::Attachment>* attachment) const { |
| 268 bool brokerable; | 270 bool brokerable; |
| 269 if (!iter->ReadBool(&brokerable)) | 271 if (!iter->ReadBool(&brokerable)) |
| 270 return false; | 272 return false; |
| 271 | 273 |
| 272 int index; | 274 int index; |
| 273 if (!iter->ReadInt(&index)) | 275 if (!iter->ReadInt(&index)) |
| 274 return false; | 276 return false; |
| 275 | 277 |
| 276 MessageAttachmentSet* attachment_set = attachment_set_.get(); | 278 MessageAttachmentSet* attachment_set = attachment_set_.get(); |
| 277 if (!attachment_set) | 279 if (!attachment_set) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 291 bool Message::HasMojoHandles() const { | 293 bool Message::HasMojoHandles() const { |
| 292 return attachment_set_.get() && attachment_set_->num_mojo_handles() > 0; | 294 return attachment_set_.get() && attachment_set_->num_mojo_handles() > 0; |
| 293 } | 295 } |
| 294 | 296 |
| 295 bool Message::HasBrokerableAttachments() const { | 297 bool Message::HasBrokerableAttachments() const { |
| 296 return attachment_set_.get() && | 298 return attachment_set_.get() && |
| 297 attachment_set_->num_brokerable_attachments() > 0; | 299 attachment_set_->num_brokerable_attachments() > 0; |
| 298 } | 300 } |
| 299 | 301 |
| 300 } // namespace IPC | 302 } // namespace IPC |
| OLD | NEW |