1 // Copyright (c) 2012 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 GPU_IPC_GPU_PARAM_TRAITS_H_ 6 #define GPU_IPC_GPU_PARAM_TRAITS_H_ 7 8 #include "ipc/ipc_message_utils.h" 9 #include "gpu/command_buffer/common/command_buffer.h" 10 #include "gpu/gpu_export.h" 11 12 namespace gpu { 13 struct Mailbox; 14 struct MailboxHolder; 15 } 16 17 namespace IPC { 18 19 template <> 20 struct GPU_EXPORT ParamTraits<gpu::CommandBuffer::State> { 21 typedef gpu::CommandBuffer::State param_type; 22 static void Write(Message* m, const param_type& p); 23 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 24 static void Log(const param_type& p, std::string* l); 25 }; 26 27 template<> 28 struct GPU_EXPORT ParamTraits<gpu::Mailbox> { 29 typedef gpu::Mailbox param_type; 30 static void Write(Message* m, const param_type& p); 31 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 32 static void Log(const param_type& p, std::string* l); 33 }; 34 35 template <> 36 struct GPU_EXPORT ParamTraits<gpu::MailboxHolder> { 37 typedef gpu::MailboxHolder param_type; 38 static void Write(Message* m, const param_type& p); 39 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 40 static void Log(const param_type& p, std::string* l); 41 }; 42 43 } // namespace IPC 44 45 #endif // GPU_IPC_GPU_PARAM_TRAITS_H_ 46