From 74e42fb0242c25c1fa46e45fcf04e3c88ab40620 Mon Sep 17 00:00:00 2001 From: HyungKyu Song Date: Sat, 16 Feb 2013 00:53:36 +0900 Subject: Tizen 2.0 Release --- ipc/param_traits_macros.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 ipc/param_traits_macros.h (limited to 'ipc/param_traits_macros.h') diff --git a/ipc/param_traits_macros.h b/ipc/param_traits_macros.h new file mode 100644 index 000000000000..df57adfb32e0 --- /dev/null +++ b/ipc/param_traits_macros.h @@ -0,0 +1,39 @@ +// Copyright (c) 2011 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 IPC_PARAM_TRAITS_MACROS_H_ +#define IPC_PARAM_TRAITS_MACROS_H_ + +#include + +// Traits generation for structs. +#define IPC_STRUCT_TRAITS_BEGIN(struct_name) \ + namespace IPC { \ + template <> \ + struct ParamTraits { \ + typedef struct_name param_type; \ + static void Write(Message* m, const param_type& p); \ + static bool Read(const Message* m, void** iter, param_type* p); \ + static void Log(const param_type& p, std::string* l); \ + }; \ + } + +#define IPC_STRUCT_TRAITS_MEMBER(name) +#define IPC_STRUCT_TRAITS_PARENT(type) +#define IPC_STRUCT_TRAITS_END() + +// Traits generation for enums. +#define IPC_ENUM_TRAITS(enum_name) \ + namespace IPC { \ + template <> \ + struct ParamTraits { \ + typedef enum_name param_type; \ + static void Write(Message* m, const param_type& p); \ + static bool Read(const Message* m, void** iter, param_type* p); \ + static void Log(const param_type& p, std::string* l); \ + }; \ + } + +#endif // IPC_PARAM_TRAITS_MACROS_H_ + -- cgit v1.2.3