| 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 #include "mojo/public/cpp/bindings/tests/router_test_util.h" | 5 #include "mojo/public/cpp/bindings/tests/router_test_util.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <string.h> | 9 #include <string.h> |
| 10 | 10 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 const char* text, | 27 const char* text, |
| 28 uint64_t request_id, | 28 uint64_t request_id, |
| 29 Message* message) { | 29 Message* message) { |
| 30 size_t payload_size = strlen(text) + 1; // Plus null terminator. | 30 size_t payload_size = strlen(text) + 1; // Plus null terminator. |
| 31 internal::ResponseMessageBuilder builder(name, payload_size, request_id); | 31 internal::ResponseMessageBuilder builder(name, payload_size, request_id); |
| 32 memcpy(builder.buffer()->Allocate(payload_size), text, payload_size); | 32 memcpy(builder.buffer()->Allocate(payload_size), text, payload_size); |
| 33 | 33 |
| 34 builder.message()->MoveTo(message); | 34 builder.message()->MoveTo(message); |
| 35 } | 35 } |
| 36 | 36 |
| 37 MessageAccumulator::MessageAccumulator(MessageQueue* queue) : queue_(queue) {} | 37 MessageAccumulator::MessageAccumulator(MessageQueue* queue, |
| 38 const base::Closure& closure) |
| 39 : queue_(queue), closure_(closure) {} |
| 40 |
| 41 MessageAccumulator::~MessageAccumulator() {} |
| 38 | 42 |
| 39 bool MessageAccumulator::Accept(Message* message) { | 43 bool MessageAccumulator::Accept(Message* message) { |
| 40 queue_->Push(message); | 44 queue_->Push(message); |
| 45 if (!closure_.is_null()) { |
| 46 closure_.Run(); |
| 47 closure_.Reset(); |
| 48 } |
| 41 return true; | 49 return true; |
| 42 } | 50 } |
| 43 | 51 |
| 44 ResponseGenerator::ResponseGenerator() {} | 52 ResponseGenerator::ResponseGenerator() {} |
| 45 | 53 |
| 46 bool ResponseGenerator::Accept(Message* message) { | 54 bool ResponseGenerator::Accept(Message* message) { |
| 47 return false; | 55 return false; |
| 48 } | 56 } |
| 49 | 57 |
| 50 bool ResponseGenerator::AcceptWithResponder( | 58 bool ResponseGenerator::AcceptWithResponder( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 65 const char* request_string, | 73 const char* request_string, |
| 66 MessageReceiver* responder) { | 74 MessageReceiver* responder) { |
| 67 Message response; | 75 Message response; |
| 68 std::string response_string(request_string); | 76 std::string response_string(request_string); |
| 69 response_string += " world!"; | 77 response_string += " world!"; |
| 70 AllocResponseMessage(name, response_string.c_str(), request_id, &response); | 78 AllocResponseMessage(name, response_string.c_str(), request_id, &response); |
| 71 | 79 |
| 72 return responder->Accept(&response); | 80 return responder->Accept(&response); |
| 73 } | 81 } |
| 74 | 82 |
| 75 LazyResponseGenerator::LazyResponseGenerator() | 83 LazyResponseGenerator::LazyResponseGenerator(const base::Closure& closure) |
| 76 : responder_(nullptr), name_(0), request_id_(0) {} | 84 : responder_(nullptr), name_(0), request_id_(0), closure_(closure) {} |
| 77 | 85 |
| 78 LazyResponseGenerator::~LazyResponseGenerator() { | 86 LazyResponseGenerator::~LazyResponseGenerator() { |
| 79 delete responder_; | 87 delete responder_; |
| 80 } | 88 } |
| 81 | 89 |
| 82 bool LazyResponseGenerator::AcceptWithResponder( | 90 bool LazyResponseGenerator::AcceptWithResponder( |
| 83 Message* message, | 91 Message* message, |
| 84 MessageReceiverWithStatus* responder) { | 92 MessageReceiverWithStatus* responder) { |
| 85 name_ = message->name(); | 93 name_ = message->name(); |
| 86 request_id_ = message->request_id(); | 94 request_id_ = message->request_id(); |
| 87 request_string_ = | 95 request_string_ = |
| 88 std::string(reinterpret_cast<const char*>(message->payload())); | 96 std::string(reinterpret_cast<const char*>(message->payload())); |
| 89 responder_ = responder; | 97 responder_ = responder; |
| 98 if (!closure_.is_null()) { |
| 99 closure_.Run(); |
| 100 closure_.Reset(); |
| 101 } |
| 90 return true; | 102 return true; |
| 91 } | 103 } |
| 92 | 104 |
| 93 void LazyResponseGenerator::Complete(bool send_response) { | 105 void LazyResponseGenerator::Complete(bool send_response) { |
| 94 if (send_response) { | 106 if (send_response) { |
| 95 SendResponse(name_, request_id_, request_string_.c_str(), responder_); | 107 SendResponse(name_, request_id_, request_string_.c_str(), responder_); |
| 96 } | 108 } |
| 97 delete responder_; | 109 delete responder_; |
| 98 responder_ = nullptr; | 110 responder_ = nullptr; |
| 99 } | 111 } |
| 100 | 112 |
| 101 } // namespace test | 113 } // namespace test |
| 102 } // namespace mojo | 114 } // namespace mojo |
| OLD | NEW |