Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: mojo/public/cpp/bindings/tests/pickled_struct_blink.h

Issue 1526533002: [mojo] Add pickling support for native-only structs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bindings-4-bool-deserialize
Patch Set: merge Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_PICKLED_STRUCT_BLINK_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_TESTS_PICKLED_STRUCT_BLINK_H_
7
8 #include <string>
9
10 #include "base/logging.h"
11 #include "base/macros.h"
12 #include "ipc/ipc_param_traits.h"
13
14 namespace base {
15 class Pickle;
16 class PickleIterator;
17 }
18
19 namespace mojo {
20 namespace test {
21
22 // An implementation of a hypothetical PickledStruct type specifically for
23 // consumers in Blink.
24 //
25 // To make things slightly more interesting, this variation of the type doesn't
26 // support negative values. It'll DCHECK if you try to construct it with any,
27 // and it will fail deserialization if negative values are decoded.
28 class PickledStructBlink {
29 public:
30 PickledStructBlink();
31 PickledStructBlink(int foo, int bar);
32 ~PickledStructBlink();
33
34 int foo() const { return foo_; }
35 void set_foo(int foo) {
36 DCHECK_GE(foo, 0);
37 foo_ = foo;
38 }
39
40 int bar() const { return bar_; }
41 void set_bar(int bar) {
42 DCHECK_GE(bar, 0);
43 bar_ = bar;
44 }
45
46 private:
47 int foo_ = 0;
48 int bar_ = 0;
49
50 DISALLOW_COPY_AND_ASSIGN(PickledStructBlink);
51 };
52
53 } // namespace test
54 } // namespace mojo
55
56 namespace IPC {
57
58 template <>
59 struct ParamTraits<mojo::test::PickledStructBlink> {
60 using param_type = mojo::test::PickledStructBlink;
61
62 static size_t GetSize(const param_type& p) { return 8; }
63 static void Write(base::Pickle* m, const param_type& p);
64 static bool Read(const base::Pickle* m,
65 base::PickleIterator* iter,
66 param_type* r);
67 static void Log(const param_type& p, std::string* l) {}
68 };
69
70 } // namespace IPC
71
72 #endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_PICKLED_STRUCT_BLINK_H_
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/tests/pickle_unittest.cc ('k') | mojo/public/cpp/bindings/tests/pickled_struct_blink.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698