# Offline measurement queue

Canonical page: https://docs.ovok.com/flutter-sdk/reference/ovok_sdk/offline-measurement-queue

{/* Generated by scripts/generate_reference.dart; do not edit. */}

## OfflineMeasurementFailure [#offlinemeasurementfailure]

```dart
class OfflineMeasurementFailure
```

Why a queued save last failed.

### Constructors [#constructors]

#### OfflineMeasurementFailure.new [#offlinemeasurementfailurenew]

```dart
OfflineMeasurementFailure({
  required String name,
  String? code,
  int? status,
})
```

A failure named [`name`](#offlinemeasurementfailurename), with the server's [`code`](#offlinemeasurementfailurecode) and [`status`](#offlinemeasurementfailurestatus) when known.

| Parameter | Type | Kind | Default |
| ------ | ------ | ------ | ------ |
| `name` | `String` | required named |  |
| `code` | `String?` | named |  |
| `status` | `int?` | named |  |

#### OfflineMeasurementFailure.fromJson [#offlinemeasurementfailurefromjson]

```dart
OfflineMeasurementFailure.fromJson(JsonMap json)
```

Reads a failure stored by [`toJson`](#offlinemeasurementfailuretojson).

| Parameter | Type | Kind | Default |
| ------ | ------ | ------ | ------ |
| `json` | `JsonMap` | positional |  |

### Properties [#properties]

#### OfflineMeasurementFailure.name [#offlinemeasurementfailurename]

```dart
final String name
```

The error's type, e.g. `OvokServiceException`.

#### OfflineMeasurementFailure.code [#offlinemeasurementfailurecode]

```dart
final String? code
```

The condition the server named, when known.

#### OfflineMeasurementFailure.status [#offlinemeasurementfailurestatus]

```dart
final int? status
```

The HTTP status, when known.

### Methods [#methods]

#### OfflineMeasurementFailure.toJson [#offlinemeasurementfailuretojson]

```dart
JsonMap toJson()
```

The failure as stored in the queue.

Returns `JsonMap`.


## OfflineMeasurementFlushOptions [#offlinemeasurementflushoptions]

```dart
class OfflineMeasurementFlushOptions
```

Which queued saves a flush retries.

### Constructors [#constructors-1]

#### OfflineMeasurementFlushOptions.new [#offlinemeasurementflushoptionsnew]

```dart
OfflineMeasurementFlushOptions({bool includeExhausted = false, bool resetExhausted = false})
```

Options; the defaults retry only saves that are due.

| Parameter | Type | Kind | Default |
| ------ | ------ | ------ | ------ |
| `includeExhausted` | `bool` | named | `false` |
| `resetExhausted` | `bool` | named | `false` |

### Properties [#properties-1]

#### OfflineMeasurementFlushOptions.includeExhausted [#offlinemeasurementflushoptionsincludeexhausted]

```dart
final bool includeExhausted
```

Also retry saves that used up their attempts.

#### OfflineMeasurementFlushOptions.resetExhausted [#offlinemeasurementflushoptionsresetexhausted]

```dart
final bool resetExhausted
```

Give saves that used up their attempts a fresh set.


## OfflineMeasurementFlushResult [#offlinemeasurementflushresult]

```dart
class OfflineMeasurementFlushResult
```

What a flush of the offline queue did.

### Constructors [#constructors-2]

#### OfflineMeasurementFlushResult.new [#offlinemeasurementflushresultnew]

```dart
OfflineMeasurementFlushResult({
  required int attempted,
  required int saved,
  required int queued,
  required int exhausted,
  required Map<String, JsonMap> responses,
  required Map<String, OfflineMeasurementFailure> failures,
})
```

A flush result.

| Parameter | Type | Kind | Default |
| ------ | ------ | ------ | ------ |
| `attempted` | `int` | required named |  |
| `saved` | `int` | required named |  |
| `queued` | `int` | required named |  |
| `exhausted` | `int` | required named |  |
| `responses` | `Map<String, Map<String, dynamic>>` | required named |  |
| `failures` | `Map<String, OfflineMeasurementFailure>` | required named |  |

### Properties [#properties-2]

#### OfflineMeasurementFlushResult.attempted [#offlinemeasurementflushresultattempted]

```dart
final int attempted
```

Saves sent in this flush.

#### OfflineMeasurementFlushResult.saved [#offlinemeasurementflushresultsaved]

```dart
final int saved
```

Saves that succeeded and left the queue.

#### OfflineMeasurementFlushResult.queued [#offlinemeasurementflushresultqueued]

```dart
final int queued
```

Saves still waiting: not yet due, failed again, or another account's.

#### OfflineMeasurementFlushResult.exhausted [#offlinemeasurementflushresultexhausted]

```dart
final int exhausted
```

Saves that used up their attempts.

#### OfflineMeasurementFlushResult.responses [#offlinemeasurementflushresultresponses]

```dart
final Map<String, Map<String, dynamic>> responses
```

The server's response per saved queue id.

#### OfflineMeasurementFlushResult.failures [#offlinemeasurementflushresultfailures]

```dart
final Map<String, OfflineMeasurementFailure> failures
```

The last failure per queue id that is still queued.


## OfflineMeasurementQueueApi [#offlinemeasurementqueueapi]

```dart
class OfflineMeasurementQueueApi
```

Saves waiting to be retried. Reached through `ovok.measurements.offlineQueue`.

### Constructors [#constructors-3]

#### OfflineMeasurementQueueApi.new [#offlinemeasurementqueueapinew]

```dart
OfflineMeasurementQueueApi(Future<OfflineMeasurementFlushResult> Function(OfflineMeasurementFlushOptions) _flush)
```

Built by `MeasurementsResource`; use `ovok.measurements.offlineQueue` instead.

| Parameter | Type | Kind | Default |
| ------ | ------ | ------ | ------ |
| `_flush` | `Future<OfflineMeasurementFlushResult> Function(OfflineMeasurementFlushOptions)` | positional |  |

### Methods [#methods-1]

#### OfflineMeasurementQueueApi.flush [#offlinemeasurementqueueapiflush]

```dart
Future<OfflineMeasurementFlushResult> flush([OfflineMeasurementFlushOptions options = const OfflineMeasurementFlushOptions()])
```

Retries the signed-in account's queued saves that are due.

A save is tried up to 8 times, with a backoff from 5 seconds doubling up
to an hour; failures are recorded, not thrown.

| Parameter | Type | Kind | Default |
| ------ | ------ | ------ | ------ |
| `options` | `OfflineMeasurementFlushOptions` | optional positional | `const OfflineMeasurementFlushOptions()` |

Returns `Future<OfflineMeasurementFlushResult>`.
