# CachedMessageBlock Methods

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

## Add(CachedMessage) {#add-orleans-providers-streams-common-cachedmessage-7b5fb932}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/add-orleans-providers-streams-common-cachedmessage-7b5fb932/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L105-L112)

```csharp
public void Add(CachedMessage message)
```

Add a message from the queue to the block. Converts the queue message to a cached message and stores it at the end of the block.

### Parameters

- `message` (`CachedMessage`): The message to add to this block.

## GetIndexOfFirstMessageLessThanOrEqualTo(StreamSequenceToken) {#getindexoffirstmessagelessthanorequalto-orleans-streams-streamsequencetoken-199ad8d3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/getindexoffirstmessagelessthanorequalto-orleans-streams-streamsequencetoken-199ad8d3/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L173-L180)

```csharp
public int GetIndexOfFirstMessageLessThanOrEqualTo(StreamSequenceToken token)
```

Gets the index of the first message in this block that has a sequence token at or before the provided token

### Parameters

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

### Returns

The index of the first message in this block that has a sequence token equal to or before the provided token.

## GetNewestSequenceToken(ICacheDataAdapter) {#getnewestsequencetoken-orleans-providers-streams-common-icachedataadapter-0cd4442e}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/getnewestsequencetoken-orleans-providers-streams-common-icachedataadapter-0cd4442e/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L153)

```csharp
public StreamSequenceToken GetNewestSequenceToken(ICacheDataAdapter dataAdapter)
```

Gets the sequence token of the newest message in this block

### Parameters

- `dataAdapter` (`ICacheDataAdapter`): The data adapter.

### Returns

The sequence token of the newest message in this block.

## GetOldestSequenceToken(ICacheDataAdapter) {#getoldestsequencetoken-orleans-providers-streams-common-icachedataadapter-f9b8404f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/getoldestsequencetoken-orleans-providers-streams-common-icachedataadapter-f9b8404f/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L163)

```csharp
public StreamSequenceToken GetOldestSequenceToken(ICacheDataAdapter dataAdapter)
```

Gets the sequence token of the oldest message in this block

### Parameters

- `dataAdapter` (`ICacheDataAdapter`): The data adapter.

### Returns

The sequence token of the oldest message in this block.

## GetSequenceToken(int, ICacheDataAdapter) {#getsequencetoken-int-orleans-providers-streams-common-icachedataadapter-d46b3fd1}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/getsequencetoken-int-orleans-providers-streams-common-icachedataadapter-d46b3fd1/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L139-L143)

```csharp
public StreamSequenceToken GetSequenceToken(int index, ICacheDataAdapter dataAdapter)
```

Gets the sequence token of the cached message a the provided index

### Parameters

- `index` (`int`): The index of the message to access.
- `dataAdapter` (`ICacheDataAdapter`): The data adapter.

### Returns

The sequence token.

## OnResetState {#onresetstate-7b4f26cc}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/onresetstate-7b4f26cc/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L226-L228)

```csharp
public override void OnResetState()
```

Notifies the object that it has been purged, so it can reset itself to the state of a newly allocated object.

## Remove {#remove-8f1a6a13}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/remove-8f1a6a13/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L88-L93)

```csharp
public bool Remove()
```

Removes a message from the start of the block (oldest data).

### Returns

`true` if there are more items remaining; otherwise `false`.

## TryFindFirstMessage(StreamId, ICacheDataAdapter, int) {#tryfindfirstmessage-orleans-runtime-streamid-orleans-providers-streams-common-ic-4962baea}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/tryfindfirstmessage-orleans-runtime-streamid-orleans-providers-streams-common-ic-4962baea/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L192)

```csharp
public bool TryFindFirstMessage(StreamId streamId, ICacheDataAdapter dataAdapter, out int index)
```

Tries to find the first message in the block that is part of the provided stream.

### Parameters

- `streamId` (`StreamId`): The stream identifier.
- `dataAdapter` (`ICacheDataAdapter`): The data adapter.
- `index` (`int`): The index.

### Returns

`true` if the message was found, `false` otherwise.

## TryFindNextMessage(int, StreamId, ICacheDataAdapter, int) {#tryfindnextmessage-int-orleans-runtime-streamid-orleans-providers-streams-common-4cd8bc78}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.cachedmessageblock/methods/tryfindnextmessage-int-orleans-runtime-streamid-orleans-providers-streams-common-4cd8bc78/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/CachedMessageBlock.cs#L205-L220)

```csharp
public bool TryFindNextMessage(int start, StreamId streamId, ICacheDataAdapter dataAdapter, out int index)
```

Tries to get the next message from the provided stream, starting at the start index.

### Parameters

- `start` (`int`): The start index.
- `streamId` (`StreamId`): The stream identifier.
- `dataAdapter` (`ICacheDataAdapter`): The data adapter.
- `index` (`int`): The index.

### Returns

`true` if the message was found, `false` otherwise.
