# IDurableSetCommandCodec&lt;T&gt; Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablesetcommandcodec-1/)

## Apply(JournalBufferReader, IDurableSetCommandHandler&lt;T&gt;) {#apply-orleans-journaling-journalbufferreader-orleans-journaling-idurablesetcomma-a5925ac9}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablesetcommandcodec-1/methods/apply-orleans-journaling-journalbufferreader-orleans-journaling-idurablesetcomma-a5925ac9/)

```csharp
public abstract void Apply(JournalBufferReader input, IDurableSetCommandHandler<T> consumer)
```

Reads one encoded command and applies it to `consumer`.

### Parameters

- `input` (`JournalBufferReader`)
- `consumer` (`IDurableSetCommandHandler<T>`)

## WriteAdd(T, JournalStreamWriter) {#writeadd-t-orleans-journaling-journalstreamwriter-f37211be}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablesetcommandcodec-1/methods/writeadd-t-orleans-journaling-journalstreamwriter-f37211be/)

```csharp
public abstract void WriteAdd(T item, JournalStreamWriter writer)
```

Writes an add command.

### Parameters

- `item` (`T`)
- `writer` (`JournalStreamWriter`)

## WriteClear(JournalStreamWriter) {#writeclear-orleans-journaling-journalstreamwriter-9a6fdc6d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablesetcommandcodec-1/methods/writeclear-orleans-journaling-journalstreamwriter-9a6fdc6d/)

```csharp
public abstract void WriteClear(JournalStreamWriter writer)
```

Writes a clear command.

### Parameters

- `writer` (`JournalStreamWriter`)

## WriteRemove(T, JournalStreamWriter) {#writeremove-t-orleans-journaling-journalstreamwriter-aa3ec1ad}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablesetcommandcodec-1/methods/writeremove-t-orleans-journaling-journalstreamwriter-aa3ec1ad/)

```csharp
public abstract void WriteRemove(T item, JournalStreamWriter writer)
```

Writes a remove command.

### Parameters

- `item` (`T`)
- `writer` (`JournalStreamWriter`)

## WriteSnapshot(IReadOnlyCollection&lt;T&gt;, JournalStreamWriter) {#writesnapshot-system-collections-generic-ireadonlycollection-t-orleans-journalin-f7e8ae33}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablesetcommandcodec-1/methods/writesnapshot-system-collections-generic-ireadonlycollection-t-orleans-journalin-f7e8ae33/)

```csharp
public abstract void WriteSnapshot(IReadOnlyCollection<T> items, JournalStreamWriter writer)
```

Writes a snapshot command, deriving the item count from `items`.

### Parameters

- `items` (`IReadOnlyCollection<T>`)
- `writer` (`JournalStreamWriter`)
