class Gio::DataInputStream

Overview

Data input stream implements #GInputStream and includes functions for reading structured data directly from a binary input stream.

Included Modules

Defined in:

lib/gi-crystal/src/auto/gio-2.0/data_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?) : Bool seek, tell : Int64 tell, to_unsafe to_unsafe, truncate(offset : Int64, cancellable : Gio::Cancellable?) : Bool truncate

Class methods inherited from module Gio::Seekable

g_type : UInt64 g_type

Instance methods inherited from class Gio::BufferedInputStream

available : UInt64 available, buffer_size : UInt64 buffer_size, buffer_size=(value : UInt32) : UInt32
buffer_size=(size : UInt64) : Nil
buffer_size=
, fill(count : Int64, cancellable : Gio::Cancellable?) : Int64 fill, fill_async(count : Int64, io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil fill_async, fill_finish(result : Gio::AsyncResult) : Int64 fill_finish, peek(buffer : Enumerable(UInt8), offset : UInt64) : UInt64 peek, peek_buffer : Enumerable(UInt8) peek_buffer, read_byte(cancellable : Gio::Cancellable?) : Int32 read_byte

Constructor methods inherited from class Gio::BufferedInputStream

new(base_stream : Gio::InputStream) : self
new
new(*, base_stream : Gio::InputStream? = nil, buffer_size : UInt32? = nil, close_base_stream : Bool? = nil)
new
, new_sized(base_stream : Gio::InputStream, size : UInt64) : self new_sized

Class methods inherited from class Gio::BufferedInputStream

g_type : UInt64 g_type

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?) : Bool seek, tell : Int64 tell, to_unsafe to_unsafe, truncate(offset : Int64, cancellable : Gio::Cancellable?) : Bool truncate

Class methods inherited from module Gio::Seekable

g_type : UInt64 g_type

Instance methods inherited from class Gio::FilterInputStream

base_stream : Gio::InputStream base_stream, base_stream=(value : Gio::InputStream?) : Gio::InputStream? 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?

Constructor methods inherited from class Gio::FilterInputStream

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

Class methods inherited from class Gio::FilterInputStream

g_type : UInt64 g_type

Instance methods inherited from class Gio::InputStream

clear_pending : Nil clear_pending, close(cancellable : Gio::Cancellable?) : Bool close, close_async(io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil close_async, close_finish(result : Gio::AsyncResult) : Bool close_finish, has_pending : Bool has_pending, is_closed : Bool is_closed, read(buffer : Enumerable(UInt8), cancellable : Gio::Cancellable?) : Int64 read, read_all(buffer : Enumerable(UInt8), bytes_read : UInt64, cancellable : Gio::Cancellable?) : Bool read_all, read_all_async(buffer : Enumerable(UInt8), io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil read_all_async, read_all_finish(result : Gio::AsyncResult, bytes_read : UInt64) : Bool read_all_finish, read_async(buffer : Enumerable(UInt8), io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil read_async, read_bytes(count : UInt64, cancellable : Gio::Cancellable?) : GLib::Bytes read_bytes, read_bytes_async(count : UInt64, io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : 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?) : Int64 skip, skip_async(count : UInt64, io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : 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

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)? data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, 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)? qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void)?) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void)? steal_data, steal_qdata(quark : UInt32) : Pointer(Void)? 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, 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

compat_control(what : UInt64, data : Pointer(Void)?) : 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

Constructor Detail

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

Creates a new data input stream for the @base_stream.


def self.new #

Initialize a new DataInputStream.


def self.new(*, base_stream : Gio::InputStream? = nil, buffer_size : UInt32? = nil, byte_order : Gio::DataStreamByteOrder? = nil, close_base_stream : Bool? = nil, newline_type : Gio::DataStreamNewlineType? = nil) #

Class Method Detail

def self.g_type : UInt64 #

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


Instance Method Detail

def byte_order : Gio::DataStreamByteOrder #

Gets the byte order for the data input stream.


def byte_order=(order : Gio::DataStreamByteOrder) : Nil #

This function sets the byte order for the given @stream. All subsequent reads from the @stream will be read in the given @order.


def newline_type : Gio::DataStreamNewlineType #

Gets the current newline type for the @stream.


def newline_type=(type : Gio::DataStreamNewlineType) : Nil #

Sets the newline type for the @stream.

Note that using G_DATA_STREAM_NEWLINE_TYPE_ANY is slightly unsafe. If a read chunk ends in "CR" we must read an additional byte to know if this is "CR" or "CR LF", and this might block if there is no more data available.


def read_byte(cancellable : Gio::Cancellable?) : UInt8 #

Reads an unsigned 8-bit/1-byte value from @stream.


def read_int16(cancellable : Gio::Cancellable?) : Int16 #

Reads a 16-bit/2-byte value from @stream.

