| 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 } | 51 } |
| 52 | 52 |
| 53 ResponseGenerator::ResponseGenerator() {} | 53 ResponseGenerator::ResponseGenerator() {} |
| 54 | 54 |
| 55 bool ResponseGenerator::Accept(Message* message) { | 55 bool ResponseGenerator::Accept(Message* message) { |
| 56 return false; | 56 return false; |
| 57 } | 57 } |
| 58 | 58 |
| 59 bool ResponseGenerator::AcceptWithResponder( | 59 bool ResponseGenerator::AcceptWithResponder( |
| 60 Message* message, | 60 Message* message, |
| 61 MessageReceiverWithStatus* responder) { | 61 std::unique_ptr<MessageReceiverWithStatus> responder) { |
| 62 EXPECT_TRUE(message->has_flag(Message::kFlagExpectsResponse)); | 62 EXPECT_TRUE(message->has_flag(Message::kFlagExpectsResponse)); |
| 63 | 63 |
| 64 bool result = SendResponse(message->name(), message->request_id(), | 64 bool result = SendResponse(message->name(), message->request_id(), |
| 65 reinterpret_cast<const char*>(message->payload()), | 65 reinterpret_cast<const char*>(message->payload()), |
| 66 responder); | 66 responder.get()); |
| 67 EXPECT_TRUE(responder->IsValid()); | 67 EXPECT_TRUE(responder->IsValid()); |
| 68 delete responder; | |
| 69 return result; | 68 return result; |
| 70 } | 69 } |
| 71 | 70 |
| 72 bool ResponseGenerator::SendResponse(uint32_t name, | 71 bool ResponseGenerator::SendResponse(uint32_t name, |
| 73 uint64_t request_id, | 72 uint64_t request_id, |
| 74 const char* request_string, | 73 const char* request_string, |
| 75 MessageReceiver* responder) { | 74 MessageReceiver* responder) { |
| 76 Message response; | 75 Message response; |
| 77 std::string response_string(request_string); | 76 std::string response_string(request_string); |
| 78 response_string += " world!"; | 77 response_string += " world!"; |
| 79 AllocResponseMessage(name, response_string.c_str(), request_id, &response); | 78 AllocResponseMessage(name, response_string.c_str(), request_id, &response); |
| 80 | 79 |
| 81 return responder->Accept(&response); | 80 return responder->Accept(&response); |
| 82 } | 81 } |
| 83 | 82 |
| 84 LazyResponseGenerator::LazyResponseGenerator(const base::Closure& closure) | 83 LazyResponseGenerator::LazyResponseGenerator(const base::Closure& closure) |
| 85 : responder_(nullptr), name_(0), request_id_(0), closure_(closure) {} | 84 : responder_(nullptr), name_(0), request_id_(0), closure_(closure) {} |
| 86 | 85 |
| 87 LazyResponseGenerator::~LazyResponseGenerator() { | 86 LazyResponseGenerator::~LazyResponseGenerator() = default; |
| 88 delete responder_; | |
| 89 } | |
| 90 | 87 |
| 91 bool LazyResponseGenerator::AcceptWithResponder( | 88 bool LazyResponseGenerator::AcceptWithResponder( |
| 92 Message* message, | 89 Message* message, |
| 93 MessageReceiverWithStatus* responder) { | 90 std::unique_ptr<MessageReceiverWithStatus> responder) { |
| 94 name_ = message->name(); | 91 name_ = message->name(); |
| 95 request_id_ = message->request_id(); | 92 request_id_ = message->request_id(); |
| 96 request_string_ = | 93 request_string_ = |
| 97 std::string(reinterpret_cast<const char*>(message->payload())); | 94 std::string(reinterpret_cast<const char*>(message->payload())); |
| 98 responder_ = responder; | 95 responder_ = std::move(responder); |
| 99 if (!closure_.is_null()) { | 96 if (!closure_.is_null()) { |
| 100 closure_.Run(); | 97 closure_.Run(); |
| 101 closure_.Reset(); | 98 closure_.Reset(); |
| 102 } | 99 } |
| 103 return true; | 100 return true; |
| 104 } | 101 } |
| 105 | 102 |
| 106 void LazyResponseGenerator::Complete(bool send_response) { | 103 void LazyResponseGenerator::Complete(bool send_response) { |
| 107 if (send_response) { | 104 if (send_response) { |
| 108 SendResponse(name_, request_id_, request_string_.c_str(), responder_); | 105 SendResponse(name_, request_id_, request_string_.c_str(), responder_.get()); |
| 109 } | 106 } |
| 110 delete responder_; | |
| 111 responder_ = nullptr; | 107 responder_ = nullptr; |
| 112 } | 108 } |
| 113 | 109 |
| 114 } // namespace test | 110 } // namespace test |
| 115 } // namespace mojo | 111 } // namespace mojo |
| OLD | NEW |