--- /dev/null
+<?php
+/**
+ */
+class Horde_Vfs_DownloadController extends Horde_Controller_Base
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * This Db base class manages the horde_vfs_metadata table for the various Db
+ * backends (Chunked, File, S3). The metadata table holds the filesystem
+ * representation in the database, but actual file contents are not stored
+ * thre. A subclass is needed to provide actual file storage.
+ *
+ * @category Horde
+ * @package Horde_Vfs
+ */
+abstract class Horde_Vfs_Adapter_Db_Base
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * A file-backed Vfs adapter that uses a database for the filesystem tree and
+ * metadata, and stores file contents in chunks in a separate blob table. Large
+ * files can be split between many chunks; small files just take one.
+ *
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_Adapter_Db_Chunked extends Horde_Vfs_Adapter_Db_Base
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * A file-backed Vfs adapter that uses a database for the filesystem tree and
+ * metadata, but stores content using the operating system's filesystem
+ * (probably local, but could be NFS or another distributed fs).
+ *
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_Adapter_Db_File extends Horde_Vfs_Adapter_Db_Base
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * A file-backed Vfs adapter that uses a database for the filesystem tree and
+ * metadata, and stores file contents on Amazon's S3.
+ *
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_Adapter_Db_S3 extends Horde_Vfs_Adapter_Db_Base
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_Base
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_Directory implements IteratorAggregate
+{
+ /**
+ * @return Horde_Vfs_DirectoryIterator
+ */
+ public function getIterator()
+ {
+ return new Horde_Vfs_DirectoryIterator($this);
+ }
+
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_DirectoryIterator implements Iterator
+{
+}
+<?php
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+
+/**
+ * @category Horde
+ * @package Horde_Vfs
+ */
+class Horde_Vfs_File
+{
+ /**
+ * Return a URL that a file can be accessed from. For example, an S3 URL, or
+ * a local file with vfs-direct and filesystem backends, or a passthrough
+ * script using the DownloadController.
+ *
+ * @return string
+ */
+ public function getUri()
+ {
+ }
+
+ /**
+ * Return a UUID for this file.
+ *
+ * @TODO useful? Could be used for indexing, for private URLs, for primary
+ * keys in Horde_Content, ...?
+ */
+ public function getUuid()
+ {
+ }
+
+}