| Index: mojo/public/python/src/python_system_helper.h
|
| diff --git a/mojo/public/python/src/python_system_helper.h b/mojo/public/python/src/python_system_helper.h
|
| index 1962ba787fa067f5c95f79960eefecee041d56a7..e0d83ca4b7d827ef5f01bd0b0844d9744854ff12 100644
|
| --- a/mojo/public/python/src/python_system_helper.h
|
| +++ b/mojo/public/python/src/python_system_helper.h
|
| @@ -5,18 +5,46 @@
|
| #ifndef MOJO_PUBLIC_PYTHON_SRC_PYTHON_SYSTEM_HELPER_H_
|
| #define MOJO_PUBLIC_PYTHON_SRC_PYTHON_SYSTEM_HELPER_H_
|
|
|
| -#include "Python.h"
|
| +// Python must be the first include, as it defines preprocessor variable without
|
| +// checking if they already exist.
|
| +#include <Python.h>
|
|
|
| +#include <map>
|
| +
|
| +#include "mojo/public/c/environment/async_waiter.h"
|
| +#include "mojo/public/c/system/types.h"
|
| #include "mojo/public/cpp/bindings/callback.h"
|
| +#include "mojo/public/cpp/bindings/lib/shared_ptr.h"
|
|
|
| namespace mojo {
|
| +namespace python {
|
|
|
| // Create a mojo::Closure from a callable python object.
|
| mojo::Closure BuildClosure(PyObject* callable);
|
|
|
| -// Initalize mojo::RunLoop
|
| -void InitRunLoop();
|
| +class PythonAsyncWaiter {
|
| + public:
|
| + PythonAsyncWaiter();
|
| + ~PythonAsyncWaiter();
|
| + MojoAsyncWaitID AsyncWait(MojoHandle handle,
|
| + MojoHandleSignals signals,
|
| + MojoDeadline deadline,
|
| + PyObject* callable);
|
| +
|
| + void CancelWait(MojoAsyncWaitID wait_id);
|
| +
|
| + private:
|
| + class AsyncWaiterRunnable;
|
| +
|
| + typedef std::map<MojoAsyncWaitID,
|
| + internal::SharedPtr<mojo::Callback<void(MojoResult)> > >
|
| + CallbackMap;
|
| +
|
| + CallbackMap callbacks_;
|
| + const MojoAsyncWaiter* async_waiter_;
|
| +};
|
|
|
| +} // namespace python
|
| } // namespace mojo
|
|
|
| #endif // MOJO_PUBLIC_PYTHON_SRC_PYTHON_SYSTEM_HELPER_H_
|
|
|