/*
- * 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
#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
*/
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;
+ gboolean enforce_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;
/*
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
-