Chromium Code Reviews| Index: mojo/system/message_in_transit.h |
| diff --git a/mojo/system/message_in_transit.h b/mojo/system/message_in_transit.h |
| index 5ad928f25dfb73f2f5db58bcd4bcf890ab2e42e4..c2cfed4b0f73f629c75347422e0d957976f39d15 100644 |
| --- a/mojo/system/message_in_transit.h |
| +++ b/mojo/system/message_in_transit.h |
| @@ -55,7 +55,7 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit { |
| // the data that follows the header, and may include data other than the |
| // message data. (See also |num_bytes()|.) |
| uint32_t data_size() const { |
| - return data_size_; |
| + return header()->data_size; |
| } |
| // Gets the data (of size |data_size()| bytes). |
| @@ -65,7 +65,7 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit { |
| // Gets the size of the message data. |
| uint32_t num_bytes() const { |
| - return num_bytes_; |
| + return header()->num_bytes; |
| } |
| // Gets the message data (of size |num_bytes()| bytes). |
| @@ -74,21 +74,21 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit { |
| } |
| uint32_t num_handles() const { |
| - return num_handles_; |
| + return header()->num_handles; |
| } |
| size_t size_with_header_and_padding() const { |
| - return RoundUpMessageAlignment(sizeof(*this) + data_size_); |
| + return RoundUpMessageAlignment(sizeof(*this) + header()->data_size); |
| } |
| - Type type() const { return type_; } |
| - Subtype subtype() const { return subtype_; } |
| - EndpointId source_id() const { return source_id_; } |
| - EndpointId destination_id() const { return destination_id_; } |
| + Type type() const { return header()->type; } |
| + Subtype subtype() const { return header()->subtype; } |
| + EndpointId source_id() const { return header()->source_id; } |
| + EndpointId destination_id() const { return header()->destination_id; } |
| - void set_source_id(EndpointId source_id) { source_id_ = source_id; } |
| + void set_source_id(EndpointId source_id) { header()->source_id = source_id; } |
| void set_destination_id(EndpointId destination_id) { |
| - destination_id_ = destination_id; |
| + header()->destination_id = destination_id; |
| } |
| // TODO(vtl): Add whatever's necessary to transport handles. |
| @@ -99,27 +99,41 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit { |
| } |
| private: |
| + // "Header" for the data. Must be a multiple of |kMessageAlignment| bytes in |
| + // size. |
| + struct Header { |
| + Header(uint32_t data_size, Type type, Subtype subtype, EndpointId source_id, |
|
yzshen1
2014/02/19 18:35:06
I think we need to do each parameter on a separate
|
| + EndpointId destination_id, uint32_t num_bytes, uint32_t num_handles) |
| + : data_size(data_size), type(type), subtype(subtype), |
| + source_id(source_id), destination_id(destination_id), |
| + num_bytes(num_bytes), num_handles(num_handles), reserved0(0), |
| + reserved1(0) {} |
| + |
| + // Total size of data following the "header". |
| + uint32_t data_size; |
| + Type type; |
| + Subtype subtype; |
| + EndpointId source_id; |
| + EndpointId destination_id; |
| + // Size of actual message data. |
| + uint32_t num_bytes; |
| + // Number of handles "attached". |
| + uint32_t num_handles; |
| + // To be used soon. |
| + uint32_t reserved0; |
| + uint32_t reserved1; |
| + }; |
| + |
| MessageInTransit(uint32_t data_size, |
| Type type, |
| Subtype subtype, |
| uint32_t num_bytes, |
| uint32_t num_handles); |
| - // "Header" for the data. Must be a multiple of |kMessageAlignment| bytes in |
| - // size. |
| - // Total size of data following the "header". |
| - uint32_t data_size_; |
| - Type type_; |
| - Subtype subtype_; |
| - EndpointId source_id_; |
| - EndpointId destination_id_; |
| - // Size of actual message data. |
| - uint32_t num_bytes_; |
| - // Number of handles "attached". |
| - uint32_t num_handles_; |
| - // To be used soon. |
| - uint32_t reserved0_; |
| - uint32_t reserved1_; |
| + const Header* header() const { return &header_; } |
| + Header* header() { return &header_; } |
| + |
| + Header header_; |
| // Intentionally unimplemented (and private): Use |Destroy()| instead (which |
| // simply frees the memory). |