OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ | 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ |
6 #define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ | 6 #define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 void reset() { | 119 void reset() { |
120 State doomed; | 120 State doomed; |
121 internal_state_.Swap(&doomed); | 121 internal_state_.Swap(&doomed); |
122 } | 122 } |
123 | 123 |
124 // Whether there are any associated interfaces running on the pipe currently. | 124 // Whether there are any associated interfaces running on the pipe currently. |
125 bool HasAssociatedInterfaces() const { | 125 bool HasAssociatedInterfaces() const { |
126 return internal_state_.HasAssociatedInterfaces(); | 126 return internal_state_.HasAssociatedInterfaces(); |
127 } | 127 } |
128 | 128 |
129 // Blocks the current thread until the next incoming response callback arrives | |
130 // or an error occurs. Returns |true| if a response arrived, or |false| in | |
131 // case of error. | |
132 // | |
133 // This method may only be called if the InterfacePtr has been bound to a | |
134 // message pipe and there are no associated interfaces running. | |
135 bool WaitForIncomingResponse() { | |
136 CHECK(!HasAssociatedInterfaces()); | |
137 return internal_state_.WaitForIncomingResponse(); | |
138 } | |
139 | |
140 // Indicates whether the message pipe has encountered an error. If true, | 129 // Indicates whether the message pipe has encountered an error. If true, |
141 // method calls made on this interface will be dropped (and may already have | 130 // method calls made on this interface will be dropped (and may already have |
142 // been dropped). | 131 // been dropped). |
143 bool encountered_error() const { return internal_state_.encountered_error(); } | 132 bool encountered_error() const { return internal_state_.encountered_error(); } |
144 | 133 |
145 // Registers a handler to receive error notifications. The handler will be | 134 // Registers a handler to receive error notifications. The handler will be |
146 // called from the thread that owns this InterfacePtr. | 135 // called from the thread that owns this InterfacePtr. |
147 // | 136 // |
148 // This method may only be called after the InterfacePtr has been bound to a | 137 // This method may only be called after the InterfacePtr has been bound to a |
149 // message pipe. | 138 // message pipe. |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 base::ThreadTaskRunnerHandle::Get()) { | 223 base::ThreadTaskRunnerHandle::Get()) { |
235 InterfacePtr<Interface> ptr; | 224 InterfacePtr<Interface> ptr; |
236 if (info.is_valid()) | 225 if (info.is_valid()) |
237 ptr.Bind(std::move(info), std::move(runner)); | 226 ptr.Bind(std::move(info), std::move(runner)); |
238 return std::move(ptr); | 227 return std::move(ptr); |
239 } | 228 } |
240 | 229 |
241 } // namespace mojo | 230 } // namespace mojo |
242 | 231 |
243 #endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ | 232 #endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ |
OLD | NEW |