persist

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2016 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrBadVersion indicates that the version number of the file is not
	// compatible with the current codebase.
	ErrBadVersion = errors.New("incompatible version")

	// ErrBadHeader indicates that the file opened is not the file that was
	// expected.
	ErrBadHeader = errors.New("wrong header")
)

Functions

func Load added in v0.3.3

func Load(meta Metadata, data interface{}, r io.Reader) error

Load loads json data from a reader.

func LoadFile added in v0.3.3

func LoadFile(meta Metadata, data interface{}, filename string) error

LoadFile loads json data from a file.

func NewSafeFile added in v1.0.0

func NewSafeFile(filename string) (*safeFile, error)

NewSafeFile returns a file that can atomically be written to disk, minimizing the risk of corruption.

func RandomSuffix added in v1.0.0

func RandomSuffix() string

RandomSuffix returns a 20 character base32 suffix for a filename. There are 100 bits of entropy, and a very low probability of colliding with existing files unintentionally.

func Save added in v0.3.3

func Save(meta Metadata, data interface{}, w io.Writer) error

Save saves json data to a writer.

func SaveFile added in v0.3.3

func SaveFile(meta Metadata, data interface{}, filename string) error

SaveFile atomically saves json data to a file.

func SaveFileSync added in v1.0.0

func SaveFileSync(meta Metadata, data interface{}, filename string) error

SaveFileSync atomically saves json data to a file and then syncs to disk.

Types

type BoltDatabase added in v1.0.0

type BoltDatabase struct {
	Metadata
	*bolt.DB
}

BoltDatabase is a persist-level wrapper for the bolt database, providing extra information such as a version number.

func OpenDatabase added in v1.0.0

func OpenDatabase(md Metadata, filename string) (*BoltDatabase, error)

OpenDatabase opens a database and validates its metadata.

func (*BoltDatabase) Close added in v1.0.0

func (db *BoltDatabase) Close() error

Close closes the database.

type Logger added in v1.0.0

type Logger struct {
	*log.Logger
	// contains filtered or unexported fields
}

Logger is a wrapper for the standard library logger that enforces logging with the Sia-standard settings. It also supports a Close method, which attempts to close the underlying io.Writer.

func NewFileLogger added in v1.0.0

func NewFileLogger(logFilename string) (*Logger, error)

NewFileLogger returns a logger that logs to logFilename. The file is opened in append mode, and created if it does not exist.

func NewLogger added in v1.0.0

func NewLogger(w io.Writer) *Logger

NewLogger returns a logger that can be closed. Calls should not be made to the logger after 'Close' has been called.

func (*Logger) Close added in v1.0.0

func (l *Logger) Close() error

Close logs a shutdown message and closes the Logger's underlying io.Writer, if it is also an io.Closer.

func (*Logger) Critical added in v1.0.0

func (l *Logger) Critical(v ...interface{})

Critical logs a message with a CRITICAL prefix. If debug mode is enabled, it will also write the message to os.Stderr and panic.

func (*Logger) Debug added in v1.0.0

func (l *Logger) Debug(v ...interface{})

Debug is equivalent to Logger.Print when build.DEBUG is true. Otherwise it is a no-op.

func (*Logger) Debugf added in v1.0.0

func (l *Logger) Debugf(format string, v ...interface{})

Debugf is equivalent to Logger.Printf when build.DEBUG is true. Otherwise it is a no-op.

func (*Logger) Debugln added in v1.0.0

func (l *Logger) Debugln(v ...interface{})

Debugln is equivalent to Logger.Println when build.DEBUG is true. Otherwise it is a no-op.

type Metadata added in v0.3.3

type Metadata struct {
	Header, Version string
}

Metadata contains the header and version of the data being stored.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL