class Gio::BufferedInputStream

Overview

Buffered input stream implements #GFilterInputStream and provides for buffered reads.

By default, #GBufferedInputStream's buffer size is set at 4 kilobytes.

To create a buffered input stream, use g_buffered_input_stream_new(), or g_buffered_input_stream_new_sized() to specify the buffer's size at construction.

To get the size of a buffer within a buffered input stream, use g_buffered_input_stream_get_buffer_size(). To change the size of a buffered input stream's buffer, use g_buffered_input_stream_set_buffer_size(). Note that the buffer's size cannot be reduced below the size of the data within the buffer.

Included Modules

Direct Known Subclasses

Defined in:

lib/gi-crystal/src/auto/gio-2.0/buffered_input_stream.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gio::Seekable

can_seek : Bool can_seek, can_truncate : Bool can_truncate, seek(offset : Int64, type : GLib::SeekType, cancellable : Gio::Cancellable | Nil) : Bool seek, tell : Int64 tell, to_unsafe to_unsafe, truncate(offset : Int64, cancellable : Gio::Cancellable | Nil) : Bool truncate

Constructor methods inherited from module Gio::Seekable

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gio::Seekable

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from class Gio::FilterInputStream

==(other : self) ==, base_stream : Gio::InputStream base_stream, base_stream=(value : Gio::InputStream | Nil) : Gio::InputStream | Nil base_stream=, close_base_stream : Bool close_base_stream, close_base_stream=(close_base : Bool) : Nil close_base_stream=, close_base_stream? : Bool close_base_stream?, hash(hasher) hash

Constructor methods inherited from class Gio::FilterInputStream

new
new(*, base_stream : Gio::InputStream | Nil = nil, close_base_stream : Bool | Nil = nil)
new

Class methods inherited from class Gio::FilterInputStream

g_type : UInt64 g_type

Instance methods inherited from class Gio::InputStream

==(other : self) ==, clear_pending : Nil clear_pending, close(cancellable : Gio::Cancellable | Nil) : Bool close, close_async(io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil close_async, close_finish(result : Gio::AsyncResult) : Bool close_finish, has_pending : Bool has_pending, hash(hasher) hash, is_closed : Bool is_closed, read(buffer : Bytes, cancellable : Gio::Cancellable | Nil) : Int64 read, read_all(buffer : Bytes, bytes_read : UInt64, cancellable : Gio::Cancellable | Nil) : Bool read_all, read_all_async(buffer : Bytes, io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil read_all_async, read_all_finish(result : Gio::AsyncResult, bytes_read : UInt64) : Bool read_all_finish, read_async(buffer : Bytes, io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil read_async, read_bytes(count : UInt64, cancellable : Gio::Cancellable | Nil) : GLib::Bytes read_bytes, read_bytes_async(count : UInt64, io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil read_bytes_async, read_bytes_finish(result : Gio::AsyncResult) : GLib::Bytes read_bytes_finish, read_finish(result : Gio::AsyncResult) : Int64 read_finish, set_pending : Bool set_pending, skip(count : UInt64, cancellable : Gio::Cancellable | Nil) : Int64 skip, skip_async(count : UInt64, io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil skip_async, skip_finish(result : Gio::AsyncResult) : Int64 skip_finish

Constructor methods inherited from class Gio::InputStream

new new

Class methods inherited from class Gio::InputStream

g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new(base_stream : Gio::InputStream) : self #

Creates a new #GInputStream from the given base_stream, with a buffer set to the default size (4 kilobytes).


[View source]
def self.new #

Initialize a new BufferedInputStream.


[View source]
def self.new(*, base_stream : Gio::InputStream | Nil = nil, buffer_size : UInt32 | Nil = nil, close_base_stream : Bool | Nil = nil) #

[View source]
def self.new_sized(base_stream : Gio::InputStream, size : UInt64) : self #

Creates a new #GBufferedInputStream from the given base_stream, with a buffer set to size.


[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def available : UInt64 #

Gets the size of the available data within the stream.


[View source]
def buffer_size : UInt64 #

Gets the size of the input buffer.


[View source]
def buffer_size=(value : UInt32) : UInt32 #

[View source]
def buffer_size=(size : UInt64) : Nil #

Sets the size of the internal buffer of stream to size, or to the size of the contents of the buffer. The buffer can never be resized smaller than its current contents.


[View source]
def fill(count : Int64, cancellable : Gio::Cancellable | Nil) : Int64 #

Tries to read count bytes from the stream into the buffer. Will block during this read.

If count is zero, returns zero and does nothing. A value of count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.

On success, the number of bytes read into the buffer is returned. It is not an error if this is not the same as the requested size, as it can happen e.g. near the end of a file. Zero is returned on end of file (or if count is zero), but never otherwise.

If count is -1 then the attempted read size is equal to the number of bytes that are required to fill the buffer.

If cancellable is not nil, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an operation was partially finished when the operation was cancelled the partial result will be returned, without an error.

On error -1 is returned and error is set accordingly.

For the asynchronous, non-blocking, version of this function, see g_buffered_input_stream_fill_async().


[View source]
def fill_async(count : Int64, io_priority : Int32, cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil #

Reads data into stream's buffer asynchronously, up to count size. io_priority can be used to prioritize reads. For the synchronous version of this function, see g_buffered_input_stream_fill().

If count is -1 then the attempted read size is equal to the number of bytes that are required to fill the buffer.


[View source]
def fill_finish(result : Gio::AsyncResult) : Int64 #

Finishes an asynchronous read.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def peek(buffer : Bytes, offset : UInt64) : UInt64 #

Peeks in the buffer, copying data of size count into buffer, offset offset bytes.


[View source]
def peek_buffer : Bytes #

Returns the buffer with the currently available bytes. The returned buffer must not be modified and will become invalid when reading from the stream or filling the buffer.


[View source]
def read_byte(cancellable : Gio::Cancellable | Nil) : Int32 #

Tries to read a single byte from the stream or the buffer. Will block during this read.

On success, the byte read from the stream is returned. On end of stream -1 is returned but it's not an exceptional error and error is not set.

If cancellable is not nil, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an operation was partially finished when the operation was cancelled the partial result will be returned, without an error.

On error -1 is returned and error is set accordingly.


[View source]