Chromium Code Reviews| Index: chrome/common/safe_browsing/protobuf_message_write_macros.h |
| diff --git a/chrome/common/safe_browsing/protobuf_message_write_macros.h b/chrome/common/safe_browsing/protobuf_message_write_macros.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f77ba438c401a1afa4a009b3da734d59efa754bb |
| --- /dev/null |
| +++ b/chrome/common/safe_browsing/protobuf_message_write_macros.h |
| @@ -0,0 +1,33 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_COMMON_SAFE_BROWSING_PROTOBUF_MESSAGE_WRITE_MACROS_H_ |
| +#define CHROME_COMMON_SAFE_BROWSING_PROTOBUF_MESSAGE_WRITE_MACROS_H_ |
| + |
| +// Null out all the macros that need nulling. |
| +#include "chrome/common/safe_browsing/ipc_protobuf_message_null_macros.h" |
| + |
| +// Set up so next include will generate write methods. |
| +#undef IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN |
| +#undef IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER |
| +#undef IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER |
| +#undef IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER |
| +#undef IPC_PROTOBUF_MESSAGE_TRAITS_END |
| + |
| +#define IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN(message_name) \ |
| + void ParamTraits<message_name>::Write(Message* m, const param_type& p) { |
| +#define IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER \ |
| + IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER |
| +#define IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(name) \ |
| + if (p.has_##name##()) { \ |
|
Tom Sepez
2015/03/16 16:45:44
ditto
|
| + m->WriteBool(true); \ |
| + WriteParam(m, p.name##()); \ |
| + } else { \ |
| + m->WriteBool(false); \ |
| + } |
| +#define IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(name) \ |
| + WriteParam(m, p.name##()); |
| +#define IPC_PROTOBUF_MESSAGE_TRAITS_END() } |
| + |
| +#endif // CHROME_COMMON_SAFE_BROWSING_PROTOBUF_MESSAGE_WRITE_MACROS_H_ |