# async::TestLoop

## Summary

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a92f3096721f18e0062ad8c4181222d12()` ||
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1abaa75ee13a49ae13d8e177cae596cc5b(uint32_t state)` ||
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1afb76512083304fc85785a05780f1e96c(const https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop &)` ||
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a90b9b0d8bd3c8bf48b44e07ed86227c9(https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop &&)` ||
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a7d7b87b0183424a0bf051f6bcf198503()` ||

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a1cf73cb76cf53efc1b90f4eff0dcf71a()` | `void` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a8f89444921345f1d13b1988148da9839(https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< bool()> condition)` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1aa3f650c40a89a1f6b35b1d1817702876() const ` | `https://fuchsia.dev/reference/cpp/class/zx/basic-time#classzx_1_1basic__time` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a7ab4b2791ad5b8b74e5c77a7f04d466d()` | `void` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a2e632011f65205993941fe7e6842a019(async_test_subloop_t *loop)` | `std::unique_ptr< https://fuchsia.dev/reference/cpp/class/async/subloop-token#classasync_1_1_subloop_token >` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a620412a761377b1cd0ca874f0aefecb8(https://fuchsia.dev/reference/cpp/class/zx/duration#classzx_1_1duration duration)` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a20637e16fd0fd1588d3d6d27fb84cc0e(https://fuchsia.dev/reference/cpp/class/zx/duration#classzx_1_1duration increment)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a43be0a84d4bf5a7a356ea7f162d898ce(https://fuchsia.dev/reference/cpp/class/zx/basic-time#classzx_1_1basic__time deadline)` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a9024d1a4804de36c779d458a2479ddce()` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1aa2d145690367b6de04bd5bd034f44237()` | `std::unique_ptr< https://fuchsia.dev/reference/cpp/class/async/loop-interface#classasync_1_1_loop_interface >` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1ad8570ee3c5a02bfe4353f923dc2bb6f8()` | `async_dispatcher_t *` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a0b1d6136ca83c67f5dfaee59dd9c0c92()` | `uint32_t` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1af8ade3de29ca894808600fa8c79fc38e(const https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop &)=delete` | `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop &` |
| `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop_1a72ee4a736309b932a4b83f7b94bf6e6a(https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop &&)=delete` | `https://fuchsia.dev/reference/cpp/class/async/test-loop#classasync_1_1_test_loop &` |

## Public functions

### AdvanceTimeByEpsilon

```c++
void AdvanceTimeByEpsilon()
```

### BlockCurrentSubLoopAndRunOthersUntil

```c++
bool BlockCurrentSubLoopAndRunOthersUntil(
  fit::function< bool()> condition
)
```

### Now

```c++
zx::time Now() const 
```

### Quit

```c++
void Quit()
```

### RegisterLoop

```c++
std::unique_ptr< SubloopToken > RegisterLoop(
  async_test_subloop_t *loop
)
```

### RunFor

```c++
bool RunFor(
  zx::duration duration
)
```

### RunRepeatedlyFor

```c++
void RunRepeatedlyFor(
  zx::duration increment
)
```

### RunUntil

```c++
bool RunUntil(
  zx::time deadline
)
```

### RunUntilIdle

```c++
bool RunUntilIdle()
```

### StartNewLoop

```c++
std::unique_ptr< LoopInterface > StartNewLoop()
```

### TestLoop

```c++
 TestLoop()
```

### TestLoop

```c++
 TestLoop(
  uint32_t state
)
```

### TestLoop

```c++
 TestLoop(
  const TestLoop &
)=delete
```

### TestLoop

```c++
 TestLoop(
  TestLoop &&
)=delete
```

### dispatcher

```c++
async_dispatcher_t * dispatcher()
```

### initial_state

```c++
uint32_t initial_state()
```

### operator=

```c++
TestLoop & operator=(
  const TestLoop &
)=delete
```

### operator=

```c++
TestLoop & operator=(
  TestLoop &&
)=delete
```

### \~TestLoop

```c++
 ~TestLoop()
```