PkPackageSack

PkPackageSack — A sack of packages that can be manipulated

Synopsis

#define             PK_PACKAGE_SACK_TYPE_ERROR
struct              PkPackageSack;
struct              PkPackageSackClass;
gboolean            (*PkPackageSackFilterFunc)          (PkPackage *package,
                                                         gpointer user_data);
                    PkPackageSackResults;
enum                PkPackageSackSortType;
gboolean            pk_package_sack_add_package         (PkPackageSack *sack,
                                                         PkPackage *package);
gboolean            pk_package_sack_add_package_by_id   (PkPackageSack *sack,
                                                         const gchar *package_id,
                                                         GError **error);
void                pk_package_sack_clear               (PkPackageSack *sack);
PkPackageSack *     pk_package_sack_filter              (PkPackageSack *sack,
                                                         PkPackageSackFilterFunc filter_cb,
                                                         gpointer user_data);
PkPackageSack *     pk_package_sack_filter_by_info      (PkPackageSack *sack,
                                                         PkInfoEnum info);
PkPackage *         pk_package_sack_find_by_id          (PkPackageSack *sack,
                                                         const gchar *package_id);
GPtrArray *         pk_package_sack_get_array           (PkPackageSack *sack);
void                pk_package_sack_get_details_async   (PkPackageSack *sack,
                                                         GCancellable *cancellable,
                                                         PkProgressCallback progress_callback,
                                                         gpointer progress_user_data,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);
gchar **            pk_package_sack_get_ids             (PkPackageSack *sack);
guint               pk_package_sack_get_size            (PkPackageSack *sack);
guint64             pk_package_sack_get_total_bytes     (PkPackageSack *sack);
void                pk_package_sack_get_update_detail_async
                                                        (PkPackageSack *sack,
                                                         GCancellable *cancellable,
                                                         PkProgressCallback progress_callback,
                                                         gpointer progress_user_data,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);
gboolean            pk_package_sack_merge_generic_finish
                                                        (PkPackageSack *sack,
                                                         GAsyncResult *res,
                                                         GError **error);
PkPackageSack *     pk_package_sack_new                 (void);
gboolean            pk_package_sack_remove_by_filter    (PkPackageSack *sack,
                                                         PkPackageSackFilterFunc filter_cb,
                                                         gpointer user_data);
gboolean            pk_package_sack_remove_package      (PkPackageSack *sack,
                                                         PkPackage *package);
gboolean            pk_package_sack_remove_package_by_id
                                                        (PkPackageSack *sack,
                                                         const gchar *package_id);
void                pk_package_sack_resolve_async       (PkPackageSack *sack,
                                                         GCancellable *cancellable,
                                                         PkProgressCallback progress_callback,
                                                         gpointer progress_user_data,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);
void                pk_package_sack_sort                (PkPackageSack *sack,
                                                         PkPackageSackSortType type);
void                pk_package_sack_test                (gpointer user_data);

Object Hierarchy

  GObject
   +----PkPackageSack
  GEnum
   +----PkPackageSackSortType

Description

A package sack is a set of packages that can have operations done on them in parallel. This might be adding summary text for bare package ID's, or to add package or update details.

Details

PK_PACKAGE_SACK_TYPE_ERROR

#define PK_PACKAGE_SACK_TYPE_ERROR (pk_package_sack_error_get_type ())

struct PkPackageSack

struct PkPackageSack;

struct PkPackageSackClass

struct PkPackageSackClass {
	GObjectClass parent_class;

	/* signals */
	void		(* changed)			(PkPackageSack *sack);
	/* padding for future expansion */
	void (*_pk_reserved1) (void);
	void (*_pk_reserved2) (void);
	void (*_pk_reserved3) (void);
	void (*_pk_reserved4) (void);
	void (*_pk_reserved5) (void);
};

PkPackageSackFilterFunc ()

gboolean            (*PkPackageSackFilterFunc)          (PkPackage *package,
                                                         gpointer user_data);

