Interface

HexBuffer

Description

interface Hex.Buffer : GObject.Object

HexBuffer is an interface which can be implemented to act as a buffer for HexDocument data. This allows for a HexDocument to be manipulated by different backends.

Once a file has been loaded into the buffer, it can be read, written to file, etc.

HexBuffer makes reference to the “payload,” which is the size of the substantive data in the buffer, not counting items like padding, a gap, etc. (all dependent upon the underlying implementation).

Most clients who just want to create an spin up a HexBuffer object should look to the hex_buffer_util_new() utility function as a starting point, and then manipulate the returned HexBuffer object with the methods documented herein.

Prerequisite

In order to implement Buffer, your type must inherit fromGObject.

Functions

hex_buffer_util_get_file_size

Utility function to obtain the size of a GFile.

hex_buffer_util_new

Utility function to create an on object which implements the HexBuffer interface.

Instance methods

hex_buffer_get_byte

Get a single byte at a particular offset within the buffer.

hex_buffer_get_data

Get data of a particular size at a particular offset within the buffer.

hex_buffer_get_payload_size

Get the size of the payload of the buffer, in bytes.

hex_buffer_read

Read the GFile, previously set, into the buffer. This method will block until the operation is complete. For a non-blocking version, use hex_buffer_read_async().

hex_buffer_read_async

Read the GFile, previously set, into the buffer. This is the non-blocking version of hex_buffer_read().

hex_buffer_read_finish

Obtain the result of a completed file read operation.

hex_buffer_set_data

Set data at of the buffer at a particular offset, replacing some, all or none of the existing data in the buffer as desired.

hex_buffer_set_file

Set the GFile to be utilized by the buffer. Once it has been set, you can read it into the buffer with hex_buffer_read() or hex_buffer_read_async().

hex_buffer_write_to_file

Write the buffer to the GFile specified. This operation will block. For a non-blocking version, use hex_buffer_write_to_file_async().

hex_buffer_write_to_file_async

Write the buffer to the GFile specified. This is the non-blocking version of hex_buffer_write_to_file().

hex_buffer_write_to_file_finish

Obtain the result of a completed write-to-file operation.

Properties

Hex.Buffer:file

This property is the file (as GFile) being utilized by the buffer.

Interface structure

struct HexBufferInterface {
  GTypeInterface parent_iface;
  char* (* get_data) (
    HexBuffer* self,
    gint64 offset,
    size_t len
  );
  char (* get_byte) (
    HexBuffer* self,
    gint64 offset
  );
  gboolean (* set_data) (
    HexBuffer* self,
    gint64 offset,
    size_t len,
    size_t rep_len,
    char* data
  );
  GFile* (* get_file) (
    HexBuffer* self
  );
  gboolean (* set_file) (
    HexBuffer* self,
    GFile* file
  );
  gboolean (* read) (
    HexBuffer* self
  );
  void (* read_async) (
    HexBuffer* self,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* read_finish) (
    HexBuffer* self,
    GAsyncResult* result,
    GError** error
  );
  gboolean (* write_to_file) (
    HexBuffer* self,
    GFile* file
  );
  void (* write_to_file_async) (
    HexBuffer* self,
    GFile* file,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* write_to_file_finish) (
    HexBuffer* self,
    GAsyncResult* result,
    GError** error
  );
  gint64 (* get_payload_size) (
    HexBuffer* self
  );
  None padding;
  
}

No description available.

Interface members
parent_iface
GTypeInterface
 

No description available.

get_data
char* (* get_data) (
    HexBuffer* self,
    gint64 offset,
    size_t len
  )
 

No description available.

get_byte
char (* get_byte) (
    HexBuffer* self,
    gint64 offset
  )
 

No description available.

set_data
gboolean (* set_data) (
    HexBuffer* self,
    gint64 offset,
    size_t len,
    size_t rep_len,
    char* data
  )
 

No description available.

get_file
GFile* (* get_file) (
    HexBuffer* self
  )
 

No description available.

set_file
gboolean (* set_file) (
    HexBuffer* self,
    GFile* file
  )
 

No description available.

read
gboolean (* read) (
    HexBuffer* self
  )
 

No description available.

read_async
void (* read_async) (
    HexBuffer* self,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

No description available.

read_finish
gboolean (* read_finish) (
    HexBuffer* self,
    GAsyncResult* result,
    GError** error
  )
 

No description available.

write_to_file
gboolean (* write_to_file) (
    HexBuffer* self,
    GFile* file
  )
 

No description available.

write_to_file_async
void (* write_to_file_async) (
    HexBuffer* self,
    GFile* file,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

No description available.

write_to_file_finish
gboolean (* write_to_file_finish) (
    HexBuffer* self,
    GAsyncResult* result,
    GError** error
  )
 

No description available.

get_payload_size
gint64 (* get_payload_size) (
    HexBuffer* self
  )
 

No description available.

padding
None
 

No description available.

Virtual methods

Hex.Buffer.get_byte

Get a single byte at a particular offset within the buffer.

Hex.Buffer.get_data

Get data of a particular size at a particular offset within the buffer.

Hex.Buffer.get_file
No description available.

Hex.Buffer.get_payload_size

Get the size of the payload of the buffer, in bytes.

Hex.Buffer.read

Read the GFile, previously set, into the buffer. This method will block until the operation is complete. For a non-blocking version, use hex_buffer_read_async().

Hex.Buffer.read_async

Read the GFile, previously set, into the buffer. This is the non-blocking version of hex_buffer_read().

Hex.Buffer.read_finish

Obtain the result of a completed file read operation.

Hex.Buffer.set_data

Set data at of the buffer at a particular offset, replacing some, all or none of the existing data in the buffer as desired.

Hex.Buffer.set_file

Set the GFile to be utilized by the buffer. Once it has been set, you can read it into the buffer with hex_buffer_read() or hex_buffer_read_async().

Hex.Buffer.write_to_file

Write the buffer to the GFile specified. This operation will block. For a non-blocking version, use hex_buffer_write_to_file_async().

Hex.Buffer.write_to_file_async

Write the buffer to the GFile specified. This is the non-blocking version of hex_buffer_write_to_file().

Hex.Buffer.write_to_file_finish

Obtain the result of a completed write-to-file operation.