memory

package
v4.0.0-rc4+incompatible Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2016 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package memory is a storage backend base on memory

Index

Constants

This section is empty.

Variables

View Source
var ErrUnsupportedObjectType = fmt.Errorf("unsupported object type")

Functions

This section is empty.

Types

type ConfigStorage

type ConfigStorage struct {
	// contains filtered or unexported fields
}

func (*ConfigStorage) Config

func (c *ConfigStorage) Config() (*config.Config, error)

func (*ConfigStorage) SetConfig

func (c *ConfigStorage) SetConfig(cfg *config.Config) error

type ObjectStorage

type ObjectStorage struct {
	Objects map[plumbing.Hash]plumbing.Object
	Commits map[plumbing.Hash]plumbing.Object
	Trees   map[plumbing.Hash]plumbing.Object
	Blobs   map[plumbing.Hash]plumbing.Object
	Tags    map[plumbing.Hash]plumbing.Object
}

func (*ObjectStorage) Begin

func (o *ObjectStorage) Begin() storer.Transaction

func (*ObjectStorage) IterObjects

func (o *ObjectStorage) IterObjects(t plumbing.ObjectType) (storer.ObjectIter, error)

func (*ObjectStorage) NewObject

func (o *ObjectStorage) NewObject() plumbing.Object

func (*ObjectStorage) Object

func (*ObjectStorage) SetObject

func (o *ObjectStorage) SetObject(obj plumbing.Object) (plumbing.Hash, error)

type ReferenceStorage

type ReferenceStorage map[plumbing.ReferenceName]*plumbing.Reference

func (ReferenceStorage) IterReferences

func (r ReferenceStorage) IterReferences() (storer.ReferenceIter, error)

func (ReferenceStorage) Reference

func (ReferenceStorage) SetReference

func (r ReferenceStorage) SetReference(ref *plumbing.Reference) error

type Storage

type Storage struct {
	ConfigStorage
	ObjectStorage
	ReferenceStorage
}

Storage is an implementation of git.Storer that stores data on memory, being ephemeral. The use of this storage should be done in controlled envoriments, since the representation in memory of some repository can fill the machine memory. in the other hand this storage has the best performance.

func NewStorage

func NewStorage() *Storage

NewStorage returns a new Storage base on memory

type TxObjectStorage

type TxObjectStorage struct {
	Storage *ObjectStorage
	Objects map[plumbing.Hash]plumbing.Object
}

func (*TxObjectStorage) Commit

func (tx *TxObjectStorage) Commit() error

func (*TxObjectStorage) Object

func (*TxObjectStorage) Rollback

func (tx *TxObjectStorage) Rollback() error

func (*TxObjectStorage) SetObject

func (tx *TxObjectStorage) SetObject(obj plumbing.Object) (plumbing.Hash, error)

Jump to

Keyboard shortcuts

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