GCabCabinet

GCabCabinet — Cabinet archive file operations

Stability Level

Stable, unless otherwise indicated

Synopsis

#include <libgcab.h>

                    GCabCabinet;
GCabCabinet *       gcab_cabinet_new                    (void);
gboolean            gcab_cabinet_load                   (GCabCabinet *cabinet,
                                                         GInputStream *stream,
                                                         GCancellable *cancellable,
                                                         GError **error);
gboolean            gcab_cabinet_extract                (GCabCabinet *cabinet,
                                                         GFile *path,
                                                         GCabFileCallback file_callback,
                                                         GFileProgressCallback progress_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);
gboolean            gcab_cabinet_extract_simple         (GCabCabinet *cabinet,
                                                         GFile *path,
                                                         GCabFileCallback file_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);
GPtrArray *         gcab_cabinet_get_folders            (GCabCabinet *cabinet);
gboolean            gcab_cabinet_add_folder             (GCabCabinet *cabinet,
                                                         GCabFolder *folder,
                                                         GError **error);
gboolean            gcab_cabinet_write                  (GCabCabinet *cabinet,
                                                         GOutputStream *stream,
                                                         GCabFileCallback file_callback,
                                                         GFileProgressCallback progress_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);
gboolean            gcab_cabinet_write_simple           (GCabCabinet *cabinet,
                                                         GOutputStream *stream,
                                                         GCabFileCallback file_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);
#define             GCAB_ERROR
enum                GCabError;

Object Hierarchy

  GObject
   +----GCabCabinet

Properties

  "reserved"                 GByteArray*           : Read / Write

Description

A GCabCabinet is a handle to a Cabinet archive. It allows examining, extracting and creation of archives.

Details

GCabCabinet

typedef struct _GCabCabinet GCabCabinet;

An opaque object holding a Cabinet file reference.


gcab_cabinet_new ()

GCabCabinet *       gcab_cabinet_new                    (void);

Create a new GCabCabinet object to read or create a Cabinet archive.

Returns :

a new GCabCabinet

gcab_cabinet_load ()

gboolean            gcab_cabinet_load                   (GCabCabinet *cabinet,
                                                         GInputStream *stream,
                                                         GCancellable *cancellable,
                                                         GError **error);

Load a cabinet archive.

cabinet :

a GCabCabinet

stream :

a GInputStream

cancellable :

optional GCancellable object, NULL to ignore. [allow-none]

error :

GError to set on error, or NULL. [allow-none]

Returns :

TRUE on success

gcab_cabinet_extract ()

gboolean            gcab_cabinet_extract                (GCabCabinet *cabinet,
                                                         GFile *path,
                                                         GCabFileCallback file_callback,
                                                         GFileProgressCallback progress_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);

Extract files to given path.

cabinet :

a GCabCabinet

path :

the path to extract files

file_callback :

an optionnal GCabFile callback, return FALSE to filter out or skip files. [allow-none][scope call][closure user_data]

progress_callback :

a progress callback. [allow-none][scope call][closure user_data]

user_data :

callback data. [closure]

cancellable :

optional GCancellable object, NULL to ignore. [allow-none]

error :

GError to set on error, or NULL. [allow-none]

Returns :

TRUE on success.

gcab_cabinet_extract_simple ()

gboolean            gcab_cabinet_extract_simple         (GCabCabinet *cabinet,
                                                         GFile *path,
                                                         GCabFileCallback file_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);

Extract files to given path.

cabinet :

a GCabCabinet

path :

the path to extract files

file_callback :

an optionnal GCabFile callback, return FALSE to filter out or skip files. [allow-none][scope call][closure user_data]

user_data :

callback data. [closure]

cancellable :

optional GCancellable object, NULL to ignore. [allow-none]

error :

GError to set on error, or NULL. [allow-none]

Returns :

TRUE on success.

gcab_cabinet_get_folders ()

GPtrArray *         gcab_cabinet_get_folders            (GCabCabinet *cabinet);

Get the Cabinet folders within the cabinet. Note that Cabinet folders are not like filesystem path, they are group of files sharing some layout parameters.

cabinet :

a GCabCabinet

Returns :

an array of GCabFolder. [element-type GCabFolder][transfer full]

gcab_cabinet_add_folder ()

gboolean            gcab_cabinet_add_folder             (GCabCabinet *cabinet,
                                                         GCabFolder *folder,
                                                         GError **error);

Add folder to cabinet.

cabinet :

a GCabCabinet

folder :

a GCabFolder

error :

GError to set on error, or NULL. [allow-none]

Returns :

TRUE on success.

gcab_cabinet_write ()

gboolean            gcab_cabinet_write                  (GCabCabinet *cabinet,
                                                         GOutputStream *stream,
                                                         GCabFileCallback file_callback,
                                                         GFileProgressCallback progress_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);

Save cabinet to the output stream out. out must be a GSeekable.

cabinet :

a GCabCabinet

stream :

a GOutputStream also GSeekable

file_callback :

report current file being saved. [allow-none][scope call][closure user_data]

progress_callback :

report saving progress. [allow-none][scope call][closure user_data]

user_data :

user data to pass to callbacks. [closure]

cancellable :

optional GCancellable object, NULL to ignore. [allow-none]

error :

GError to set on error, or NULL. [allow-none]

Returns :

TRUE on success.

gcab_cabinet_write_simple ()

gboolean            gcab_cabinet_write_simple           (GCabCabinet *cabinet,
                                                         GOutputStream *stream,
                                                         GCabFileCallback file_callback,
                                                         gpointer user_data,
                                                         GCancellable *cancellable,
                                                         GError **error);

Save cabinet to the output stream out. out must be a GSeekable.

cabinet :

a GCabCabinet

stream :

a GOutputStream also GSeekable

file_callback :

report current file being saved. [allow-none][scope call][closure user_data]

user_data :

user data to pass to callbacks. [closure]

cancellable :

optional GCancellable object, NULL to ignore. [allow-none]

error :

GError to set on error, or NULL. [allow-none]

Returns :

TRUE on success.

GCAB_ERROR

#define GCAB_ERROR gcab_error_quark ()

Error domain for the GCab library. See GError for more information on error domains.


enum GCabError

typedef enum {
    GCAB_ERROR_FORMAT,
    GCAB_ERROR_FAILED,
} GCabError;

The various errors triggered by the GCab functions.

GCAB_ERROR_FORMAT

The given file is not of Cabinet format.

GCAB_ERROR_FAILED

General function failure.

Property Details

The "reserved" property

  "reserved"                 GByteArray*           : Read / Write

Reserved.

See Also

GCabFolder