1 // Copyright 2013 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.
5 #ifndef TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_CRACKER_H_
6 #define TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_CRACKER_H_
9 #include "ipc/ipc_message.h"
11 // Means for updating protected message fields.
12 class MessageCracker
: public IPC::Message
{
14 static void CopyMessageID(IPC::Message
* dst
, IPC::Message
* src
) {
15 memcpy(ToCracker(dst
)->mutable_payload(),
16 ToCracker(src
)->payload(),
20 static void SetMessageType(IPC::Message
* message
, uint32 type
) {
21 ToCracker(message
)->header()->type
= type
;
25 static MessageCracker
* ToCracker(IPC::Message
* message
) {
26 return reinterpret_cast<MessageCracker
*>(message
);
29 DISALLOW_COPY_AND_ASSIGN(MessageCracker
);
32 #endif // TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_CRACKER_H_