class Gio::BufferedInputStream
Overview
Buffered input stream implements Gio::FilterInputStream
and provides
for buffered reads.
By default, GBufferedInputStream
's buffer size is set at 4 kilobytes.
To create a buffered input stream, use Gio::BufferedInputStream.new
,
or Gio::BufferedInputStream#new_sized
to specify the buffer's size at
construction.
To get the size of a buffer within a buffered input stream, use
Gio::BufferedInputStream#buffer_size
. To change the size of a
buffered input stream's buffer, use Gio::BufferedInputStream#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.crConstructors
-
.new(base_stream : Gio::InputStream) : self
Creates a new
Gio::InputStream
from the given base_stream, with a buffer set to the default size (4 kilobytes). -
.new
Initialize a new
BufferedInputStream
. - .new(*, base_stream : Gio::InputStream | Nil = nil, buffer_size : UInt32 | Nil = nil, close_base_stream : Bool | Nil = nil)
-
.new_sized(base_stream : Gio::InputStream, size : UInt64) : self
Creates a new
Gio::BufferedInputStream
from the given base_stream, with a buffer set to size.
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#available : UInt64
Gets the size of the available data within the stream.
-
#buffer_size : UInt64
Gets the size of the input buffer.
- #buffer_size=(value : UInt32) : UInt32
-
#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.
-
#fill(count : Int64, cancellable : Gio::Cancellable | Nil) : Int64
Tries to read count bytes from the stream into the buffer.
-
#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.
-
#fill_finish(result : Gio::AsyncResult) : Int64
Finishes an asynchronous read.
-
#hash(hasher)
See
Object#hash(hasher)
-
#peek(buffer : Bytes, offset : UInt64) : UInt64
Peeks in the buffer, copying data of size count into buffer, offset offset bytes.
-
#peek_buffer : Bytes
Returns the buffer with the currently available bytes.
-
#read_byte(cancellable : Gio::Cancellable | Nil) : Int32
Tries to read a single byte from the stream or the buffer.
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
newnew(*, 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
Creates a new Gio::InputStream
from the given base_stream, with
a buffer set to the default size (4 kilobytes).
Class Method Detail
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.
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.
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
Gio::IOErrorEnum#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 NULL
, then the operation can be cancelled by
triggering the cancellable object from another thread. If the operation
was cancelled, the error Gio::IOErrorEnum#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
Gio::BufferedInputStream#fill_async
.
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 Gio::BufferedInputStream#fill
.
If count is -1
then the attempted read size is equal to the number
of bytes that are required to fill the buffer.
Peeks in the buffer, copying data of size count into buffer, offset offset 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.
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 NULL
, then the operation can be cancelled by
triggering the cancellable object from another thread. If the operation
was cancelled, the error Gio::IOErrorEnum#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.