plover/transaction.h
author J. Ali Harlow <ali@juiblex.co.uk>
Sat Nov 15 19:04:45 2014 +0000 (2014-11-15)
changeset 24 2b9f54d14cc2
child 38 a29623b68ca2
permissions -rw-r--r--
Add GUI front-end to setup and update
     1 #ifndef __PLOVER_TRANSACTION_H__
     2 #define __PLOVER_TRANSACTION_H__
     3 
     4 #include <razor.h>
     5 #include <glib-object.h>
     6 #include <gio/gio.h>
     7 #include <plover/packageset.h>
     8 
     9 G_BEGIN_DECLS
    10 
    11 #define PLOVER_TYPE_TRANSACTION		plover_transaction_get_type()
    12 #define PLOVER_TRANSACTION(obj)		G_TYPE_CHECK_INSTANCE_CAST(obj,\
    13 					  PLOVER_TYPE_TRANSACTION,\
    14 					  PloverTransaction)
    15 #define PLOVER_IS_TRANSACTION(obj)	G_TYPE_CHECK_INSTANCE_TYPE(obj,\
    16 					  PLOVER_TYPE_TRANSACTION)
    17 
    18 typedef enum {
    19     PLOVER_TRANSACTION_RESOLVED=1<<0,
    20     PLOVER_TRANSACTION_UNSATISFIED=1<<1,
    21 } PloverTransactionFlags;
    22 
    23 typedef struct _PloverTransaction {
    24     GObject parent_instance;
    25     PloverTransactionFlags flags;
    26     struct razor_transaction *trans;
    27     char *prefix;
    28     char *base;
    29     char *install_root;
    30     char *unsatisfied;
    31     PloverPackageSet *installed,*relocated;
    32     PloverRepository *upstream;
    33     struct razor_relocations *relocations;
    34     struct razor_set *next,*system;
    35     struct razor_install_iterator *install_iterator;
    36 } PloverTransaction;
    37 
    38 typedef struct _PloverTransactionClass {
    39     GObjectClass parent_class;
    40 } PloverTransactionClass;
    41 
    42 GType plover_transaction_get_type(void) G_GNUC_CONST;
    43 void plover_transaction_commit_async(PloverTransaction *transaction,
    44   GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
    45 gboolean plover_transaction_commit_finish(PloverTransaction *transaction,
    46   GAsyncResult *result,GError **error);
    47 PloverTransaction *plover_transaction_new();
    48 void plover_transaction_set_prefix(PloverTransaction *transaction,
    49   const char *prefix);
    50 void plover_transaction_set_installed(PloverTransaction *transaction,
    51   PloverPackageSet *installed);
    52 gboolean plover_transaction_root_open(PloverTransaction *transaction,
    53   const char *install_root,GError **error);
    54 struct razor_set *plover_transaction_import_yum(PloverTransaction *transaction,
    55   const char *base,GError **error);
    56 gboolean plover_transaction_set_upstream(PloverTransaction *transaction,
    57   PloverRepository *upstream,GError **error);
    58 gboolean
    59   plover_transaction_set_upstream_from_yum(PloverTransaction *transaction,
    60   const char *base,GError **error);
    61 gboolean plover_transaction_install(PloverTransaction *transaction,
    62   char **pkgs,GError **error);
    63 PloverTransaction *plover_transaction_new_install(const char *base,
    64   const char *prefix,char **pkgs,GError **error);
    65 gboolean plover_transaction_update(PloverTransaction *transaction,
    66   char **pkgs,GError **error);
    67 PloverTransaction *plover_transaction_new_update(const char *base,
    68   const char *prefix,char **pkgs,GError **error);
    69 gboolean plover_transaction_remove(PloverTransaction *transaction,
    70   char **pkgs,GError **error);
    71 PloverTransaction *plover_transaction_new_remove(char **pkgs,
    72   GError **error);
    73 gboolean plover_transaction_resolve(PloverTransaction *transaction,
    74   GError **error);
    75 const char *plover_transaction_get_unsatisfied(PloverTransaction *transaction);
    76 struct razor_set *plover_transaction_get_system_set(
    77   PloverTransaction *transaction);
    78 struct razor_set *plover_transaction_get_next_set(
    79   PloverTransaction *transaction,GError **error);
    80 struct razor_install_iterator *plover_transaction_get_install_iterator(
    81   PloverTransaction *transaction,GError **error);
    82 gboolean plover_transaction_commit(PloverTransaction *transaction,
    83   GCancellable *cancellable,GError **error);
    84 void plover_transaction_commit_async(PloverTransaction *transaction,
    85   GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
    86 
    87 #endif /* __PLOVER_TRANSACTION_H__ */