aboutsummaryrefslogtreecommitdiffstats
path: root/autoarchive/autoar-create.c
diff options
context:
space:
mode:
Diffstat (limited to 'autoarchive/autoar-create.c')
-rw-r--r--autoarchive/autoar-create.c507
1 files changed, 0 insertions, 507 deletions
diff --git a/autoarchive/autoar-create.c b/autoarchive/autoar-create.c
deleted file mode 100644
index 4b946bd43..000000000
--- a/autoarchive/autoar-create.c
+++ /dev/null
@@ -1,507 +0,0 @@
-/* vim: set sw=2 ts=2 sts=2 et: */
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/*
- * autoar-create.c
- * Automatically create archives in some GNOME programs
- *
- * Copyright (C) 2013 Ting-Wei Lan
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-
-#include "autoar-create.h"
-#include "autoar-pref.h"
-
-#include <gio/gio.h>
-#include <glib.h>
-#include <stdarg.h>
-
-G_DEFINE_TYPE (AutoarCreate, autoar_create, G_TYPE_OBJECT)
-
-#define AUTOAR_CREATE_GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), AUTOAR_TYPE_CREATE, AutoarCreatePrivate))
-
-#define BUFFER_SIZE (64 * 1024)
-
-struct _AutoarCreatePrivate
-{
- char **source;
- char *output;
-
- guint64 size; /* This field is currently unused */
- guint64 completed_size;
-
- guint files;
- guint completed_files;
-
- AutoarPref *arpref;
-
- GOutputStream *ostream;
- void *buffer;
- gssize buffer_size;
- GError *error;
-};
-
-enum
-{
- DECIDE_DEST,
- PROGRESS,
- COMPLETED,
- ERROR,
- LAST_SIGNAL
-};
-
-enum
-{
- PROP_0,
- PROP_SOURCE,
- PROP_OUTPUT,
- PROP_SIZE, /* This property is currently unused */
- PROP_COMPLETED_SIZE,
- PROP_FILES,
- PROP_COMPLETED_FILES
-};
-
-static guint autoar_create_signals[LAST_SIGNAL] = { 0 };
-static GQuark autoar_create_quark;
-
-static void
-autoar_create_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- AutoarCreate *arcreate;
- AutoarCreatePrivate *priv;
-
- GVariant *variant;
- const char* const* strv;
-
- arcreate = AUTOAR_CREATE (object);
- priv = arcreate->priv;
-
- switch (property_id) {
- case PROP_SOURCE:
- strv = (const char* const*)(priv->source);
- variant = g_variant_new_strv (strv, -1);
- g_value_take_variant (value, variant);
- break;
- case PROP_OUTPUT:
- g_value_set_string (value, priv->output);
- break;
- case PROP_SIZE:
- g_value_set_uint64 (value, priv->size);
- case PROP_COMPLETED_SIZE:
- g_value_set_uint64 (value, priv->completed_size);
- break;
- case PROP_FILES:
- g_value_set_uint (value, priv->files);
- break;
- case PROP_COMPLETED_FILES:
- g_value_set_uint (value, priv->completed_files);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
-autoar_create_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- AutoarCreate *arcreate;
- AutoarCreatePrivate *priv;
-
- const char **strv;
-
- arcreate = AUTOAR_CREATE (object);
- priv = arcreate->priv;
-
- switch (property_id) {
- case PROP_SIZE:
- autoar_create_set_size (arcreate, g_value_get_uint64 (value));
- break;
- case PROP_COMPLETED_SIZE:
- autoar_create_set_completed_size (arcreate, g_value_get_uint64 (value));
- break;
- case PROP_FILES:
- autoar_create_set_files (arcreate, g_value_get_uint (value));
- break;
- case PROP_COMPLETED_FILES:
- autoar_create_set_completed_files (arcreate, g_value_get_uint (value));
- break;
- case PROP_SOURCE:
- strv = g_variant_get_strv (g_value_get_variant (value), NULL);
- g_strfreev (arcreate->priv->source);
- arcreate->priv->source = g_strdupv ((char**)strv);
- break;
- case PROP_OUTPUT:
- g_free (priv->output);
- priv->output = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-char**
-autoar_create_get_source (AutoarCreate *arcreate)
-{
- g_return_val_if_fail (AUTOAR_IS_CREATE (arcreate), NULL);
- return arcreate->priv->source;
-}
-
-char*
-autoar_create_get_output (AutoarCreate *arcreate)
-{
- g_return_val_if_fail (AUTOAR_IS_CREATE (arcreate), NULL);
- return arcreate->priv->output;
-}
-
-guint64
-autoar_create_get_size (AutoarCreate *arcreate)
-{
- g_return_val_if_fail (AUTOAR_IS_CREATE (arcreate), 0);
- return arcreate->priv->size;
-}
-
-guint64
-autoar_create_get_completed_size (AutoarCreate *arcreate)
-{
- g_return_val_if_fail (AUTOAR_IS_CREATE (arcreate), 0);
- return arcreate->priv->completed_size;
-}
-
-guint
-autoar_create_get_files (AutoarCreate *arcreate)
-{
- g_return_val_if_fail (AUTOAR_IS_CREATE (arcreate), 0);
- return arcreate->priv->files;
-}
-
-guint
-autoar_create_get_completed_files (AutoarCreate *arcreate)
-{
- g_return_val_if_fail (AUTOAR_IS_CREATE (arcreate), 0);
- return arcreate->priv->completed_files;
-}
-
-void
-autoar_create_set_size (AutoarCreate *arcreate,
- guint64 size)
-{
- g_return_if_fail (AUTOAR_IS_CREATE (arcreate));
- arcreate->priv->size = size;
-}
-
-void
-autoar_create_set_completed_size (AutoarCreate *arcreate,
- guint64 completed_size)
-{
- g_return_if_fail (AUTOAR_IS_CREATE (arcreate));
- g_return_if_fail (completed_size <= arcreate->priv->completed_size);
- arcreate->priv->completed_size = completed_size;
-}
-
-void
-autoar_create_set_files (AutoarCreate *arcreate,
- guint files)
-{
- g_return_if_fail (AUTOAR_IS_CREATE (arcreate));
- arcreate->priv->files = files;
-}
-
-void
-autoar_create_set_completed_files (AutoarCreate *arcreate,
- guint completed_files)
-{
- g_return_if_fail (AUTOAR_IS_CREATE (arcreate));
- g_return_if_fail (completed_files <= arcreate->priv->completed_files);
- arcreate->priv->completed_files = completed_files;
-}
-
-static void
-autoar_create_dispose (GObject *object)
-{
- AutoarCreate *arcreate;
- arcreate = AUTOAR_CREATE (object);
-
- g_debug ("AutoarCreate: dispose");
-
- g_clear_object (&(arcreate->priv->arpref));
-
- G_OBJECT_CLASS (autoar_create_parent_class)->dispose (object);
-}
-
-static void
-autoar_create_finalize (GObject *object)
-{
- AutoarCreate *arcreate;
- AutoarCreatePrivate *priv;
-
- arcreate = AUTOAR_CREATE (object);
- priv = arcreate->priv;
-
- g_debug ("AutoarCreate: finalize");
-
- g_strfreev (priv->source);
- priv->source = NULL;
-
- g_free (priv->output);
- priv->output = NULL;
-
- if (priv->ostream != NULL) {
- if (!g_output_stream_is_closed (priv->ostream)) {
- g_output_stream_close (priv->ostream, NULL, NULL);
- }
- g_object_unref (priv->ostream);
- }
-
- g_free (priv->buffer);
- priv->buffer = NULL;
-
- if (priv->error != NULL) {
- g_error_free (priv->error);
- priv->error = NULL;
- }
-
- G_OBJECT_CLASS (autoar_create_parent_class)->finalize (object);
-}
-
-static void
-autoar_create_class_init (AutoarCreateClass *klass)
-{
- GObjectClass *object_class;
- GType type;
- GPtrArray *tmparr;
-
- object_class = G_OBJECT_CLASS (klass);
- type = G_TYPE_FROM_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (AutoarCreatePrivate));
-
- autoar_create_quark = g_quark_from_static_string ("autoar-create");
-
- object_class->get_property = autoar_create_get_property;
- object_class->set_property = autoar_create_set_property;
- object_class->dispose = autoar_create_dispose;
- object_class->finalize = autoar_create_finalize;
-
- tmparr = g_ptr_array_new ();
- g_ptr_array_add (tmparr, NULL);
-
- g_object_class_install_property (object_class, PROP_SOURCE,
- g_param_spec_variant ("source",
- "Source archive",
- "The source files and directories to be compressed",
- G_VARIANT_TYPE_STRING_ARRAY,
- g_variant_new_strv ((const char* const*)tmparr->pdata, -1),
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_NAME |
- G_PARAM_STATIC_NICK |
- G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property (object_class, PROP_OUTPUT,
- g_param_spec_string ("output",
- "Output directory",
- "Output directory of created archive",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_NAME |
- G_PARAM_STATIC_NICK |
- G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property (object_class, PROP_SIZE,
- g_param_spec_uint64 ("size",
- "Size",
- "Unused property",
- 0, G_MAXUINT64, 0,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
- G_PARAM_STATIC_NICK |
- G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property (object_class, PROP_COMPLETED_SIZE,
- g_param_spec_uint64 ("completed-size",
- "Read file size",
- "Bytes written to the archive",
- 0, G_MAXUINT64, 0,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
- G_PARAM_STATIC_NICK |
- G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property (object_class, PROP_FILES,
- g_param_spec_uint ("files",
- "Files",
- "Number of files to be compressed",
- 0, G_MAXUINT32, 0,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
- G_PARAM_STATIC_NICK |
- G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property (object_class, PROP_COMPLETED_FILES,
- g_param_spec_uint ("completed-files",
- "Read files",
- "Number of files has been read",
- 0, G_MAXUINT32, 0,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
- G_PARAM_STATIC_NICK |
- G_PARAM_STATIC_BLURB));
-
- autoar_create_signals[DECIDE_DEST] =
- g_signal_new ("decide-dest",
- type,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (AutoarCreateClass, decide_dest),
- NULL, NULL,
- g_cclosure_marshal_generic,
- G_TYPE_NONE,
- 1,
- G_TYPE_FILE);
-
- autoar_create_signals[PROGRESS] =
- g_signal_new ("progress",
- type,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (AutoarCreateClass, progress),
- NULL, NULL,
- g_cclosure_marshal_generic,
- G_TYPE_NONE,
- 2,
- G_TYPE_UINT64,
- G_TYPE_UINT);
-
- autoar_create_signals[COMPLETED] =
- g_signal_new ("completed",
- type,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (AutoarCreateClass, completed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- autoar_create_signals[ERROR] =
- g_signal_new ("error",
- type,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (AutoarCreateClass, error),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE,
- 1,
- G_TYPE_POINTER);
-
- g_ptr_array_unref (tmparr);
-}
-
-static void
-autoar_create_init (AutoarCreate *arcreate)
-{
- AutoarCreatePrivate *priv;
-
- priv = AUTOAR_CREATE_GET_PRIVATE (arcreate);
- arcreate->priv = priv;
-
- priv->source = NULL;
- priv->output = NULL;
-
- priv->completed_size = 0;
-
- priv->files = 0;
- priv->completed_files = 0;
-
- priv->arpref = NULL;
-
- priv->ostream = NULL;
- priv->buffer_size = BUFFER_SIZE;
- priv->buffer = g_new (char, priv->buffer_size);
- priv->error = NULL;
-}
-
-AutoarCreate*
-autoar_create_newv (AutoarPref *arpref,
- const char *output,
- const char **source)
-{
- AutoarCreate *arcreate;
-
- g_return_val_if_fail (source != NULL, NULL);
- g_return_val_if_fail (output != NULL, NULL);
-
- arcreate = g_object_new (AUTOAR_TYPE_CREATE,
- "source", source,
- "output", output,
- NULL);
- arcreate->priv->arpref = g_object_ref (arpref);
-
- return arcreate;
-}
-
-AutoarCreate*
-autoar_create_new (AutoarPref *arpref,
- const char *output,
- ...)
-{
- AutoarCreate *arcreate;
- char *str;
- va_list ap;
- GPtrArray *strv;
-
- va_start (ap, output);
- strv = g_ptr_array_new_with_free_func (g_free);
- while ((str = va_arg (ap, char*)) != NULL) {
- g_ptr_array_add (strv, str);
- }
- g_ptr_array_add (strv, NULL);
- va_end (ap);
-
- arcreate = autoar_create_newv (arpref, output, (const char**)(strv->pdata));
- g_ptr_array_unref (strv);
- return arcreate;
-}
-
-static void
-autoar_create_run (AutoarCreate *arcreate,
- gboolean in_thread)
-{
- struct archive *a;
- struct archive_entry *entry;
-
-}
-
-void
-autoar_create_start (AutoarCreate *arcreate)
-{
- autoar_create_run (arcreate, FALSE);
-}
-
-void
-autoar_create_start_async (AutoarCreate *arcreate)
-{
-}