# IQueueCacheCursor Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iqueuecachecursor/)

## GetCurrent(Exception) {#getcurrent-out-system-exception-7a4f0906}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iqueuecachecursor/methods/getcurrent-out-system-exception-7a4f0906/)

```csharp
public abstract IBatchContainer GetCurrent(out Exception exception)
```

Get the current value.

### Parameters

- `exception` (`Exception`): The resulting exception.

### Returns

Returns the current batch container. If null then the stream has completed or there was a stream error. If there was a stream error, an error exception will be provided in the output.

## MoveNext {#movenext-d579f85d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iqueuecachecursor/methods/movenext-d579f85d/)

```csharp
public abstract bool MoveNext()
```

Move to next message in the stream. If it returns false, there are no more messages. The enumerator is still valid however and can be called again when more data has come in on this stream.

### Returns

`true` if there are more items, `false` otherwise

## RecordDeliveryFailure {#recorddeliveryfailure-e01bbf96}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iqueuecachecursor/methods/recorddeliveryfailure-e01bbf96/)

```csharp
public abstract void RecordDeliveryFailure()
```

Records that delivery of the current event has failed

## Refresh(StreamSequenceToken) {#refresh-orleans-streams-streamsequencetoken-909339e3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iqueuecachecursor/methods/refresh-orleans-streams-streamsequencetoken-909339e3/)

```csharp
public abstract void Refresh(StreamSequenceToken token)
```

Refreshes the cache cursor. Called when new data is added into a cache.

### Parameters

- `token` (`StreamSequenceToken`): The token.
