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