In order to get the correct byte order for this read operation, see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().


def read_int32(cancellable : Gio::Cancellable?) : Int32 #

Reads a signed 32-bit/4-byte value from @stream.

In order to get the correct byte order for this read operation, see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().

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.


def read_int64(cancellable : Gio::Cancellable?) : Int64 #

Reads a 64-bit/8-byte value from @stream.

In order to get the correct byte order for this read operation, see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().

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.


def read_line(cancellable : Gio::Cancellable?) : Enumerable(UInt8)? #

Reads a line from the data input stream. Note that no encoding checks or conversion is performed; the input is not guaranteed to be UTF-8, and may in fact have embedded NUL characters.

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.


def read_line_async(io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil #

The asynchronous version of g_data_input_stream_read_line(). It is an error to have two outstanding calls to this function.

When the operation is finished, @callback will be called. You can then call g_data_input_stream_read_line_finish() to get the result of the operation.


def read_line_finish(result : Gio::AsyncResult) : Enumerable(UInt8)? #

Finish an asynchronous call started by g_data_input_stream_read_line_async(). Note the warning about string encoding in g_data_input_stream_read_line() applies here as well.


def read_line_finish_utf8(result : Gio::AsyncResult) : String? #

Finish an asynchronous call started by g_data_input_stream_read_line_async().


def read_line_utf8(cancellable : Gio::Cancellable?) : String? #

Reads a UTF-8 encoded line from the data input stream.

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.


def read_uint16(cancellable : Gio::Cancellable?) : UInt16 #

Reads an unsigned 16-bit/2-byte value from @stream.

In order to get the correct byte order for this read operation, see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().


def read_uint32(cancellable : Gio::Cancellable?) : UInt32 #

Reads an unsigned 32-bit/4-byte value from @stream.

In order to get the correct byte order for this read operation, see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().

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.


def read_uint64(cancellable : Gio::Cancellable?) : UInt64 #

Reads an unsigned 64-bit/8-byte value from @stream.

In order to get the correct byte order for this read operation, see g_data_input_stream_get_byte_order().

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.


def read_until(stop_chars : String, cancellable : Gio::Cancellable?) : String #

Reads a string from the data input stream, up to the first occurrence of any of the stop characters.

Note that, in contrast to g_data_input_stream_read_until_async(), this function consumes the stop character that it finds.

Don't use this function in new code. Its functionality is inconsistent with g_data_input_stream_read_until_async(). Both functions will be marked as deprecated in a future release. Use g_data_input_stream_read_upto() instead, but note that that function does not consume the stop character.


def read_until_async(stop_chars : String, io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil #

The asynchronous version of g_data_input_stream_read_until(). It is an error to have two outstanding calls to this function.

Note that, in contrast to g_data_input_stream_read_until(), this function does not consume the stop character that it finds. You must read it for yourself.

When the operation is finished, @callback will be called. You can then call g_data_input_stream_read_until_finish() to get the result of the operation.

Don't use this function in new code. Its functionality is inconsistent with g_data_input_stream_read_until(). Both functions will be marked as deprecated in a future release. Use g_data_input_stream_read_upto_async() instead.


def read_until_finish(result : Gio::AsyncResult) : String #

Finish an asynchronous call started by g_data_input_stream_read_until_async().


def read_upto(stop_chars : String, stop_chars_len : Int64, cancellable : Gio::Cancellable?) : String #

Reads a string from the data input stream, up to the first occurrence of any of the stop characters.

In contrast to g_data_input_stream_read_until(), this function does not consume the stop character. You have to use g_data_input_stream_read_byte() to get it before calling g_data_input_stream_read_upto() again.

Note that @stop_chars may contain '\0' if @stop_chars_len is specified.

The returned string will always be nul-terminated on success.


def read_upto_async(stop_chars : String, stop_chars_len : Int64, io_priority : Int32, cancellable : Gio::Cancellable?, callback : Gio::AsyncReadyCallback?, user_data : Pointer(Void)?) : Nil #

The asynchronous version of g_data_input_stream_read_upto(). It is an error to have two outstanding calls to this function.

In contrast to g_data_input_stream_read_until(), this function does not consume the stop character. You have to use g_data_input_stream_read_byte() to get it before calling g_data_input_stream_read_upto() again.

Note that @stop_chars may contain '\0' if @stop_chars_len is specified.

When the operation is finished, @callback will be called. You can then call g_data_input_stream_read_upto_finish() to get the result of the operation.


def read_upto_finish(result : Gio::AsyncResult) : String #

Finish an asynchronous call started by g_data_input_stream_read_upto_async().

Note that this function does not consume the stop character. You have to use g_data_input_stream_read_byte() to get it before calling g_data_input_stream_read_upto_async() again.

The returned string will always be nul-terminated on success.