#### [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')

## IEventSharingPolicy Interface

The transmitter's own answer to SSF 1\.0 Section 9\.2: a subject added to a stream is a
statement of the receiver's INTEREST, never an entitlement, and the transmitter "SHOULD
validate that they are permitted to share the information contained within an event with
the Event Receiver before transmitting"\. The mechanism is deliberately outside the
specification's scope \- and outside this package's: the host implements it over whatever
authorization model it has, and the dispatcher asks it about every otherwise\-matching
delivery, last\.

```csharp
public interface IEventSharingPolicy
```
### Methods

## IEventSharingPolicy\.IsSharingPermittedAsync\(StreamState, SecurityEventDescriptor, CancellationToken\) Method {#Abblix.SharedSignals.Transmitter.IEventSharingPolicy.IsSharingPermittedAsync(Abblix.SharedSignals.Transmitter.StreamState,Abblix.SharedSignals.Transmitter.SecurityEventDescriptor,System.Threading.CancellationToken)}

Decides whether the information in one event may be shared with one stream's receiver\.

```csharp
System.Threading.Tasks.Task<bool> IsSharingPermittedAsync(Abblix.SharedSignals.Transmitter.StreamState stream, Abblix.SharedSignals.Transmitter.SecurityEventDescriptor descriptor, 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.IEventSharingPolicy.IsSharingPermittedAsync(Abblix.SharedSignals.Transmitter.StreamState,Abblix.SharedSignals.Transmitter.SecurityEventDescriptor,System.Threading.CancellationToken).stream}

The stream the event would be delivered over\.

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

The event as the application stated it\.

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

Cancels I/O the decision performs\.

#### 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 to let the delivery proceed; false to withhold it, silently \- a receiver
            learns nothing from what does not arrive \(SSF 1\.0 Section 9\.2\)\.
