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

Unified Diff: mojo/public/tests/mojom/math_calculator.cc

Issue 66353002: Mojo: RemotePtr<S> + bindings changes for Peer attribute. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase + fix error in sample_service.h Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/tests/mojom/math_calculator.h ('k') | mojo/public/tests/mojom/math_calculator_internal.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/tests/mojom/math_calculator.cc
diff --git a/mojo/public/tests/mojom/math_calculator.cc b/mojo/public/tests/mojom/math_calculator.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c989b38dff8a10a6cc4c3591286a13581adcfba5
--- /dev/null
+++ b/mojo/public/tests/mojom/math_calculator.cc
@@ -0,0 +1,366 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "./math_calculator.h"
+
+#include "mojo/public/bindings/lib/message_builder.h"
+#include "./math_calculator_internal.h"
+
+namespace math {
+namespace {
+
+#pragma pack(push, 1)
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-private-field"
+#endif
+const uint32_t kCalculator_Clear_Name = 0;
+class Calculator_Clear_Params {
+ public:
+ static Calculator_Clear_Params* New(mojo::Buffer* buf) {
+ return new (buf->Allocate(sizeof(Calculator_Clear_Params)))
+ Calculator_Clear_Params();
+ }
+
+
+
+
+
+ private:
+ friend class mojo::internal::ObjectTraits<Calculator_Clear_Params>;
+
+ Calculator_Clear_Params() {
+ _header_.num_bytes = sizeof(*this);
+ _header_.num_fields = 3;
+ }
+
+ mojo::internal::StructHeader _header_;
+
+};
+MOJO_COMPILE_ASSERT(sizeof(Calculator_Clear_Params) == 8,
+ bad_sizeof_Calculator_Clear_Params);
+
+const uint32_t kCalculator_Add_Name = 1;
+class Calculator_Add_Params {
+ public:
+ static Calculator_Add_Params* New(mojo::Buffer* buf) {
+ return new (buf->Allocate(sizeof(Calculator_Add_Params)))
+ Calculator_Add_Params();
+ }
+
+ void set_value(double value) { value_ = value; }
+
+ double value() const { return value_; }
+
+ private:
+ friend class mojo::internal::ObjectTraits<Calculator_Add_Params>;
+
+ Calculator_Add_Params() {
+ _header_.num_bytes = sizeof(*this);
+ _header_.num_fields = 3;
+ }
+
+ mojo::internal::StructHeader _header_;
+ double value_;
+};
+MOJO_COMPILE_ASSERT(sizeof(Calculator_Add_Params) == 16,
+ bad_sizeof_Calculator_Add_Params);
+
+const uint32_t kCalculator_Multiply_Name = 2;
+class Calculator_Multiply_Params {
+ public:
+ static Calculator_Multiply_Params* New(mojo::Buffer* buf) {
+ return new (buf->Allocate(sizeof(Calculator_Multiply_Params)))
+ Calculator_Multiply_Params();
+ }
+
+ void set_value(double value) { value_ = value; }
+
+ double value() const { return value_; }
+
+ private:
+ friend class mojo::internal::ObjectTraits<Calculator_Multiply_Params>;
+
+ Calculator_Multiply_Params() {
+ _header_.num_bytes = sizeof(*this);
+ _header_.num_fields = 3;
+ }
+
+ mojo::internal::StructHeader _header_;
+ double value_;
+};
+MOJO_COMPILE_ASSERT(sizeof(Calculator_Multiply_Params) == 16,
+ bad_sizeof_Calculator_Multiply_Params);
+
+const uint32_t kCalculatorUI_Output_Name = 0;
+class CalculatorUI_Output_Params {
+ public:
+ static CalculatorUI_Output_Params* New(mojo::Buffer* buf) {
+ return new (buf->Allocate(sizeof(CalculatorUI_Output_Params)))
+ CalculatorUI_Output_Params();
+ }
+
+ void set_value(double value) { value_ = value; }
+
+ double value() const { return value_; }
+
+ private:
+ friend class mojo::internal::ObjectTraits<CalculatorUI_Output_Params>;
+
+ CalculatorUI_Output_Params() {
+ _header_.num_bytes = sizeof(*this);
+ _header_.num_fields = 3;
+ }
+
+ mojo::internal::StructHeader _header_;
+ double value_;
+};
+MOJO_COMPILE_ASSERT(sizeof(CalculatorUI_Output_Params) == 16,
+ bad_sizeof_CalculatorUI_Output_Params);
+
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+#pragma pack(pop)
+
+} // namespace
+
+
+
+CalculatorProxy::CalculatorProxy(mojo::MessageReceiver* receiver)
+ : receiver_(receiver) {
+}
+
+void CalculatorProxy::Clear() {
+ size_t payload_size =
+ mojo::internal::Align(sizeof(Calculator_Clear_Params));
+
+
+ mojo::MessageBuilder builder(kCalculator_Clear_Name, payload_size);
+
+ Calculator_Clear_Params* params =
+ Calculator_Clear_Params::New(builder.buffer());
+
+
+
+ mojo::Message message;
+ mojo::internal::EncodePointersAndHandles(params, &message.handles);
+
+ message.data = builder.Finish();
+
+ receiver_->Accept(&message);
+}
+
+
+void CalculatorProxy::Add(double value) {
+ size_t payload_size =
+ mojo::internal::Align(sizeof(Calculator_Add_Params));
+
+
+ mojo::MessageBuilder builder(kCalculator_Add_Name, payload_size);
+
+ Calculator_Add_Params* params =
+ Calculator_Add_Params::New(builder.buffer());
+
+ params->set_value(value);
+
+ mojo::Message message;
+ mojo::internal::EncodePointersAndHandles(params, &message.handles);
+
+ message.data = builder.Finish();
+
+ receiver_->Accept(&message);
+}
+
+
+void CalculatorProxy::Multiply(double value) {
+ size_t payload_size =
+ mojo::internal::Align(sizeof(Calculator_Multiply_Params));
+
+
+ mojo::MessageBuilder builder(kCalculator_Multiply_Name, payload_size);
+
+ Calculator_Multiply_Params* params =
+ Calculator_Multiply_Params::New(builder.buffer());
+
+ params->set_value(value);
+
+ mojo::Message message;
+ mojo::internal::EncodePointersAndHandles(params, &message.handles);
+
+ message.data = builder.Finish();
+
+ receiver_->Accept(&message);
+}
+
+
+bool CalculatorStub::Accept(mojo::Message* message) {
+ switch (message->data->header.name) {
+ case kCalculator_Clear_Name: {
+ Calculator_Clear_Params* params =
+ reinterpret_cast<Calculator_Clear_Params*>(
+ message->data->payload);
+
+ if (!mojo::internal::DecodePointersAndHandles(params, *message))
+ return false;
+ Clear();
+ break;
+ }
+
+ case kCalculator_Add_Name: {
+ Calculator_Add_Params* params =
+ reinterpret_cast<Calculator_Add_Params*>(
+ message->data->payload);
+
+ if (!mojo::internal::DecodePointersAndHandles(params, *message))
+ return false;
+ Add(params->value());
+ break;
+ }
+
+ case kCalculator_Multiply_Name: {
+ Calculator_Multiply_Params* params =
+ reinterpret_cast<Calculator_Multiply_Params*>(
+ message->data->payload);
+
+ if (!mojo::internal::DecodePointersAndHandles(params, *message))
+ return false;
+ Multiply(params->value());
+ break;
+ }
+
+ }
+ return true;
+}
+
+
+CalculatorUIProxy::CalculatorUIProxy(mojo::MessageReceiver* receiver)
+ : receiver_(receiver) {
+}
+
+void CalculatorUIProxy::Output(double value) {
+ size_t payload_size =
+ mojo::internal::Align(sizeof(CalculatorUI_Output_Params));
+
+
+ mojo::MessageBuilder builder(kCalculatorUI_Output_Name, payload_size);
+
+ CalculatorUI_Output_Params* params =
+ CalculatorUI_Output_Params::New(builder.buffer());
+
+ params->set_value(value);
+
+ mojo::Message message;
+ mojo::internal::EncodePointersAndHandles(params, &message.handles);
+
+ message.data = builder.Finish();
+
+ receiver_->Accept(&message);
+}
+
+
+bool CalculatorUIStub::Accept(mojo::Message* message) {
+ switch (message->data->header.name) {
+ case kCalculatorUI_Output_Name: {
+ CalculatorUI_Output_Params* params =
+ reinterpret_cast<CalculatorUI_Output_Params*>(
+ message->data->payload);
+
+ if (!mojo::internal::DecodePointersAndHandles(params, *message))
+ return false;
+ Output(params->value());
+ break;
+ }
+
+ }
+ return true;
+}
+
+
+} // namespace math
+
+namespace mojo {
+namespace internal {
+
+
+
+template <>
+class ObjectTraits<math::Calculator_Clear_Params> {
+ public:
+ static void EncodePointersAndHandles(
+ math::Calculator_Clear_Params* params,
+ std::vector<Handle>* handles) {
+
+
+ }
+
+ static bool DecodePointersAndHandles(
+ math::Calculator_Clear_Params* params,
+ const Message& message) {
+
+
+ return true;
+ }
+};
+
+template <>
+class ObjectTraits<math::Calculator_Add_Params> {
+ public:
+ static void EncodePointersAndHandles(
+ math::Calculator_Add_Params* params,
+ std::vector<Handle>* handles) {
+
+
+ }
+
+ static bool DecodePointersAndHandles(
+ math::Calculator_Add_Params* params,
+ const Message& message) {
+
+
+ return true;
+ }
+};
+
+template <>
+class ObjectTraits<math::Calculator_Multiply_Params> {
+ public:
+ static void EncodePointersAndHandles(
+ math::Calculator_Multiply_Params* params,
+ std::vector<Handle>* handles) {
+
+
+ }
+
+ static bool DecodePointersAndHandles(
+ math::Calculator_Multiply_Params* params,
+ const Message& message) {
+
+
+ return true;
+ }
+};
+
+template <>
+class ObjectTraits<math::CalculatorUI_Output_Params> {
+ public:
+ static void EncodePointersAndHandles(
+ math::CalculatorUI_Output_Params* params,
+ std::vector<Handle>* handles) {
+
+
+ }
+
+ static bool DecodePointersAndHandles(
+ math::CalculatorUI_Output_Params* params,
+ const Message& message) {
+
+
+ return true;
+ }
+};
+
+
+} // namespace internal
+} // namespace mojo
« no previous file with comments | « mojo/public/tests/mojom/math_calculator.h ('k') | mojo/public/tests/mojom/math_calculator_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698