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 } 15 16 namespace IPC { 17 18 template <> 19 struct GPU_EXPORT ParamTraits<gpu::CommandBuffer::State> { 20 typedef gpu::CommandBuffer::State param_type; 21 static void Write(Message* m, const param_type& p); 22 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 23 static void Log(const param_type& p, std::string* l); 24 }; 25 26 template<> 27 struct GPU_EXPORT ParamTraits<gpu::Mailbox> { 28 typedef gpu::Mailbox param_type; 29 static void Write(Message* m, const param_type& p); 30 static bool Read(const Message* m, PickleIterator* iter, param_type* p); 31 static void Log(const param_type& p, std::string* l); 32 }; 33 34 } // namespace IPC 35 36 #endif // GPU_IPC_GPU_PARAM_TRAITS_H_ 37