# IPersistentStateCommandCodec&lt;T&gt; Methods

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

## Apply(JournalBufferReader, IPersistentStateCommandHandler&lt;T&gt;) {#apply-orleans-journaling-journalbufferreader-orleans-journaling-ipersistentstate-e5bb6261}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ipersistentstatecommandcodec-1/methods/apply-orleans-journaling-journalbufferreader-orleans-journaling-ipersistentstate-e5bb6261/)

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

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

### Parameters

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

## WriteClear(JournalStreamWriter) {#writeclear-orleans-journaling-journalstreamwriter-5066072c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ipersistentstatecommandcodec-1/methods/writeclear-orleans-journaling-journalstreamwriter-5066072c/)

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

Writes a clear command.

### Parameters

- `writer` (`JournalStreamWriter`)

## WriteSet(T, ulong, JournalStreamWriter) {#writeset-t-ulong-orleans-journaling-journalstreamwriter-2d552997}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ipersistentstatecommandcodec-1/methods/writeset-t-ulong-orleans-journaling-journalstreamwriter-2d552997/)

```csharp
public abstract void WriteSet(T state, ulong version, JournalStreamWriter writer)
```

Writes a set command.

### Parameters

- `state` (`T`)
- `version` (`ulong`)
- `writer` (`JournalStreamWriter`)
