#### [Abblix\.SharedSignals](https://www.abblix.com/en/docs/api/abblix-sharedsignals 'index')
### [Abblix\.SharedSignals\.Transmitter](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter 'Abblix\.SharedSignals\.Transmitter')

## InMemoryStreamStore Class

The process\-local stream store: right for a single\-instance transmitter and for tests\. A
scaled\-out or restart\-surviving transmitter registers a durable implementation of
[IStreamStore](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore 'Abblix\.SharedSignals\.Transmitter\.IStreamStore') instead \- stream state is the contract between two parties, and
this store forgets it with the process\.

```csharp
public sealed class InMemoryStreamStore : Abblix.SharedSignals.Transmitter.IStreamStore
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → InMemoryStreamStore

Implements [IStreamStore](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore 'Abblix\.SharedSignals\.Transmitter\.IStreamStore')
### Methods

## InMemoryStreamStore\.DeleteAsync\(string, string, CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.DeleteAsync(string,string,System.Threading.CancellationToken)}

Deletes a stream \(SSF 1\.0 Section 8\.1\.1\.5\)\.

```csharp
public System.Threading.Tasks.Task<bool> DeleteAsync(string receiverId, string streamId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `receiverId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.DeleteAsync(string,string,System.Threading.CancellationToken).receiverId}

The receiver the stream belongs to\.

###### `streamId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.DeleteAsync(string,string,System.Threading.CancellationToken).streamId}

The stream's identifier\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.DeleteAsync(string,string,System.Threading.CancellationToken).cancellationToken}

Cancels I/O a durable implementation performs\.

Implements [DeleteAsync\(string, string, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore#Abblix.SharedSignals.Transmitter.IStreamStore.DeleteAsync(string,string,System.Threading.CancellationToken) 'Abblix\.SharedSignals\.Transmitter\.IStreamStore\.DeleteAsync\(string, string, System\.Threading\.CancellationToken\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
True when deleted; false when no such stream existed\.

## InMemoryStreamStore\.FindAsync\(string, string, CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.FindAsync(string,string,System.Threading.CancellationToken)}

Finds one stream of one receiver\.

```csharp
public System.Threading.Tasks.Task<Abblix.SharedSignals.Transmitter.StreamState?> FindAsync(string receiverId, string streamId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `receiverId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.FindAsync(string,string,System.Threading.CancellationToken).receiverId}

The receiver the stream belongs to\.

###### `streamId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.FindAsync(string,string,System.Threading.CancellationToken).streamId}

The stream's identifier\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.FindAsync(string,string,System.Threading.CancellationToken).cancellationToken}

Cancels I/O a durable implementation performs\.

Implements [FindAsync\(string, string, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore#Abblix.SharedSignals.Transmitter.IStreamStore.FindAsync(string,string,System.Threading.CancellationToken) 'Abblix\.SharedSignals\.Transmitter\.IStreamStore\.FindAsync\(string, string, System\.Threading\.CancellationToken\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[StreamState](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.StreamState 'Abblix\.SharedSignals\.Transmitter\.StreamState')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
The stream's state, or null when no such stream exists for this receiver\.

## InMemoryStreamStore\.ListAllAsync\(CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.ListAllAsync(System.Threading.CancellationToken)}

Lists every stream of every receiver \- the dispatcher's view, since an event is matched
against all streams at once\.

```csharp
public System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyList<Abblix.SharedSignals.Transmitter.StreamState>> ListAllAsync(System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.ListAllAsync(System.Threading.CancellationToken).cancellationToken}

Cancels I/O a durable implementation performs\.

Implements [ListAllAsync\(CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore#Abblix.SharedSignals.Transmitter.IStreamStore.ListAllAsync(System.Threading.CancellationToken) 'Abblix\.SharedSignals\.Transmitter\.IStreamStore\.ListAllAsync\(System\.Threading\.CancellationToken\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[StreamState](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.StreamState 'Abblix\.SharedSignals\.Transmitter\.StreamState')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')

## InMemoryStreamStore\.ListAsync\(string, CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.ListAsync(string,System.Threading.CancellationToken)}

Lists the streams of one receiver, for the list form of the configuration read
\(SSF 1\.0 Section 8\.1\.1\.2\)\. An empty list is a receiver with no streams, never an error\.

```csharp
public System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyList<Abblix.SharedSignals.Transmitter.StreamState>> ListAsync(string receiverId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `receiverId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.ListAsync(string,System.Threading.CancellationToken).receiverId}

The receiver whose streams are listed\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.ListAsync(string,System.Threading.CancellationToken).cancellationToken}

Cancels I/O a durable implementation performs\.

Implements [ListAsync\(string, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore#Abblix.SharedSignals.Transmitter.IStreamStore.ListAsync(string,System.Threading.CancellationToken) 'Abblix\.SharedSignals\.Transmitter\.IStreamStore\.ListAsync\(string, System\.Threading\.CancellationToken\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[StreamState](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.StreamState 'Abblix\.SharedSignals\.Transmitter\.StreamState')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')

## InMemoryStreamStore\.TryCreateAsync\(StreamState, CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.TryCreateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken)}

Stores a new stream\.

```csharp
public System.Threading.Tasks.Task<bool> TryCreateAsync(Abblix.SharedSignals.Transmitter.StreamState stream, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `stream` [StreamState](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.StreamState 'Abblix\.SharedSignals\.Transmitter\.StreamState') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.TryCreateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken).stream}

The stream's initial state\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.TryCreateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken).cancellationToken}

Cancels I/O a durable implementation performs\.

Implements [TryCreateAsync\(StreamState, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore#Abblix.SharedSignals.Transmitter.IStreamStore.TryCreateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken) 'Abblix\.SharedSignals\.Transmitter\.IStreamStore\.TryCreateAsync\(Abblix\.SharedSignals\.Transmitter\.StreamState, System\.Threading\.CancellationToken\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
True when stored; false when a stream with the same receiver and identifier
            already exists\.

## InMemoryStreamStore\.UpdateAsync\(StreamState, CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.UpdateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken)}

Replaces a stream's state with a new snapshot, keyed by its receiver and identifier\.

```csharp
public System.Threading.Tasks.Task<bool> UpdateAsync(Abblix.SharedSignals.Transmitter.StreamState stream, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `stream` [StreamState](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.StreamState 'Abblix\.SharedSignals\.Transmitter\.StreamState') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.UpdateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken).stream}

The new state\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SharedSignals.Transmitter.InMemoryStreamStore.UpdateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken).cancellationToken}

Cancels I/O a durable implementation performs\.

Implements [UpdateAsync\(StreamState, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-sharedsignals/Abblix.SharedSignals.Transmitter.IStreamStore#Abblix.SharedSignals.Transmitter.IStreamStore.UpdateAsync(Abblix.SharedSignals.Transmitter.StreamState,System.Threading.CancellationToken) 'Abblix\.SharedSignals\.Transmitter\.IStreamStore\.UpdateAsync\(Abblix\.SharedSignals\.Transmitter\.StreamState, System\.Threading\.CancellationToken\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
True when replaced; false when no such stream exists to replace\.
