proper quit handling
[kfpm.git] / kfpm_pacman.cpp
blob4a8738b8a388782f1d1963d834ad58d6e0634d5e
1 /*
2 * kfpm_pacman.cpp
4 * Copyright (c) 2007 VOROSKOI Andras <voroskoi@frugalware.org>
6 * Copyright: See COPYING file that comes with this distribution.
8 */
10 #include <iostream>
12 #include "kfpm_pacman.h"
14 QValueVector<PM_DB*> pm_dblist;
16 FPM::FPM(char *root, char *configfile) {
17 pacman_init(root, configfile);
20 FPM::~FPM () {
21 pacman_release();
24 void FPM::setSync(QValueVector<PM_DB*> syncs)
26 this->Syncs = syncs;
29 QValueVector<PM_DB*> FPM::getSync(void) {
30 return Syncs;
33 QStringList FPM::sync_group(QValueVector<PM_DB*> syncs, QStringList targets)
35 if (targets.isEmpty()) {
36 return NULL;
38 else {
39 QStringList grpnames;
40 QValueVector<PM_DB*>::iterator db;
41 for(db = syncs.begin(); db != syncs.end(); ++db) {
42 PM_LIST *lp;
43 for(lp = pacman_db_getgrpcache(*db); lp; lp = pacman_list_next(lp)) {
44 grpnames.append((char*)pacman_list_getdata(lp));
47 return(grpnames);
51 void cb_db_register(char *section, PM_DB *db)
53 pm_dblist.push_back(db);
56 void FPM::pacman_init(char *root, char *configfile) {
57 pacman_initialize(root);
58 /* FIXME - exception handling */
59 if(pacman_parse_config(configfile, cb_db_register, "") != 0) {
60 std::cerr << "failed to parse config (" << pacman_strerror(pm_errno) << ")" << std::endl;
62 setSync(pm_dblist);