class SF::MemoryInputStream

Overview

Implementation of input stream based on a memory chunk

This class is a specialization of InputStream that reads from data in memory.

It wraps a memory chunk in the common InputStream interface and therefore allows to use generic classes or functions that accept such a stream, with content already loaded in memory.

In addition to the virtual functions inherited from InputStream, MemoryInputStream adds a function to specify the pointer and size of the data in memory.

SFML resource classes can usually be loaded directly from memory, so this class shouldn't be useful to you unless you create your own algorithms that operate on an InputStream.

Usage example:

def process(stream : InputStream)
end

stream = SF::MemoryInputStream.open(slice)
process(stream)

See also: InputStream, FileInputStream

Defined in:

system/obj.cr

Constructors

Instance Method Summary

Instance methods inherited from class SF::InputStream

finalize finalize, read(data : Slice) : Int64 read, seek(position : Int) : Int64 seek, size : Int64 size, tell : Int64 tell

Constructor methods inherited from class SF::InputStream

new new

Constructor Detail

def self.new #

Default constructor


[View source]
def self.open(*args, **kwargs) : self #

Shorthand for memory_input_stream = MemoryInputStream.new; memory_input_stream.open(...); memory_input_stream


[View source]

Instance Method Detail

def dup : MemoryInputStream #
Description copied from class Reference

Returns a shallow copy of this object.

This allocates a new object and copies the contents of self into it.


[View source]
def finalize #

[View source]
def open(data : Slice) #

Open the stream from its data

  • data - Pointer to the data in memory

[View source]
def read(data : Slice) : Int64 #

Read data from the stream

After reading, the stream's reading position must be advanced by the amount of bytes read.

  • data - Buffer where to copy the read data

Returns: The number of bytes actually read, or -1 on error


[View source]
def seek(position : Int) : Int64 #

Change the current reading position

  • position - The position to seek to, from the beginning

Returns: The position actually sought to, or -1 on error


[View source]
def size : Int64 #

Return the size of the stream

Returns: The total number of bytes available in the stream, or -1 on error


[View source]
def tell : Int64 #

Get the current reading position in the stream

Returns: The current position, or -1 on error.


[View source]