| Catalina Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Prerequisites | Known Implementations | ||||
#define CATALINA_TRANSFORM_GET_INTERFACE (obj) CatalinaTransform; CatalinaTransformIface; gboolean catalina_transform_read (CatalinaTransform *transform, const gchar *input, gsize input_length, gchar **output, gsize *output_length, GError **error); gboolean catalina_transform_write (CatalinaTransform *transform, const gchar *input, gsize input_length, gchar **output, gsize *output_length, GError **error);
CatalinaTransform provides a way to transform data buffers on the way to and from storage. A common use-case for this would be to add either compression or encryption.
You can add a transform to a CatalinaStorage for transparent transformations of data to storage.
CatalinaTransform implementations must be thread safe for the interface methods.
CatalinaStorage *storage = catalina_storage_new (); g_object_set (storage, "transform", catalina_zlib_transform_new (), NULL);
#define CATALINA_TRANSFORM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CATALINA_TYPE_TRANSFORM, CatalinaTransformIface))
|
typedef struct {
GTypeInterface parent;
gboolean (*read) (CatalinaTransform *transform,
const gchar *input,
gsize input_length,
gchar **output,
gsize *output_length,
GError **error);
gboolean (*write) (CatalinaTransform *transform,
const gchar *input,
gsize input_length,
gchar **output,
gsize *output_length,
GError **error);
} CatalinaTransformIface;
gboolean catalina_transform_read (CatalinaTransform *transform, const gchar *input, gsize input_length, gchar **output, gsize *output_length, GError **error);
Transforms the input buffer into a new stream. If TRUE is returned and output_length is set
to zero, then the input buffer should continue to be used.
This method is typically used for operations such as inflating compressed data back into its original form.
Upon failure, FALSE is returned and error is set.
|
A CatalinaTransform |
|
A buffer to transform |
|
The length of input in bytes
|
|
A location to store the resulting buffer |
|
A location to store the resulting buffer length |
|
A location for a GError or NULL
|
Returns : |
TRUE on success
|
gboolean catalina_transform_write (CatalinaTransform *transform, const gchar *input, gsize input_length, gchar **output, gsize *output_length, GError **error);
Transforms the input buffer into a new stream. If TRUE is returned and output_length is set
to zero, then the input buffer should continue to be used.
This method is typically used for operations such as deflating cleartext into a compressed format.
Upon failure, FALSE is returned and error is set.
|
A CatalinaTransform |
|
A buffer to transform |
|
The length of input in bytes
|
|
A location to store the resulting buffer |
|
A location to store the resulting buffer length |
|
A location for a GError or NULL
|
Returns : |
TRUE on success
|