OpenTTD Source: PacketReader Struct Reference

OpenTTD Source 15.0-beta1

Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes
PacketReader Struct Reference

Read some packets, and when do use that data as initial load filter. More...

Inheritance diagram for PacketReader:

## Public Member Functions
| PacketReader ()
| Initialise everything.
void | AddPacket (Packet &p)
| Add a packet to this buffer.
size_t | Read (uint8_t *rbuf, size_t size) override
| Read a given number of bytes from the savegame.
void | Reset () override
| Reset this filter to read from the beginning of the file.
Public Member Functions inherited from LoadFilter
| LoadFilter (std::shared_ptr< LoadFilter > chain)
| Initialise this filter.
virtual | ~LoadFilter ()=default
| Make sure the writers are properly closed.

## Static Public Member Functions
static ssize_t | TransferOutMemCopy (PacketReader *destination, const char *source, size_t amount)
| Simple wrapper around fwrite to be able to pass it to Packet's TransferOut.

## Data Fields
std::vector< uint8_t * > | blocks
| Buffer with blocks of allocated memory.
uint8_t * | buf
| Buffer we're going to write to/read from.
uint8_t * | bufe
| End of the buffer we write to/read from.
uint8_t ** | block
| The block we're reading from/writing to.
size_t | written_bytes
| The total number of bytes we've written.
size_t | read_bytes
| The total number of read bytes.
Data Fields inherited from LoadFilter
std::shared_ptr< LoadFilter > | chain
| Chained to the (savegame) filters.

## Static Public Attributes
static const size_t | CHUNK = 32 * 1024
| 32 KiB chunks of memory.

## Detailed Description

Read some packets, and when do use that data as initial load filter.

Definition at line 43 of file network_client.cpp.

## Constructor & Destructor Documentation

## ◆ PacketReader()

PacketReader::PacketReader | ( |  | ) |
| inline

Initialise everything.

Definition at line 54 of file network_client.cpp.

## ◆ ~PacketReader()

PacketReader::~PacketReader | ( |  | ) |
| inlineoverride

Definition at line 58 of file network_client.cpp.

## Member Function Documentation

## ◆ AddPacket()

void PacketReader::AddPacket | ( | Packet & | p | ) |
| inline

Add a packet to this buffer.

Parameters

  p | The packet to add.

Definition at line 84 of file network_client.cpp.

References CHUNK, Packet::RemainingBytesToTransfer(), TransferOutMemCopy(), and Packet::TransferOutWithLimit().

## ◆ Read()

size_t PacketReader::Read | ( | uint8_t * | buf,
|  | size_t | len
| ) |  |
| inlineoverridevirtual

Read a given number of bytes from the savegame.

Parameters

  buf | The bytes to read.
  len | The number of bytes to read.

Returns
  The number of actually read bytes.

Implements LoadFilter.

Definition at line 99 of file network_client.cpp.

References CHUNK.

## ◆ Reset()

void PacketReader::Reset | ( |  | ) |
| inlineoverridevirtual

Reset this filter to read from the beginning of the file.

Reimplemented from LoadFilter.

Definition at line 121 of file network_client.cpp.

References CHUNK.

## ◆ TransferOutMemCopy()

static ssize_t PacketReader::TransferOutMemCopy | ( | PacketReader * | destination,
|  | const char * | source,
|  | size_t | amount
| ) |  |
| inlinestatic

Simple wrapper around fwrite to be able to pass it to Packet's TransferOut.

Parameters

  destination | The reader to add the data to.
  source | The buffer to read data from.
  amount | The number of bytes to copy.

Returns
  The number of bytes that were copied.

Definition at line 72 of file network_client.cpp.

References buf, and written_bytes.

Referenced by AddPacket().

## Field Documentation

## ◆ block

uint8_t** PacketReader::block

The block we're reading from/writing to.

Definition at line 49 of file network_client.cpp.

## ◆ blocks

std::vector<uint8_t *> PacketReader::blocks

Buffer with blocks of allocated memory.

Definition at line 46 of file network_client.cpp.

## ◆ buf

uint8_t* PacketReader::buf

Buffer we're going to write to/read from.

Definition at line 47 of file network_client.cpp.

Referenced by TransferOutMemCopy().

## ◆ bufe

uint8_t* PacketReader::bufe

End of the buffer we write to/read from.

Definition at line 48 of file network_client.cpp.

## ◆ CHUNK

const size_t PacketReader::CHUNK = 32 * 1024
| static

32 KiB chunks of memory.

Definition at line 44 of file network_client.cpp.

Referenced by AddPacket(), Read(), and Reset().

## ◆ read_bytes

size_t PacketReader::read_bytes

The total number of read bytes.

Definition at line 51 of file network_client.cpp.

## ◆ written_bytes

size_t PacketReader::written_bytes

The total number of bytes we've written.

Definition at line 50 of file network_client.cpp.

Referenced by TransferOutMemCopy().

The documentation for this struct was generated from the following file:

- src/network/network_client.cpp