| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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/lib/connector.h" | 5 #include "mojo/public/cpp/bindings/lib/connector.h" |
| 6 | 6 |
| 7 #include <assert.h> | 7 #include <stddef.h> |
| 8 #include <stdlib.h> | |
| 9 | 8 |
| 10 #include "mojo/public/cpp/bindings/error_handler.h" | 9 #include "mojo/public/cpp/bindings/error_handler.h" |
| 10 #include "mojo/public/cpp/environment/logging.h" |
| 11 | 11 |
| 12 namespace mojo { | 12 namespace mojo { |
| 13 namespace internal { | 13 namespace internal { |
| 14 | 14 |
| 15 // ---------------------------------------------------------------------------- | 15 // ---------------------------------------------------------------------------- |
| 16 | 16 |
| 17 Connector::Connector(ScopedMessagePipeHandle message_pipe, | 17 Connector::Connector(ScopedMessagePipeHandle message_pipe, |
| 18 const MojoAsyncWaiter* waiter) | 18 const MojoAsyncWaiter* waiter) |
| 19 : error_handler_(NULL), | 19 : error_handler_(NULL), |
| 20 waiter_(waiter), | 20 waiter_(waiter), |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 MOJO_DEADLINE_INDEFINITE); | 59 MOJO_DEADLINE_INDEFINITE); |
| 60 if (rv != MOJO_RESULT_OK) { | 60 if (rv != MOJO_RESULT_OK) { |
| 61 NotifyError(); | 61 NotifyError(); |
| 62 return false; | 62 return false; |
| 63 } | 63 } |
| 64 mojo_ignore_result(ReadSingleMessage(&rv)); | 64 mojo_ignore_result(ReadSingleMessage(&rv)); |
| 65 return (rv == MOJO_RESULT_OK); | 65 return (rv == MOJO_RESULT_OK); |
| 66 } | 66 } |
| 67 | 67 |
| 68 bool Connector::Accept(Message* message) { | 68 bool Connector::Accept(Message* message) { |
| 69 assert(message_pipe_.is_valid()); | 69 MOJO_DCHECK(message_pipe_.is_valid()); |
| 70 | 70 |
| 71 if (error_) | 71 if (error_) |
| 72 return false; | 72 return false; |
| 73 | 73 |
| 74 if (drop_writes_) | 74 if (drop_writes_) |
| 75 return true; | 75 return true; |
| 76 | 76 |
| 77 MojoResult rv = WriteMessageRaw( | 77 MojoResult rv = WriteMessageRaw( |
| 78 message_pipe_.get(), | 78 message_pipe_.get(), |
| 79 message->data(), | 79 message->data(), |
| (...skipping 25 matching lines...) Expand all Loading... |
| 105 return true; | 105 return true; |
| 106 } | 106 } |
| 107 | 107 |
| 108 // static | 108 // static |
| 109 void Connector::CallOnHandleReady(void* closure, MojoResult result) { | 109 void Connector::CallOnHandleReady(void* closure, MojoResult result) { |
| 110 Connector* self = static_cast<Connector*>(closure); | 110 Connector* self = static_cast<Connector*>(closure); |
| 111 self->OnHandleReady(result); | 111 self->OnHandleReady(result); |
| 112 } | 112 } |
| 113 | 113 |
| 114 void Connector::OnHandleReady(MojoResult result) { | 114 void Connector::OnHandleReady(MojoResult result) { |
| 115 assert(async_wait_id_ != 0); | 115 MOJO_DCHECK(async_wait_id_ != 0); |
| 116 async_wait_id_ = 0; | 116 async_wait_id_ = 0; |
| 117 if (result != MOJO_RESULT_OK) { | 117 if (result != MOJO_RESULT_OK) { |
| 118 NotifyError(); | 118 NotifyError(); |
| 119 return; | 119 return; |
| 120 } | 120 } |
| 121 ReadAllAvailableMessages(); | 121 ReadAllAvailableMessages(); |
| 122 // At this point, this object might have been deleted. Return. | 122 // At this point, this object might have been deleted. Return. |
| 123 } | 123 } |
| 124 | 124 |
| 125 void Connector::WaitToReadMore() { | 125 void Connector::WaitToReadMore() { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 // should end early. | 183 // should end early. |
| 184 if (destroyed_flag_) { | 184 if (destroyed_flag_) { |
| 185 *destroyed_flag_ = true; // Propagate flag. | 185 *destroyed_flag_ = true; // Propagate flag. |
| 186 } | 186 } |
| 187 if (error_handler_) | 187 if (error_handler_) |
| 188 error_handler_->OnConnectionError(); | 188 error_handler_->OnConnectionError(); |
| 189 } | 189 } |
| 190 | 190 |
| 191 } // namespace internal | 191 } // namespace internal |
| 192 } // namespace mojo | 192 } // namespace mojo |
| OLD | NEW |