PkPackageSackResults

typedef struct _PkPackageSackResults PkPackageSackResults;

enum PkPackageSackSortType

typedef enum {
	PK_PACKAGE_SACK_SORT_TYPE_NAME,
	PK_PACKAGE_SACK_SORT_TYPE_INFO,
	PK_PACKAGE_SACK_SORT_TYPE_PACKAGE_ID,
	PK_PACKAGE_SACK_SORT_TYPE_SUMMARY,
	PK_PACKAGE_SACK_SORT_TYPE_LAST
} PkPackageSackSortType;

pk_package_sack_add_package ()

gboolean            pk_package_sack_add_package         (PkPackageSack *sack,
                                                         PkPackage *package);

Adds a package to the sack.

sack :

a valid PkPackageSack instance

package :

a valid PkPackage instance

Returns :

TRUE if the package was added to the sack

Since 0.5.2


pk_package_sack_add_package_by_id ()

gboolean            pk_package_sack_add_package_by_id   (PkPackageSack *sack,
                                                         const gchar *package_id,
                                                         GError **error);

Adds a package reference to the sack.

sack :

a valid PkPackageSack instance

package_id :

a package_id descriptor

error :

a GError to put the error code and message in, or NULL

Returns :

TRUE if the package was added to the sack

Since 0.5.2


pk_package_sack_clear ()

void                pk_package_sack_clear               (PkPackageSack *sack);

Empty all the packages from the sack

sack :

a valid PkPackageSack instance

Since 0.5.2


pk_package_sack_filter ()

PkPackageSack *     pk_package_sack_filter              (PkPackageSack *sack,
                                                         PkPackageSackFilterFunc filter_cb,
                                                         gpointer user_data);

Returns a new package sack which only matches packages that return TRUE from the filter function.

sack :

a valid PkPackageSack instance

filter_cb :

a PkPackageSackFilterFunc, which returns TRUE for the PkPackage's to add. [scope call]

user_data :

user data to pass to filter_cb

Returns :

a new PkPackageSack, free with g_object_unref(). [transfer full]

Since 0.6.3


pk_package_sack_filter_by_info ()

PkPackageSack *     pk_package_sack_filter_by_info      (PkPackageSack *sack,
                                                         PkInfoEnum info);

Returns a new package sack which only matches packages that match the specified info enum value.

sack :

a valid PkPackageSack instance

info :

a PkInfoEnum value to match

Returns :

a new PkPackageSack, free with g_object_unref(). [transfer full]

Since 0.6.2


pk_package_sack_find_by_id ()

PkPackage *         pk_package_sack_find_by_id          (PkPackageSack *sack,
                                                         const gchar *package_id);

Finds a package in a sack from reference. As soon as one package is found the search is stopped.

sack :

a valid PkPackageSack instance

package_id :

a package_id descriptor

Returns :

the PkPackage object, or NULL if unfound. Free with g_object_unref(). [transfer full]

Since 0.5.2


pk_package_sack_get_array ()

GPtrArray *         pk_package_sack_get_array           (PkPackageSack *sack);

Gets the package array from the sack

sack :

a valid PkPackageSack instance

Returns :

a GPtrArray, free with g_ptr_array_unref(). [transfer container]

Since 0.6.1


pk_package_sack_get_details_async ()

void                pk_package_sack_get_details_async   (PkPackageSack *sack,
                                                         GCancellable *cancellable,
                                                         PkProgressCallback progress_callback,
                                                         gpointer progress_user_data,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);

Merges in details about packages.

sack :

a valid PkPackageSack instance

cancellable :

a GCancellable or NULL

progress_callback :

the function to run when the progress changes. [scope call]

progress_user_data :

data to pass to progress_callback

callback :

the function to run on completion

user_data :

the data to pass to callback

pk_package_sack_get_ids ()

gchar **            pk_package_sack_get_ids             (PkPackageSack *sack);

