# IJournaledState Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/)

## AppendEntries(JournalStreamWriter) {#appendentries-orleans-journaling-journalstreamwriter-e6d2bb88}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/appendentries-orleans-journaling-journalstreamwriter-e6d2bb88/)

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

Writes pending state changes to the journal.

### Parameters

- `writer` (`JournalStreamWriter`): The journal stream writer.

## AppendSnapshot(JournalStreamWriter) {#appendsnapshot-orleans-journaling-journalstreamwriter-ba85e074}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/appendsnapshot-orleans-journaling-journalstreamwriter-ba85e074/)

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

Writes a snapshot of the state to the provided writer.

### Parameters

- `writer` (`JournalStreamWriter`): The journal stream writer.

## DeepCopy {#deepcopy-30f7c750}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/deepcopy-30f7c750/)

```csharp
public abstract IJournaledState DeepCopy()
```

Creates and returns a deep copy of this instance. All replicas must be independent such that changes to one do not affect any other.

### Returns

A replica of this instance.

## OnRecoveryCompleted {#onrecoverycompleted-92384f85}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/onrecoverycompleted-92384f85/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Journaling/IJournaledState.cs#L70)

```csharp
public virtual void OnRecoveryCompleted()
```

Notifies the state that all prior journal entries and snapshots have been applied.

## OnWriteCompleted {#onwritecompleted-729ccb55}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/onwritecompleted-729ccb55/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Journaling/IJournaledState.cs#L87)

```csharp
public virtual void OnWriteCompleted()
```

Notifies the state that all prior journal entries and snapshots which it has written have been written to stable storage.

## ReplayEntry(JournalEntry, JournalReplayContext) {#replayentry-orleans-journaling-journalentry-orleans-journaling-journalreplaycont-c3f71293}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/replayentry-orleans-journaling-journalentry-orleans-journaling-journalreplaycont-c3f71293/)

```csharp
public abstract void ReplayEntry(JournalEntry entry, JournalReplayContext context)
```

Replays one entry during journal recovery.

### Parameters

- `entry` (`JournalEntry`): The entry to replay.
- `context` (`JournalReplayContext`): The replay context.

## Reset(JournalStreamWriter) {#reset-orleans-journaling-journalstreamwriter-e79b1867}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstate/methods/reset-orleans-journaling-journalstreamwriter-e79b1867/)

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

Resets the state.

### Parameters

- `writer` (`JournalStreamWriter`)
