1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ipc/ipc_message_macros.h"
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Singly-included section for enums and custom IPC traits.
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef IPC_CHANNEL_PROXY_UNITTEST_MESSAGES_H_
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define IPC_CHANNEL_PROXY_UNITTEST_MESSAGES_H_
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class BadType {
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  BadType() {}
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace IPC {
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)template <>
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)struct ParamTraits<BadType> {
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static void Write(Message* m, const BadType& p) {}
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static bool Read(const Message* m, PickleIterator* iter, BadType* r) {
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return false;
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static void Log(const BadType& p, std::string* l) {}
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // IPC_CHANNEL_PROXY_UNITTEST_MESSAGES_H_
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define IPC_MESSAGE_START TestMsgStart
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL0(TestMsg_Bounce)
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL0(TestMsg_SendBadMessage)
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL1(TestMsg_BadMessage, BadType)
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#undef IPC_MESSAGE_START
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define IPC_MESSAGE_START UtilityMsgStart
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL0(UtilityMsg_Bounce)
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#undef IPC_MESSAGE_START
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define IPC_MESSAGE_START WorkerMsgStart
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL0(WorkerMsg_Bounce)
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL0(WorkerMsg_Quit)
45