11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# distutils: language = c++
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom libc.stdint cimport int64_t, intptr_t, uint32_t, uint64_t
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/c/system/core.h" nogil:
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoHandle
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint64_t MojoDeadline
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoHandleSignals
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/cpp/bindings/callback.h" nogil:
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef cppclass CClosure "mojo::Callback<void()>":
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    CClosure()
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/c/environment/async_waiter.h"  nogil:
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef intptr_t MojoAsyncWaitID
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/python/src/python_system_helper.h" \
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    namespace "mojo::python" nogil:
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef CClosure BuildClosure(object)
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef cppclass PythonAsyncWaiter "mojo::python::PythonAsyncWaiter":
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    PythonAsyncWaiter()
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    MojoAsyncWaitID AsyncWait(MojoHandle,
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                              MojoHandleSignals,
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                              MojoDeadline,
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                              object)
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    void CancelWait(MojoAsyncWaitID)
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/cpp/utility/run_loop.h" nogil:
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef cppclass CRunLoop "mojo::RunLoop":
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    CRunLoop()
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    void Run() except *
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    void RunUntilIdle() except *
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    void Quit()
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    void PostDelayedTask(CClosure&, int64_t)
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/cpp/environment/environment.h" nogil:
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef cppclass CEnvironment "mojo::Environment":
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    CEnvironment()
49