# IDurableQueueCommandCodec&lt;T&gt; Methods

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

## Apply(JournalBufferReader, IDurableQueueCommandHandler&lt;T&gt;) {#apply-orleans-journaling-journalbufferreader-orleans-journaling-idurablequeuecom-5bcb9ce1}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablequeuecommandcodec-1/methods/apply-orleans-journaling-journalbufferreader-orleans-journaling-idurablequeuecom-5bcb9ce1/)

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

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

### Parameters

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

## WriteClear(JournalStreamWriter) {#writeclear-orleans-journaling-journalstreamwriter-31de38d6}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablequeuecommandcodec-1/methods/writeclear-orleans-journaling-journalstreamwriter-31de38d6/)

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

Writes a clear command.

### Parameters

- `writer` (`JournalStreamWriter`)

## WriteDequeue(JournalStreamWriter) {#writedequeue-orleans-journaling-journalstreamwriter-22b06d49}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablequeuecommandcodec-1/methods/writedequeue-orleans-journaling-journalstreamwriter-22b06d49/)

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

Writes a dequeue command.

### Parameters

- `writer` (`JournalStreamWriter`)

## WriteEnqueue(T, JournalStreamWriter) {#writeenqueue-t-orleans-journaling-journalstreamwriter-4c004388}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.idurablequeuecommandcodec-1/methods/writeenqueue-t-orleans-journaling-journalstreamwriter-4c004388/)

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

Writes an enqueue command.

### Parameters

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

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

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

```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`)
