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

Unified Diff: mojo/public/tests/bindings/simple_bindings_support.cc

Issue 134253004: Mojo: AsyncWaiter and mojo/public/environment (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add missing files Created 6 years, 11 months 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
Index: mojo/public/tests/bindings/simple_bindings_support.cc
diff --git a/mojo/public/tests/bindings/simple_bindings_support.cc b/mojo/public/tests/bindings/simple_bindings_support.cc
deleted file mode 100644
index ceabc1e8cbd0dcde8f8f49c6d9f7f690cf3ab070..0000000000000000000000000000000000000000
--- a/mojo/public/tests/bindings/simple_bindings_support.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// 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 "mojo/public/tests/bindings/simple_bindings_support.h"
-
-#include <stdlib.h>
-
-#include <algorithm>
-
-namespace mojo {
-namespace test {
-
-SimpleBindingsSupport::SimpleBindingsSupport()
- : buf_(NULL) {
- BindingsSupport::Set(this);
-}
-
-SimpleBindingsSupport::~SimpleBindingsSupport() {
- BindingsSupport::Set(NULL);
-
- for (WaiterList::iterator it = waiters_.begin(); it != waiters_.end(); ++it)
- delete *it;
-}
-
-Buffer* SimpleBindingsSupport::SetCurrentBuffer(Buffer* buf) {
- // This is a simplistic implementation that assumes it is only ever used from
- // a single thread, which is common in tests.
- std::swap(buf_, buf);
- return buf;
-}
-
-Buffer* SimpleBindingsSupport::GetCurrentBuffer() {
- return buf_;
-}
-
-BindingsSupport::AsyncWaitID SimpleBindingsSupport::AsyncWait(
- const Handle& handle,
- MojoWaitFlags flags,
- AsyncWaitCallback* callback) {
- Waiter* waiter = new Waiter();
- waiter->handle = handle;
- waiter->flags = flags;
- waiter->callback = callback;
- waiters_.push_back(waiter);
- return waiter;
-}
-
-void SimpleBindingsSupport::CancelWait(AsyncWaitID async_wait_id) {
- Waiter* waiter = static_cast<Waiter*>(async_wait_id);
-
- WaiterList::iterator it = waiters_.begin();
- while (it != waiters_.end()) {
- if (*it == waiter) {
- WaiterList::iterator doomed = it++;
- waiters_.erase(doomed);
- } else {
- ++it;
- }
- }
-
- delete waiter;
-}
-
-void SimpleBindingsSupport::Process() {
- for (;;) {
- typedef std::pair<AsyncWaitCallback*, MojoResult> Result;
- std::list<Result> results;
-
- WaiterList::iterator it = waiters_.begin();
- while (it != waiters_.end()) {
- Waiter* waiter = *it;
- MojoResult result;
- if (IsReady(waiter->handle, waiter->flags, &result)) {
- results.push_back(std::make_pair(waiter->callback, result));
- WaiterList::iterator doomed = it++;
- waiters_.erase(doomed);
- delete waiter;
- } else {
- ++it;
- }
- }
-
- for (std::list<Result>::const_iterator it = results.begin();
- it != results.end();
- ++it) {
- it->first->OnHandleReady(it->second);
- }
- if (results.empty())
- break;
- }
-}
-
-bool SimpleBindingsSupport::IsReady(const Handle& handle, MojoWaitFlags flags,
- MojoResult* result) {
- *result = Wait(handle, flags, 0);
- return *result != MOJO_RESULT_DEADLINE_EXCEEDED;
-}
-
-} // namespace test
-} // namespace mojo

Powered by Google App Engine
This is Rietveld 408576698