/*
- * Copyright (c) 2007, 2008, 2009, 2010 Zmanda, Inc. All Rights Reserved.
+ * Copyright (c) 2007-2012 Zmanda, Inc. 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.
+ * 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
+ * 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
#include "fileheader.h"
#include "glib-util.h"
#include "simpleprng.h"
+#include "amanda.h"
+#include "sockaddr-util.h"
%}
%init %{
return device_finish(self);
}
+ guint64
+ get_bytes_read() {
+ return device_get_bytes_read(self);
+ }
+
+ guint64
+ get_bytes_written() {
+ return device_get_bytes_written(self);
+ }
+
gboolean
start_file(dumpfile_t *jobInfo) {
return device_start_file(self, jobInfo);
*addrs = NULL;
}
- %newobject accept; /* connection is already ref'd, so we own it */
- DirectTCPConnection *
- accept() {
- DirectTCPConnection *conn = NULL;
- gboolean rv;
-
- rv = device_accept(self, &conn, NULL, NULL);
- if (!rv && conn) {
- /* conn is ref'd for our convenience, but we don't want it */
- g_object_unref(conn);
- conn = NULL;
- }
- return conn;
- }
-
- %newobject connect; /* connection is already ref'd, so we own it */
- DirectTCPConnection *
- connect(gboolean for_writing, DirectTCPAddr *addrs) {
- DirectTCPConnection *conn = NULL;
- gboolean rv;
-
- rv = device_connect(self, for_writing, addrs, &conn, NULL, NULL);
- if (!rv && conn) {
- /* conn is ref'd for our convenience, but we don't want it */
- g_object_unref(conn);
- conn = NULL;
- }
- return conn;
- }
-
gboolean
use_connection(DirectTCPConnection *conn) {
return device_use_connection(self, conn);
}
- %typemap(in,numinputs=0) guint64 *actual_size (guint64 sz) {
- sz = 0;
- $1 = &sz;
- }
- %typemap(argout) guint64 *actual_size {
- SP += argvi; PUTBACK;
- $result = sv_2mortal(amglue_newSVu64(*$1));
- SPAGAIN; SP -= argvi; argvi++;
- }
- gboolean
- write_from_connection(guint64 size, guint64 *actual_size) {
- return device_write_from_connection(self, size, actual_size);
- }
-
- gboolean
- read_to_connection(guint64 size, guint64 *actual_size) {
- return device_read_to_connection(self, size, actual_size);
- }
-
%typemap(out) const GSList * {
GSList *iter;
gboolean
property_set(DevicePropertyBase *pbase, SV *sv) {
GValue gval;
+
+ if (!pbase)
+ goto fail;
memset(&gval, 0, sizeof(gval));
g_value_init(&gval, pbase->type);
if (!set_gvalue_from_sv(sv, &gval))
- goto fail;
+ goto failunset;
if (!device_property_set(self, pbase->ID, &gval))
- goto fail;
+ goto failunset;
g_value_unset(&gval);
return TRUE;
- fail:
+ failunset:
g_value_unset(&gval);
+ fail:
return FALSE;
}
gsize min_block_size(void) { return self->min_block_size; }
gsize max_block_size(void) { return self->max_block_size; }
gsize block_size(void) { return self->block_size; }
+ gsize header_block_size(void) { return self->header_block_size; }
dumpfile_t *volume_header(void) { return self->volume_header; }
};