# PooledQueueCache Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.pooledqueuecache/)

## Add(List&lt;CachedMessage&gt;, DateTime) {#add-system-collections-generic-list-orleans-providers-streams-common-cachedmessa-91a9994f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.pooledqueuecache/methods/add-system-collections-generic-list-orleans-providers-streams-common-cachedmessa-91a9994f/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/PooledQueueCache.cs#L382-L388)

```csharp
public void Add(List<CachedMessage> messages, DateTime dequeueTime)
```

Add a list of queue message to the cache

### Parameters

- `messages` (`List<CachedMessage>`)
- `dequeueTime` (`DateTime`)

## GetCursor(StreamId, StreamSequenceToken) {#getcursor-orleans-runtime-streamid-orleans-streams-streamsequencetoken-bcd7d44c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.pooledqueuecache/methods/getcursor-orleans-runtime-streamid-orleans-streams-streamsequencetoken-bcd7d44c/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/PooledQueueCache.cs#L118-L120)

```csharp
public object GetCursor(StreamId streamId, StreamSequenceToken sequenceToken)
```

Acquires a cursor to enumerate through the messages in the cache at the provided sequenceToken, filtered on the specified stream.

### Parameters

- `streamId` (`StreamId`): stream identity
- `sequenceToken` (`StreamSequenceToken`)

## Refresh(object, StreamSequenceToken) {#refresh-object-orleans-streams-streamsequencetoken-618dd666}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.pooledqueuecache/methods/refresh-object-orleans-streams-streamsequencetoken-618dd666/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/PooledQueueCache.cs#L130-L155)

```csharp
public void Refresh(object cursorObj, StreamSequenceToken sequenceToken)
```

Repositions an idle or unset cursor at the provided sequence token.

### Parameters

- `cursorObj` (`object`): The cursor to refresh.
- `sequenceToken` (`StreamSequenceToken`): The sequence token to position the cursor at.

## RemoveOldestMessage {#removeoldestmessage-ad19c0ad}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.pooledqueuecache/methods/removeoldestmessage-ad19c0ad/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/PooledQueueCache.cs#L406-L417)

```csharp
public void RemoveOldestMessage()
```

Remove oldest message in the cache, remove oldest block too if the block is empty

## TryGetNextMessage(object, IBatchContainer) {#trygetnextmessage-object-out-orleans-streams-ibatchcontainer-13d2f157}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.pooledqueuecache/methods/trygetnextmessage-object-out-orleans-streams-ibatchcontainer-13d2f157/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/PooledQueueCache.cs#L303-L371)

```csharp
public bool TryGetNextMessage(object cursorObj, out IBatchContainer message)
```

Acquires the next message in the cache at the provided cursor

### Parameters

- `cursorObj` (`object`)
- `message` (`IBatchContainer`)
