Imported Upstream version 3.2.0
[debian/amanda] / device-src / vfs-device.h
index 6b5796f7e44297b7f7be89562148f3ed65e0ba35..62442c470d9129b0ccd0a6da76d7be88c6216de0 100644 (file)
@@ -1,42 +1,27 @@
 /*
- * Copyright (c) 2005 Zmanda, Inc.  All Rights Reserved.
- * 
+ * Copyright (c) 2005-2008, 2010 Zmanda Inc.  All Rights Reserved.
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License version 2.1 as 
+ * under the terms of the GNU Lesser General Public License version 2.1 as
  * published by the Free Software Foundation.
- * 
+ *
  * This library 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 library; if not, write to the Free Software Foundation,
  * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA.
- * 
- * Contact information: Zmanda Inc., 505 N Mathlida Ave, Suite 120
- * Sunnyvale, CA 94085, USA, or: http://www.zmanda.com
+ *
+ * Contact information: Zmanda Inc., 465 S Mathlida Ave, Suite 300
+ * Sunnyvale, CA 94086, USA, or: http://www.zmanda.com
  */
 
-/* The VFS device is the driver formerly known as the vtape driver or
- * the file driver. It uses a directory on the UNIX filesystem as a
- * data store. */
+#ifndef __VFS_DEVICE_H__
+#define __VFS_DEVICE_H__
 
-#include <glib.h>
-#include <glib-object.h>
 #include "device.h"
-#include <dirent.h>
-
-#ifndef VFS_DEVICE_H
-#define VFS_DEVICE_H
-
-#define VFS_DEVICE_MIN_BLOCK_SIZE (1)
-#define VFS_DEVICE_MAX_BLOCK_SIZE (INT_MAX)
-#define VFS_DEVICE_DEFAULT_BLOCK_SIZE (MAX_TAPE_BLOCK_BYTES)
-#define VFS_DEVICE_LABEL_SIZE (32768)
-
-/* This looks dangerous, but is actually modified by the umask. */
-#define VFS_DEVICE_CREAT_MODE 0666
 
 /*
  * Type checking and casting macros
@@ -49,6 +34,8 @@
 
 #define VFS_DEVICE_GET_CLASS(obj)      G_TYPE_INSTANCE_GET_CLASS((obj), vfs_device_get_type(), VfsDeviceClass)
 
+GType  vfs_device_get_type     (void);
+
 /*
  * Main object structure
  */
@@ -56,19 +43,26 @@ typedef struct {
     Device __parent__;
 
     /*< private >*/
-    DIR * dir_handle;
     char * dir_name;
     char * file_name;
-    int file_lock_fd;
-    char * file_lock_name;
-    int volume_lock_fd;
-    char * volume_lock_name;
     int open_file_fd;
-    
+    gboolean leom;
+
     /* Properties */
-    int block_size;
     guint64 volume_bytes;
     guint64 volume_limit;
+
+    /* should we monitor free space? (controlled by MONITOR_FREE_SPACE property) */
+    gboolean monitor_free_space;
+
+    /* how many bytes were free at last check */
+    guint64 checked_fs_free_bytes;
+
+    /* when was that check performed? */
+    time_t checked_fs_free_time;
+
+    /* and how many bytes have been written since the last check? */
+    guint64 checked_bytes_used;
 } VfsDevice;
 
 /*
@@ -78,12 +72,7 @@ typedef struct {
     DeviceClass __parent__;
 } VfsDeviceClass;
 
-
-/*
- * Public methods
- */
-GType  vfs_device_get_type     (void);
-void    vfs_device_register     (void);
+/* Implementation functions */
+void delete_vfs_files(VfsDevice * self);
 
 #endif
-