xref: /aosp_15_r20/external/pigweed/pw_async2/reference.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker.. _module-pw_async2-reference:
2*61c4878aSAndroid Build Coastguard Worker
3*61c4878aSAndroid Build Coastguard Worker=========
4*61c4878aSAndroid Build Coastguard WorkerReference
5*61c4878aSAndroid Build Coastguard Worker=========
6*61c4878aSAndroid Build Coastguard Worker.. pigweed-module-subpage::
7*61c4878aSAndroid Build Coastguard Worker   :name: pw_async2
8*61c4878aSAndroid Build Coastguard Worker
9*61c4878aSAndroid Build Coastguard Worker.. _module-pw_async2-reference-cpp:
10*61c4878aSAndroid Build Coastguard Worker
11*61c4878aSAndroid Build Coastguard Worker-----------------
12*61c4878aSAndroid Build Coastguard WorkerC++ API reference
13*61c4878aSAndroid Build Coastguard Worker-----------------
14*61c4878aSAndroid Build Coastguard Worker.. TODO: https://pwbug.dev/376082608 - Remove ``:private-members:``.
15*61c4878aSAndroid Build Coastguard Worker
16*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Task
17*61c4878aSAndroid Build Coastguard Worker  :members:
18*61c4878aSAndroid Build Coastguard Worker  :private-members:
19*61c4878aSAndroid Build Coastguard Worker
20*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Poll
21*61c4878aSAndroid Build Coastguard Worker  :members:
22*61c4878aSAndroid Build Coastguard Worker
23*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::Ready()
24*61c4878aSAndroid Build Coastguard Worker
25*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::Ready(std::in_place_t, Args&&... args)
26*61c4878aSAndroid Build Coastguard Worker
27*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::Ready(T&& value)
28*61c4878aSAndroid Build Coastguard Worker
29*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::Pending()
30*61c4878aSAndroid Build Coastguard Worker
31*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Context
32*61c4878aSAndroid Build Coastguard Worker  :members:
33*61c4878aSAndroid Build Coastguard Worker
34*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Waker
35*61c4878aSAndroid Build Coastguard Worker  :members:
36*61c4878aSAndroid Build Coastguard Worker
37*61c4878aSAndroid Build Coastguard Worker.. c:macro:: PW_ASYNC_STORE_WAKER
38*61c4878aSAndroid Build Coastguard Worker
39*61c4878aSAndroid Build Coastguard Worker  Arguments: ``Context& cx, Waker& waker_out, StringLiteral wait_reason_string``
40*61c4878aSAndroid Build Coastguard Worker
41*61c4878aSAndroid Build Coastguard Worker  Stores a waker associated with the current context in ``waker_out``.
42*61c4878aSAndroid Build Coastguard Worker  When ``waker_out`` is later awoken with :cpp:func:`pw::async2::Waker::Wake`,
43*61c4878aSAndroid Build Coastguard Worker  the :cpp:class:`pw::async2::Task` associated with ``cx`` will be awoken and
44*61c4878aSAndroid Build Coastguard Worker  its ``DoPend`` method will be invoked again.
45*61c4878aSAndroid Build Coastguard Worker
46*61c4878aSAndroid Build Coastguard Worker.. c:macro:: PW_ASYNC_CLONE_WAKER
47*61c4878aSAndroid Build Coastguard Worker
48*61c4878aSAndroid Build Coastguard Worker  Arguments: ``Waker& waker_in, Waker& waker_out, StringLiteral wait_reason_string``
49*61c4878aSAndroid Build Coastguard Worker
50*61c4878aSAndroid Build Coastguard Worker  Stores a waker associated with ``waker_in`` in ``waker_out``.
51*61c4878aSAndroid Build Coastguard Worker  When ``waker_out`` is later awoken with :cpp:func:`pw::async2::Waker::Wake`,
52*61c4878aSAndroid Build Coastguard Worker  the :cpp:class:`pw::async2::Task` associated with ``waker_in`` will be awoken
53*61c4878aSAndroid Build Coastguard Worker  and its ``DoPend`` method will be invoked again.
54*61c4878aSAndroid Build Coastguard Worker
55*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Dispatcher
56*61c4878aSAndroid Build Coastguard Worker  :members:
57*61c4878aSAndroid Build Coastguard Worker
58*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Coro
59*61c4878aSAndroid Build Coastguard Worker  :members:
60*61c4878aSAndroid Build Coastguard Worker
61*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::CoroContext
62*61c4878aSAndroid Build Coastguard Worker  :members:
63*61c4878aSAndroid Build Coastguard Worker
64*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::TimeProvider
65*61c4878aSAndroid Build Coastguard Worker   :members:
66*61c4878aSAndroid Build Coastguard Worker
67*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::GetSystemTimeProvider
68*61c4878aSAndroid Build Coastguard Worker
69*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::SimulatedTimeProvider
70*61c4878aSAndroid Build Coastguard Worker   :members:
71*61c4878aSAndroid Build Coastguard Worker
72*61c4878aSAndroid Build Coastguard Worker.. _module-pw_async2-reference-cpp-utilities:
73*61c4878aSAndroid Build Coastguard Worker
74*61c4878aSAndroid Build Coastguard WorkerUtilities
75*61c4878aSAndroid Build Coastguard Worker=========
76*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::EnqueueHeapFunc
77*61c4878aSAndroid Build Coastguard Worker
78*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::AllocateTask(pw::allocator::Allocator& allocator, Pendable&& pendable)
79*61c4878aSAndroid Build Coastguard Worker
80*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::AllocateTask(pw::allocator::Allocator& allocator, Args&&... args)
81*61c4878aSAndroid Build Coastguard Worker
82*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::CoroOrElseTask
83*61c4878aSAndroid Build Coastguard Worker  :members:
84*61c4878aSAndroid Build Coastguard Worker
85*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::Join
86*61c4878aSAndroid Build Coastguard Worker  :members:
87*61c4878aSAndroid Build Coastguard Worker
88*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::PendFuncTask
89*61c4878aSAndroid Build Coastguard Worker  :members:
90*61c4878aSAndroid Build Coastguard Worker
91*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::PendableAsTask
92*61c4878aSAndroid Build Coastguard Worker  :members:
93*61c4878aSAndroid Build Coastguard Worker
94*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::MakeOnceSenderAndReceiver
95*61c4878aSAndroid Build Coastguard Worker
96*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::OnceSender
97*61c4878aSAndroid Build Coastguard Worker  :members:
98*61c4878aSAndroid Build Coastguard Worker
99*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::OnceReceiver
100*61c4878aSAndroid Build Coastguard Worker  :members:
101*61c4878aSAndroid Build Coastguard Worker
102*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::async2::MakeOnceRefSenderAndReceiver
103*61c4878aSAndroid Build Coastguard Worker
104*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::OnceRefSender
105*61c4878aSAndroid Build Coastguard Worker  :members:
106*61c4878aSAndroid Build Coastguard Worker
107*61c4878aSAndroid Build Coastguard Worker.. doxygenclass:: pw::async2::OnceRefReceiver
108*61c4878aSAndroid Build Coastguard Worker  :members:
109