Returns all the Package IDs in the sack

sack :

a valid PkPackageSack instance

Returns :

the number of packages in the sack, free with g_strfreev(). [transfer full]

Since 0.5.3


pk_package_sack_get_size ()

guint               pk_package_sack_get_size            (PkPackageSack *sack);

Gets the number of packages in the sack

sack :

a valid PkPackageSack instance

Returns :

the number of packages in the sack

Since 0.5.2


pk_package_sack_get_total_bytes ()

guint64             pk_package_sack_get_total_bytes     (PkPackageSack *sack);

Gets the total size of the package sack in bytes.

sack :

a valid PkPackageSack instance

Returns :

the size in bytes

Since 0.5.2


pk_package_sack_get_update_detail_async ()

void                pk_package_sack_get_update_detail_async
                                                        (PkPackageSack *sack,
                                                         GCancellable *cancellable,
                                                         PkProgressCallback progress_callback,
                                                         gpointer progress_user_data,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);

Merges in update details about packages.

sack :

a valid PkPackageSack instance

cancellable :

a GCancellable or NULL

progress_callback :

the function to run when the progress changes. [scope call]

progress_user_data :

data to pass to progress_callback

callback :

the function to run on completion

user_data :

the data to pass to callback

Since 0.5.2


pk_package_sack_merge_generic_finish ()

gboolean            pk_package_sack_merge_generic_finish
                                                        (PkPackageSack *sack,
                                                         GAsyncResult *res,
                                                         GError **error);

Gets the result from the asynchronous function.

sack :

a valid PkPackageSack instance

res :

the GAsyncResult

error :

A GError or NULL

Returns :

TRUE for success

Since 0.5.2


pk_package_sack_new ()

PkPackageSack *     pk_package_sack_new                 (void);

Returns :

a new PkPackageSack object.

Since 0.5.2


pk_package_sack_remove_by_filter ()

gboolean            pk_package_sack_remove_by_filter    (PkPackageSack *sack,
                                                         PkPackageSackFilterFunc filter_cb,
                                                         gpointer user_data);

Removes from the package sack any packages that return FALSE from the filter function.

sack :

a valid PkPackageSack instance

filter_cb :

a PkPackageSackFilterFunc, which returns TRUE for the PkPackage's to retain. [scope call]

user_data :

user data to pass to filter_cb

Returns :

TRUE if a package was removed from the sack

Since 0.6.3


pk_package_sack_remove_package ()

gboolean            pk_package_sack_remove_package      (PkPackageSack *sack,
                                                         PkPackage *package);

Removes a package reference from the sack. The pointers have to match exactly.

sack :

a valid PkPackageSack instance

package :

a valid PkPackage instance

Returns :

TRUE if the package was removed from the sack

Since 0.5.2


pk_package_sack_remove_package_by_id ()

gboolean            pk_package_sack_remove_package_by_id
                                                        (PkPackageSack *sack,
                                                         const gchar *package_id);

Removes a package reference from the sack. As soon as one package is removed the search is stopped.

sack :

a valid PkPackageSack instance

package_id :

a package_id descriptor

Returns :

TRUE if the package was removed from the sack

Since 0.5.2


pk_package_sack_resolve_async ()

void                pk_package_sack_resolve_async       (PkPackageSack *sack,
                                                         GCancellable *cancellable,
                                                         PkProgressCallback progress_callback,
                                                         gpointer progress_user_data,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);

Merges in details about packages using resolve.

sack :

a valid PkPackageSack instance

cancellable :

a GCancellable or NULL

progress_callback :

the function to run when the progress changes. [scope call]

progress_user_data :

data to pass to progress_callback

callback :

the function to run on completion

user_data :

the data to pass to callback

Since 0.5.2


pk_package_sack_sort ()

void                pk_package_sack_sort                (PkPackageSack *sack,
                                                         PkPackageSackSortType type);

pk_package_sack_test ()

void                pk_package_sack_test                (gpointer user_data);