class seekable_input_resource


template <
    typename Position
>
class seekable_input_resource
    : public virtual seekable_transfer_resource<Position>
    , public input_resource

Description

A seekable input resource is an input resource that can seek, that is, change where read operations will take place next.

Public Aliases

using position_type = Position

The type of this resource's position.

Public Member Functions

explicit
seekable_input_resource (
    std::size_t buffer_capacity = io_buffer::default_buffer_capacity
)

Constructs a seekable input resource with the given buffer capacity.

Parameters:
  • buffer_capacity:

    The capacity of the I/O buffer. If this is zero, the seekable input resource is completely unbuffered.

seekable_input_resource (
    const seekable_input_resource& other
)

Copy-constructs a seekable_input_resource from an existing one.

Parameters:
  • other:

    The seekable_input_resource to copy from.

seekable_input_resource&
operator = (
    const seekable_input_resource& other
)

Copy-assigns a seekable_input_resource into this one.

Parameters:
  • other:

    The seekable_input_resource to copy from.

seekable_input_resource (
    seekable_input_resource&& other
)
noexcept

Move-constructs a seekable_input_resource from an existing one.

Parameters:
  • other:

    The seekable_input_resource to move from.

seekable_input_resource&
operator = (
    seekable_input_resource&& other
)
noexcept

Move-assigns a seekable_input_resource into this one.

Parameters:
  • other:

    The seekable_input_resource to move from.

void
set_position (
    position_type new_position,
    position_reference pr
)
noexcept override

Sets the position of this seekable input resource.

Parameters:
  • new_position:

    The new position of this seekable input resource.

  • pr:

    The reference that the new position is relative to.



Copyright © 2022-2025 Daniel T. McGinnis

CCL was first published in 2022, and is still actively maintained.

This website was first published in 2022, and is still actively maintained.

This specific web page was first published in 2023.