1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_MESSAGE_INTERNAL_H_ 6#define MOJO_PUBLIC_CPP_BINDINGS_LIB_MESSAGE_INTERNAL_H_ 7 8#include "mojo/public/cpp/bindings/lib/bindings_internal.h" 9 10namespace mojo { 11namespace internal { 12 13#pragma pack(push, 1) 14 15enum { 16 kMessageExpectsResponse = 1 << 0, 17 kMessageIsResponse = 1 << 1 18}; 19 20struct MessageHeader : internal::StructHeader { 21 uint32_t name; 22 uint32_t flags; 23}; 24MOJO_COMPILE_ASSERT(sizeof(MessageHeader) == 16, bad_sizeof_MessageHeader); 25 26struct MessageHeaderWithRequestID : MessageHeader { 27 uint64_t request_id; 28}; 29MOJO_COMPILE_ASSERT(sizeof(MessageHeaderWithRequestID) == 24, 30 bad_sizeof_MessageHeaderWithRequestID); 31 32struct MessageData { 33 MessageHeader header; 34}; 35 36MOJO_COMPILE_ASSERT(sizeof(MessageData) == sizeof(MessageHeader), 37 bad_sizeof_MessageData); 38 39#pragma pack(pop) 40 41} // namespace internal 42} // namespace mojo 43 44#endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_MESSAGE_INTERNAL_H_ 45