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

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: 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) { DCHECK_GE(foo, 0); foo_ = foo; }
yzshen1 2015/12/15 21:20:27 Style! :) Please put each statement on a separate
Ken Rockot(use gerrit already) 2015/12/15 23:31:08 OK - I took some liberties because it's test-only
36
37 int bar() const { return bar_; }
38 void set_bar(int bar) { DCHECK_GE(bar, 0); bar_ = bar; }
yzshen1 2015/12/15 21:20:27 ditto.
Ken Rockot(use gerrit already) 2015/12/15 23:31:08 done
39
40 private:
41 int foo_ = 0, bar_ = 0;
yzshen1 2015/12/15 21:20:27 I believe they should be on separate lines, too.
Ken Rockot(use gerrit already) 2015/12/15 23:31:08 done
42
43 DISALLOW_COPY_AND_ASSIGN(PickledStructBlink);
44 };
45
46 } // namespace test
47 } // namespace mojo
48
49 namespace IPC {
50
51 template <>
52 struct ParamTraits<mojo::test::PickledStructBlink> {
53 using param_type = mojo::test::PickledStructBlink;
54
55 static size_t GetSize(const param_type& p) { return 8; }
56 static void Write(base::Pickle* m, const param_type& p);
57 static bool Read(const base::Pickle* m,
58 base::PickleIterator* iter,
59 param_type* r);
60 static void Log(const param_type& p, std::string* l) {}
61 };
62
63 } // namespace IPC
64
65 #endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_PICKLED_STRUCT_BLINK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698