summaryrefslogtreecommitdiff
path: root/src/apk_state.h
diff options
context:
space:
mode:
authorTimo Teras <timo.teras@iki.fi>2008-04-17 14:09:13 +0000
committerTimo Teras <timo.teras@iki.fi>2008-04-17 14:09:13 +0000
commitd6c74352427367a334d37469962bbcf1b9ae364c (patch)
tree81ebcf6fc8abf08baea3f0015bc2f7a08768fb1f /src/apk_state.h
parent45d2c702fc8a47bc3f5ab4698de2bf1e377301c4 (diff)
downloadapk-tools-d6c74352427367a334d37469962bbcf1b9ae364c.tar.gz
apk-tools-d6c74352427367a334d37469962bbcf1b9ae364c.tar.bz2
apk-tools-d6c74352427367a334d37469962bbcf1b9ae364c.tar.xz
apk-tools-d6c74352427367a334d37469962bbcf1b9ae364c.zip
Initial commit of some stuff written so far. Still in state of flux. Expect
breakage and major changes.
Diffstat (limited to 'src/apk_state.h')
-rw-r--r--src/apk_state.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/apk_state.h b/src/apk_state.h
new file mode 100644
index 0000000..0e95475
--- /dev/null
+++ b/src/apk_state.h
@@ -0,0 +1,50 @@
+/* apk_state.h - Alpine Package Keeper (APK)
+ *
+ * Copyright (C) 2005-2008 Natanael Copa <n@tanael.org>
+ * Copyright (C) 2008 Timo Teräs <timo.teras@iki.fi>
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation. See http://www.gnu.org/ for details.
+ */
+
+#ifndef APK_STATE_H
+#define APK_STATE_H
+
+#include "apk_database.h"
+
+#define APK_STATE_NOT_CONSIDERED 0
+#define APK_STATE_PREFER_UPGRADE 1
+#define APK_STATE_INSTALL 2
+#define APK_STATE_NO_INSTALL 3
+
+struct apk_state {
+ int refs;
+ unsigned char bitarray[];
+};
+
+struct apk_deferred_state {
+ unsigned int preference;
+ struct apk_package *deferred_install;
+ /* struct apk_pkg_name_queue *install_queue; */
+ struct apk_state *state;
+};
+
+struct apk_state *apk_state_new(struct apk_database *db);
+struct apk_state *apk_state_dup(struct apk_state *state);
+void apk_state_unref(struct apk_state *state);
+
+int apk_state_commit(struct apk_state *state, struct apk_database *db);
+
+int apk_state_satisfy_deps(struct apk_state *state,
+ struct apk_dependency_array *deps);
+
+void apk_state_pkg_set(struct apk_state *state,
+ struct apk_package *pkg);
+int apk_state_pkg_install(struct apk_state *state,
+ struct apk_package *pkg);
+int apk_state_pkg_is_installed(struct apk_state *state,
+ struct apk_package *pkg);
+
+#endif