00001 00023 #ifndef _LIBPACKMAN_TRANSACTION_H_ 00024 #define _LIBPACKMAN_TRANSACTION_H_ 00025 00026 #include <packman.h> 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00035 typedef enum 00036 { 00037 PM_TRANSACTION_INSTALL, 00038 PM_TRANSACTION_UNINSTALL, 00039 PM_TRANSACTION_DB_ADD, 00040 PM_TRANSACTION_DB_REMOVE 00042 } PmTransactionType; 00043 00047 typedef struct 00048 { 00049 PmTransactionType type; 00051 PmDatabase *db; 00052 PmBatch *packages; 00054 char checkDeps; 00056 } PmTransaction; 00057 00068 PmTransaction *pmNewTransaction(PmDatabase *db, PmTransactionType type); 00069 00077 void pmDestroyTransaction(PmTransaction *transaction); 00078 00087 PmStatus pmPerformTransaction(PmTransaction *transaction, 00088 PmTransactionError **error); 00089 00090 #ifdef __cplusplus 00091 }; 00092 #endif 00093 00094 #endif /* _LIBPACKMAN_TRANSACTION_H_ */ 00095