# IStreamPubSub Methods

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

## ConsumerCount(QualifiedStreamId) {#consumercount-orleans-runtime-qualifiedstreamid-b3ba24fa}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/consumercount-orleans-runtime-qualifiedstreamid-b3ba24fa/)

```csharp
public abstract Task<int> ConsumerCount(QualifiedStreamId streamId)
```

### Parameters

- `streamId` (`QualifiedStreamId`)

## CreateSubscriptionId(QualifiedStreamId, GrainId) {#createsubscriptionid-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-906230cd}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/createsubscriptionid-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-906230cd/)

```csharp
public abstract GuidId CreateSubscriptionId(QualifiedStreamId streamId, GrainId streamConsumer)
```

### Parameters

- `streamId` (`QualifiedStreamId`)
- `streamConsumer` (`GrainId`)

## FaultSubscription(QualifiedStreamId, GuidId) {#faultsubscription-orleans-runtime-qualifiedstreamid-orleans-runtime-guidid-c88141b9}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/faultsubscription-orleans-runtime-qualifiedstreamid-orleans-runtime-guidid-c88141b9/)

```csharp
public abstract Task<bool> FaultSubscription(QualifiedStreamId streamId, GuidId subscriptionId)
```

### Parameters

- `streamId` (`QualifiedStreamId`)
- `subscriptionId` (`GuidId`)

## GetAllSubscriptions(QualifiedStreamId, GrainId) {#getallsubscriptions-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-0402b45d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/getallsubscriptions-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-0402b45d/)

```csharp
public abstract Task<List<StreamSubscription>> GetAllSubscriptions(QualifiedStreamId streamId, GrainId streamConsumer = default(GrainId))
```

### Parameters

- `streamId` (`QualifiedStreamId`)
- `streamConsumer` (`GrainId`)

## ProducerCount(QualifiedStreamId) {#producercount-orleans-runtime-qualifiedstreamid-89d74df0}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/producercount-orleans-runtime-qualifiedstreamid-89d74df0/)

```csharp
public abstract Task<int> ProducerCount(QualifiedStreamId streamId)
```

### Parameters

- `streamId` (`QualifiedStreamId`)

## RegisterConsumer(GuidId, QualifiedStreamId, GrainId, string) {#registerconsumer-orleans-runtime-guidid-orleans-runtime-qualifiedstreamid-orlean-4cacaefc}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/registerconsumer-orleans-runtime-guidid-orleans-runtime-qualifiedstreamid-orlean-4cacaefc/)

```csharp
public abstract Task RegisterConsumer(GuidId subscriptionId, QualifiedStreamId streamId, GrainId streamConsumer, string filterData)
```

### Parameters

- `subscriptionId` (`GuidId`)
- `streamId` (`QualifiedStreamId`)
- `streamConsumer` (`GrainId`)
- `filterData` (`string`)

## RegisterProducer(QualifiedStreamId, GrainId) {#registerproducer-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-b472be9f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/registerproducer-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-b472be9f/)

```csharp
public abstract Task<ISet<PubSubSubscriptionState>> RegisterProducer(QualifiedStreamId streamId, GrainId streamProducer)
```

### Parameters

- `streamId` (`QualifiedStreamId`)
- `streamProducer` (`GrainId`)

## UnregisterConsumer(GuidId, QualifiedStreamId) {#unregisterconsumer-orleans-runtime-guidid-orleans-runtime-qualifiedstreamid-eb7bb78c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/unregisterconsumer-orleans-runtime-guidid-orleans-runtime-qualifiedstreamid-eb7bb78c/)

```csharp
public abstract Task UnregisterConsumer(GuidId subscriptionId, QualifiedStreamId streamId)
```

### Parameters

- `subscriptionId` (`GuidId`)
- `streamId` (`QualifiedStreamId`)

## UnregisterProducer(QualifiedStreamId, GrainId) {#unregisterproducer-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-5c68cafc}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.istreampubsub/methods/unregisterproducer-orleans-runtime-qualifiedstreamid-orleans-runtime-grainid-5c68cafc/)

```csharp
public abstract Task UnregisterProducer(QualifiedStreamId streamId, GrainId streamProducer)
```

### Parameters

- `streamId` (`QualifiedStreamId`)
- `streamProducer` (`GrainId`)
