1*6777b538SAndroid Build Coastguard Worker // Copyright 2015 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef IPC_IPC_MOJO_PARAM_TRAITS_H_ 6*6777b538SAndroid Build Coastguard Worker #define IPC_IPC_MOJO_PARAM_TRAITS_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <string> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include "base/component_export.h" 11*6777b538SAndroid Build Coastguard Worker #include "ipc/ipc_param_traits.h" 12*6777b538SAndroid Build Coastguard Worker #include "mojo/public/cpp/system/data_pipe.h" 13*6777b538SAndroid Build Coastguard Worker #include "mojo/public/cpp/system/message_pipe.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace base { 16*6777b538SAndroid Build Coastguard Worker class Pickle; 17*6777b538SAndroid Build Coastguard Worker class PickleIterator; 18*6777b538SAndroid Build Coastguard Worker } 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker namespace IPC { 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker template <> COMPONENT_EXPORT(IPC)23*6777b538SAndroid Build Coastguard Workerstruct COMPONENT_EXPORT(IPC) ParamTraits<mojo::MessagePipeHandle> { 24*6777b538SAndroid Build Coastguard Worker typedef mojo::MessagePipeHandle param_type; 25*6777b538SAndroid Build Coastguard Worker static void Write(base::Pickle* m, const param_type& p); 26*6777b538SAndroid Build Coastguard Worker static bool Read(const base::Pickle* m, base::PickleIterator* iter, 27*6777b538SAndroid Build Coastguard Worker param_type* r); 28*6777b538SAndroid Build Coastguard Worker static void Log(const param_type& p, std::string* l); 29*6777b538SAndroid Build Coastguard Worker }; 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker template <> COMPONENT_EXPORT(IPC)32*6777b538SAndroid Build Coastguard Workerstruct COMPONENT_EXPORT(IPC) ParamTraits<mojo::DataPipeConsumerHandle> { 33*6777b538SAndroid Build Coastguard Worker typedef mojo::DataPipeConsumerHandle param_type; 34*6777b538SAndroid Build Coastguard Worker static void Write(base::Pickle* m, const param_type& p); 35*6777b538SAndroid Build Coastguard Worker static bool Read(const base::Pickle* m, 36*6777b538SAndroid Build Coastguard Worker base::PickleIterator* iter, 37*6777b538SAndroid Build Coastguard Worker param_type* r); 38*6777b538SAndroid Build Coastguard Worker static void Log(const param_type& p, std::string* l); 39*6777b538SAndroid Build Coastguard Worker }; 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker } // namespace IPC 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker #endif // IPC_IPC_MOJO_PARAM_TRAITS_H_ 44