|  | # Copyright 2014 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. | 
|  |  | 
|  | # distutils: language = c++ | 
|  |  | 
|  | from libc.stdint cimport int64_t, intptr_t, uint32_t, uint64_t | 
|  |  | 
|  | cimport c_async_waiter | 
|  |  | 
|  |  | 
|  | cdef extern from "mojo/public/cpp/bindings/callback.h" nogil: | 
|  | cdef cppclass CClosure "mojo::Callback<void()>": | 
|  | CClosure() | 
|  |  | 
|  |  | 
|  | cdef extern from "mojo/public/python/src/python_system_helper.h" \ | 
|  | namespace "mojo::python" nogil: | 
|  | cdef CClosure BuildClosure(object) | 
|  | cdef c_async_waiter.PythonAsyncWaiter* NewAsyncWaiter() | 
|  |  | 
|  |  | 
|  | cdef extern from "mojo/public/cpp/utility/run_loop.h" nogil: | 
|  | cdef cppclass CRunLoop "mojo::RunLoop": | 
|  | CRunLoop() | 
|  | void Run() except * | 
|  | void RunUntilIdle() except * | 
|  | void Quit() | 
|  | void PostDelayedTask(CClosure&, int64_t) | 
|  | cdef CRunLoop CRunLoopCurrent "mojo::RunLoop::current"() | 
|  |  | 
|  |  | 
|  | cdef extern from "mojo/public/cpp/environment/environment.h" nogil: | 
|  | cdef cppclass CEnvironment "mojo::Environment": | 
|  | CEnvironment() |