1 // Copyright 2013 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.
5 #ifndef MOJO_GENERATED_BINDINGS_SAMPLE_SERVICE_SERIALIZATION_H_
6 #define MOJO_GENERATED_BINDINGS_SAMPLE_SERVICE_SERIALIZATION_H_
10 #include "mojo/public/bindings/lib/bindings_serialization.h"
11 #include "mojo/public/bindings/sample/generated/sample_foo_serialization.h"
12 #include "mojo/public/bindings/sample/generated/sample_service.h"
17 const uint32_t kService_Frobinate_Name = 1;
21 class Service_Frobinate_Params {
23 static Service_Frobinate_Params* New(mojo::Buffer* buf);
25 void set_foo(Foo* foo) { foo_.ptr = foo; }
26 void set_baz(bool baz) { baz_ = baz; }
27 void set_port(mojo::Handle port) { port_ = port; }
29 const Foo* foo() const { return foo_.ptr; }
30 bool baz() const { return baz_; }
31 mojo::Handle port() const {
32 // NOTE: port is an optional field!
33 return _header_.num_fields >= 3 ? port_ : mojo::kInvalidHandle;
37 friend class mojo::internal::ObjectTraits<Service_Frobinate_Params>;
39 Service_Frobinate_Params();
40 ~Service_Frobinate_Params(); // NOT IMPLEMENTED
42 mojo::internal::StructHeader _header_;
43 mojo::internal::StructPointer<Foo> foo_;
48 MOJO_COMPILE_ASSERT(sizeof(Service_Frobinate_Params) == 24,
49 bad_sizeof_Service_Frobinate_Params);
53 } // namespace internal
60 class ObjectTraits<sample::internal::Service_Frobinate_Params> {
62 static void EncodePointersAndHandles(
63 sample::internal::Service_Frobinate_Params* params,
64 std::vector<mojo::Handle>* handles);
65 static bool DecodePointersAndHandles(
66 sample::internal::Service_Frobinate_Params* params,
67 const mojo::Message& message);
70 } // namespace internal
73 #endif // MOJO_GENERATED_BINDINGS_SAMPLE_SERVICE_SERIALIZATION_H_