Documentation ¶
Index ¶
- Variables
- type Metadata
- type MySQLBackend
- func (m MySQLBackend) CreateDBTables(db *sql.DB) error
- func (d MySQLBackend) CreateDirUnderInode(db *sql.DB, inode int32, name string) (int32, error)
- func (d MySQLBackend) CreateFileUnderInode(db *sql.DB, inode int32, name string) (int32, error)
- func (d MySQLBackend) GetDirectoryContentsForInode(db *sql.DB, inode int32) ([]int32, error)
- func (d MySQLBackend) GetFileContentsForInode(db *sql.DB, inode int32) ([]byte, error)
- func (d MySQLBackend) GetMetadataForInode(db *sql.DB, inode int32) (Metadata, error)
- func (d MySQLBackend) InitializeDBRows(db *sql.DB) error
- func (m MySQLBackend) OpenDB(dsn string) (*sql.DB, error)
- func (d MySQLBackend) RemoveDirUnderInode(db *sql.DB, inode int32, name string) error
- func (d MySQLBackend) RemoveFileUnderInode(db *sql.DB, inode int32, name string) error
- func (d MySQLBackend) SetFileContentsForInode(db *sql.DB, inode int32, data []byte) error
- func (d MySQLBackend) SetMetadataForInode(db *sql.DB, inode int32, metadata Metadata) error
- func (d MySQLBackend) VerifyDB(db *sql.DB) error
- type PostgresBackend
- func (p PostgresBackend) CreateDBTables(db *sql.DB) error
- func (d PostgresBackend) CreateDirUnderInode(db *sql.DB, inode int32, name string) (int32, error)
- func (d PostgresBackend) CreateFileUnderInode(db *sql.DB, inode int32, name string) (int32, error)
- func (d PostgresBackend) GetDirectoryContentsForInode(db *sql.DB, inode int32) ([]int32, error)
- func (d PostgresBackend) GetFileContentsForInode(db *sql.DB, inode int32) ([]byte, error)
- func (d PostgresBackend) GetMetadataForInode(db *sql.DB, inode int32) (Metadata, error)
- func (d PostgresBackend) InitializeDBRows(db *sql.DB) error
- func (p PostgresBackend) OpenDB(dsn string) (*sql.DB, error)
- func (d PostgresBackend) RemoveDirUnderInode(db *sql.DB, inode int32, name string) error
- func (d PostgresBackend) RemoveFileUnderInode(db *sql.DB, inode int32, name string) error
- func (d PostgresBackend) SetFileContentsForInode(db *sql.DB, inode int32, data []byte) error
- func (d PostgresBackend) SetMetadataForInode(db *sql.DB, inode int32, metadata Metadata) error
- func (d PostgresBackend) VerifyDB(db *sql.DB) error
- type SQLBackend
- type SQLiteBackend
- func (s SQLiteBackend) CreateDBTables(db *sql.DB) error
- func (d SQLiteBackend) CreateDirUnderInode(db *sql.DB, inode int32, name string) (int32, error)
- func (d SQLiteBackend) CreateFileUnderInode(db *sql.DB, inode int32, name string) (int32, error)
- func (d SQLiteBackend) GetDirectoryContentsForInode(db *sql.DB, inode int32) ([]int32, error)
- func (d SQLiteBackend) GetFileContentsForInode(db *sql.DB, inode int32) ([]byte, error)
- func (d SQLiteBackend) GetMetadataForInode(db *sql.DB, inode int32) (Metadata, error)
- func (d SQLiteBackend) InitializeDBRows(db *sql.DB) error
- func (s SQLiteBackend) OpenDB(dsn string) (*sql.DB, error)
- func (d SQLiteBackend) RemoveDirUnderInode(db *sql.DB, inode int32, name string) error
- func (d SQLiteBackend) RemoveFileUnderInode(db *sql.DB, inode int32, name string) error
- func (d SQLiteBackend) SetFileContentsForInode(db *sql.DB, inode int32, data []byte) error
- func (d SQLiteBackend) SetMetadataForInode(db *sql.DB, inode int32, metadata Metadata) error
- func (d SQLiteBackend) VerifyDB(db *sql.DB) error
Constants ¶
This section is empty.
Variables ¶
var AvaialableBackends = map[string]SQLBackend{ "sqlite": SQLiteBackend{}, "mysql": MySQLBackend{}, "postgres": PostgresBackend{}, }
Functions ¶
This section is empty.
Types ¶
type Metadata ¶
type Metadata struct { Inode int64 `db:"inode"` Uid int64 `db:"uid"` Gid int64 `db:"gid"` Mode int64 `db:"mode"` Type int64 `db:"type"` Ctime int64 `db:"ctime"` Atime int64 `db:"atime"` Mtime int64 `db:"mtime"` Name string `db:"name"` Size int64 `db:"size"` }
Metadata table as go struct
type MySQLBackend ¶
type MySQLBackend struct {
// contains filtered or unexported fields
}
func (MySQLBackend) CreateDBTables ¶
func (m MySQLBackend) CreateDBTables(db *sql.DB) error
CreateDBTables creates db tables using sql file
func (MySQLBackend) CreateDirUnderInode ¶
CreateDirUnderInode creates a Dir named name under directory referred to by inode
func (MySQLBackend) CreateFileUnderInode ¶
CreateFileUnderInode creates a File named name under directory referred to by inode
func (MySQLBackend) GetDirectoryContentsForInode ¶
GetDirectoryContentsForInode returns all children of inode from db
func (MySQLBackend) GetFileContentsForInode ¶
GetFileContentsForInode reads file contents for inode from db
TODO: split contents into blocks
func (MySQLBackend) GetMetadataForInode ¶
GetMetadataForInode retrieves metadata for a given inode from db
func (MySQLBackend) InitializeDBRows ¶
InitializeDBRows creates the necessary rows for fs to function
Currently, only root metadata is setup
func (MySQLBackend) OpenDB ¶
func (m MySQLBackend) OpenDB(dsn string) (*sql.DB, error)
OpenDB enables multiStatements and connects to dsn
func (MySQLBackend) RemoveDirUnderInode ¶
RemoveDirUnderInode removes Dir named name from directory referred to by inode
func (MySQLBackend) RemoveFileUnderInode ¶
RemoveFileUnderInode removes File named name from directory referred to by inode
func (MySQLBackend) SetFileContentsForInode ¶
SetFileContentsForInode updates file content for inode on db
func (MySQLBackend) SetMetadataForInode ¶
SetMetadataForInode updates metadata for inode on db
type PostgresBackend ¶
type PostgresBackend struct {
// contains filtered or unexported fields
}
func (PostgresBackend) CreateDBTables ¶
func (p PostgresBackend) CreateDBTables(db *sql.DB) error
CreateDBTables creates db tables using sql file
func (PostgresBackend) CreateDirUnderInode ¶
CreateDirUnderInode creates a Dir named name under directory referred to by inode
func (PostgresBackend) CreateFileUnderInode ¶
CreateFileUnderInode creates a File named name under directory referred to by inode
func (PostgresBackend) GetDirectoryContentsForInode ¶
GetDirectoryContentsForInode returns all children of inode from db
func (PostgresBackend) GetFileContentsForInode ¶
GetFileContentsForInode reads file contents for inode from db
TODO: split contents into blocks
func (PostgresBackend) GetMetadataForInode ¶
GetMetadataForInode retrieves metadata for a given inode from db
func (PostgresBackend) InitializeDBRows ¶
InitializeDBRows creates the necessary rows for fs to function
Currently, only root metadata is setup
func (PostgresBackend) OpenDB ¶
func (p PostgresBackend) OpenDB(dsn string) (*sql.DB, error)
OpenDB connects to dsn
func (PostgresBackend) RemoveDirUnderInode ¶
RemoveDirUnderInode removes Dir named name from directory referred to by inode
func (PostgresBackend) RemoveFileUnderInode ¶
RemoveFileUnderInode removes File named name from directory referred to by inode
func (PostgresBackend) SetFileContentsForInode ¶
SetFileContentsForInode updates file content for inode on db
func (PostgresBackend) SetMetadataForInode ¶
SetMetadataForInode updates metadata for inode on db
type SQLBackend ¶
type SQLBackend interface { OpenDB(dsn string) (*sql.DB, error) VerifyDB(db *sql.DB) error CreateDBTables(db *sql.DB) error InitializeDBRows(db *sql.DB) error GetMetadataForInode(db *sql.DB, inode int32) (Metadata, error) SetMetadataForInode(db *sql.DB, inode int32, metadata Metadata) error GetDirectoryContentsForInode(db *sql.DB, inode int32) ([]int32, error) GetFileContentsForInode(db *sql.DB, inode int32) ([]byte, error) SetFileContentsForInode(db *sql.DB, inode int32, data []byte) error // could've been the same function with an if condition // but maybe some backends might want to utilize the segregation CreateDirUnderInode(db *sql.DB, inode int32, name string) (int32, error) CreateFileUnderInode(db *sql.DB, inode int32, name string) (int32, error) // could've been the same function with an if condition // but maybe some backends might want to utilize the segregation RemoveDirUnderInode(db *sql.DB, inode int32, name string) error RemoveFileUnderInode(db *sql.DB, inode int32, name string) error }
type SQLiteBackend ¶
type SQLiteBackend struct {
// contains filtered or unexported fields
}
func (SQLiteBackend) CreateDBTables ¶
func (s SQLiteBackend) CreateDBTables(db *sql.DB) error
CreateDBTables creates db tables using sql file
func (SQLiteBackend) CreateDirUnderInode ¶
CreateDirUnderInode creates a Dir named name under directory referred to by inode
func (SQLiteBackend) CreateFileUnderInode ¶
CreateFileUnderInode creates a File named name under directory referred to by inode
func (SQLiteBackend) GetDirectoryContentsForInode ¶
GetDirectoryContentsForInode returns all children of inode from db
func (SQLiteBackend) GetFileContentsForInode ¶
GetFileContentsForInode reads file contents for inode from db
TODO: split contents into blocks
func (SQLiteBackend) GetMetadataForInode ¶
GetMetadataForInode retrieves metadata for a given inode from db
func (SQLiteBackend) InitializeDBRows ¶
InitializeDBRows creates the necessary rows for fs to function
Currently, only root metadata is setup
func (SQLiteBackend) OpenDB ¶
func (s SQLiteBackend) OpenDB(dsn string) (*sql.DB, error)
OpenDB connects to dsn
func (SQLiteBackend) RemoveDirUnderInode ¶
RemoveDirUnderInode removes Dir named name from directory referred to by inode
func (SQLiteBackend) RemoveFileUnderInode ¶
RemoveFileUnderInode removes File named name from directory referred to by inode
func (SQLiteBackend) SetFileContentsForInode ¶
SetFileContentsForInode updates file content for inode on db
func (SQLiteBackend) SetMetadataForInode ¶
SetMetadataForInode updates metadata for inode on db