r4016 - trunk/src/target/opkg

thomas at sita.openmoko.org thomas at sita.openmoko.org
Tue Feb 5 10:25:05 CET 2008


Author: thomas
Date: 2008-02-05 10:25:03 +0100 (Tue, 05 Feb 2008)
New Revision: 4016

Added:
   trunk/src/target/opkg/opkg_state.c
   trunk/src/target/opkg/opkg_state.h
Modified:
   trunk/src/target/opkg/Makefile.am
   trunk/src/target/opkg/libopkg.h
Log:
opkg: add internal state framework


Modified: trunk/src/target/opkg/Makefile.am
===================================================================
--- trunk/src/target/opkg/Makefile.am	2008-02-04 11:33:41 UTC (rev 4015)
+++ trunk/src/target/opkg/Makefile.am	2008-02-05 09:25:03 UTC (rev 4016)
@@ -57,7 +57,7 @@
 opkg_core_sources = args.c args.h opkg.c \
 		    user.c user.h 
 opkg_libcore_sources = args.c args.h libopkg.c libopkg.h opkg.h\
-		    user.c user.h 
+		    user.c user.h opkg_state.c opkg_state.h
 opkg_cmd_sources = opkg_cmd.c opkg_cmd.h \
 		   opkg_configure.c opkg_configure.h \
 		   opkg_download.c opkg_download.h \

Modified: trunk/src/target/opkg/libopkg.h
===================================================================
--- trunk/src/target/opkg/libopkg.h	2008-02-04 11:33:41 UTC (rev 4015)
+++ trunk/src/target/opkg/libopkg.h	2008-02-05 09:25:03 UTC (rev 4016)
@@ -25,6 +25,7 @@
 
 #include "opkg_conf.h"
 #include "opkg_message.h"
+#include "opkg_state.h"
 
 #include "args.h"
 #include "pkg.h"
@@ -37,6 +38,7 @@
 	void *userdata);
 typedef char* (*opkg_response_callback)(char *question);
 typedef void (*opkg_download_progress_callback)(int percent, char *url);
+typedef void (*opkg_state_changed_callback)(opkg_state_t state, const char *data);
 
 extern int opkg_op(int argc, char *argv[]); /* opkglib.c */
 extern int opkg_init (opkg_message_callback mcall, 
@@ -79,7 +81,8 @@
 extern opkg_response_callback opkg_cb_response;
 extern opkg_status_callback opkg_cb_status;
 extern opkg_list_callback opkg_cb_list;
-extern opkg_download_progress_callback opkg_cb_download_progress; /* ipkg_download.c */
+extern opkg_download_progress_callback opkg_cb_download_progress; /* opkg_download.c */
+extern opkg_state_changed_callback opkg_cb_state_changed; /* opkg_state.c */
 
 extern void push_error_list(struct errlist **errors,char * msg);
 extern void reverse_error_list(struct errlist **errors);

Added: trunk/src/target/opkg/opkg_state.c
===================================================================
--- trunk/src/target/opkg/opkg_state.c	2008-02-04 11:33:41 UTC (rev 4015)
+++ trunk/src/target/opkg/opkg_state.c	2008-02-05 09:25:03 UTC (rev 4016)
@@ -0,0 +1,41 @@
+/* opkg_state.c - the opkg package management system
+
+   Thomas Wood <thomas at openedhand.com>
+
+   Copyright (C) 2008 by OpenMoko Inc
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2, or (at
+   your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+*/
+
+#include "libopkg.h"
+
+opkg_state_changed_callback opkg_cb_state;
+
+static opkg_state_t opkg_state = 0;
+static char *opkg_state_data = NULL;
+
+void
+opkg_set_current_state (opkg_state_t state, const char *data)
+{
+  if (opkg_state_data)
+    free (opkg_state_data);
+  opkg_state_data = malloc (strlen (data));
+  strcpy (opkg_state_data, data);
+
+  opkg_state = state;
+}
+
+void
+opkg_get_current_state (opkg_state_t *state, const char **data)
+{
+  *state = opkg_state;
+  *data = opkg_state_data;
+}

Added: trunk/src/target/opkg/opkg_state.h
===================================================================
--- trunk/src/target/opkg/opkg_state.h	2008-02-04 11:33:41 UTC (rev 4015)
+++ trunk/src/target/opkg/opkg_state.h	2008-02-05 09:25:03 UTC (rev 4016)
@@ -0,0 +1,30 @@
+/* opkg_state.c - the opkg package management system
+
+   Thomas Wood <thomas at openedhand.com>
+
+   Copyright (C) 2008 by OpenMoko Inc
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2, or (at
+   your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+*/
+
+
+
+typedef enum _opkg_state {
+  OPKG_STATE_NONE,
+  OPKG_STATE_DOWNLOADING_PKG,
+  OPKG_STATE_INSTALLING_PKG,
+  OPKG_STATE_CONFIGURING_PKG,
+  OPKG_STATE_UPGRADING_PKG,
+  OPKG_STATE_REMOVING_PKG,
+  OPKG_STATE_DOWNLOADING_REPOSITORY,
+  OPKG_STATE_VERIFYING_REPOSITORY_SIGNITURE
+} opkg_state_t;
+





More information about the commitlog mailing list