# JournalStorageConsumerExtensions.Read(IJournalStorageConsumer, IEnumerable&lt;ReadOnlyMemory&lt;byte&gt;&gt;, IJournalMetadata?, bool)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.journalstorageconsumerextensions/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.journalstorageconsumerextensions/methods/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Journaling/JournalStorageConsumerExtensions.cs#L83-L100)

```csharp
public static void Read(this IJournalStorageConsumer consumer, IEnumerable<ReadOnlyMemory<byte>> segments, IJournalMetadata? metadata, bool complete)
```

Supplies ordered `segments` to `consumer`.

### Parameters

- `consumer` (`IJournalStorageConsumer`): The journal storage consumer.
- `segments` (`IEnumerable<ReadOnlyMemory<byte>>`): The ordered bytes to read.
- `metadata` (`IJournalMetadata?`): The metadata associated with the journal data being read, or `null` if no metadata is available.
- `complete` (`bool`): Whether to notify the consumer that no more data will be supplied. If `false`, the consumer must read all supplied bytes.
