GsfBlob

GsfBlob —

Synopsis




            GsfBlob;
            GsfBlobClass;
            GsfStructuredBlob;
GsfBlob*    gsf_blob_new                    (gsize size,
                                             gconstpointer data_to_copy,
                                             GError **error);
gsize       gsf_blob_get_size               (GsfBlob *blob);
gconstpointer gsf_blob_peek_data            (GsfBlob *blob);
gboolean    gsf_structured_blob_write       (GsfStructuredBlob *blob,
                                             GsfOutfile *container);
GsfStructuredBlob* gsf_structured_blob_read (GsfInput *input);


Description

Details

GsfBlob

typedef struct _GsfBlob GsfBlob;


GsfBlobClass

typedef struct {
	GObjectClass parent_class;
} GsfBlobClass;


GsfStructuredBlob

typedef struct _GsfStructuredBlob GsfStructuredBlob;


gsf_blob_new ()

GsfBlob*    gsf_blob_new                    (gsize size,
                                             gconstpointer data_to_copy,
                                             GError **error);

Creates a new GsfBlob object to hold the specified data. The blob can then be used as a facility for reference-counting for the data. The data is copied internally, so the blob does not hold references to external chunks of memory.

size : Size of the data in bytes.
data_to_copy : Data which will be copied into the blob, or NULL if size is zero.
error : location to store error, or NULL.
Returns : A newly-created GsfBlob, or NULL if the data could not be copied. Error domain: GSF_ERROR Possible errors: GSF_ERROR_OUT_OF_MEMORY if the data_to_copy could not be copied.

gsf_blob_get_size ()

gsize       gsf_blob_get_size               (GsfBlob *blob);

Queries the size in bytes of the data stored in the blob.

blob : A GsfBlob.
Returns : Size in bytes, or 0 if the data is NULL.

gsf_blob_peek_data ()

gconstpointer gsf_blob_peek_data            (GsfBlob *blob);

Queries a pointer to the data stored in the blob. This does not copy the data for you; it returns a pointer to the actual buffer which the blob uses internally, so you should not free this buffer on your own.

blob : A GsfBlob.
Returns : Pointer to the data stored in the blob, or NULL if the size of the data is zero.

gsf_structured_blob_write ()

gboolean    gsf_structured_blob_write       (GsfStructuredBlob *blob,
                                             GsfOutfile *container);

Dumps structured blob blob onto the container. Will fail if the output is not an Outfile and blob has multiple streams.

blob :
container :
Returns : TRUE on success.

gsf_structured_blob_read ()

GsfStructuredBlob* gsf_structured_blob_read (GsfInput *input);

input : An input (potentially a GsfInfile) holding the blob
Returns : a freshly created tree of blobs