fum

package
v0.0.0-...-87de0be Latest Latest
Warning

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

Go to latest
Published: May 16, 2019 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BadgerStorage

type BadgerStorage struct {
	Storage
	// contains filtered or unexported fields
}

func NewBadgerStorage

func NewBadgerStorage(path string) (*BadgerStorage, error)

func (*BadgerStorage) Add

func (m *BadgerStorage) Add(s *Commit) ([]byte, error)

func (*BadgerStorage) Dequeue

func (m *BadgerStorage) Dequeue(ref []byte) (*Commit, error)

func (*BadgerStorage) DequeueCount

func (m *BadgerStorage) DequeueCount(ref []byte, count int) ([]*Commit, error)

func (*BadgerStorage) Front

func (m *BadgerStorage) Front() *Commit

func (*BadgerStorage) Len

func (m *BadgerStorage) Len() int

type Commit

type Commit struct {
	CompressedKey       []byte
	Signature           []byte
	Data                []byte
	MasterSignature     []byte
	MasterCompressedKey []byte
	Reference           []byte
}

type CommitLog

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

func New

func New() (*CommitLog, error)

func NewWithStorage

func NewWithStorage(store Storage) (*CommitLog, error)

func (*CommitLog) Add

func (cl *CommitLog) Add(compressedKey []byte, signature []byte, data []byte) ([]byte, error)

func (*CommitLog) Dequeue

func (cl *CommitLog) Dequeue(ref []byte) (*Commit, error)

func (*CommitLog) DequeueCount

func (cl *CommitLog) DequeueCount(ref []byte, count int) ([]*Commit, error)

type FumServer

type FumServer struct {
	CommitLog *CommitLog
}

func (*FumServer) DequeueHandler

func (fs *FumServer) DequeueHandler(w http.ResponseWriter, r *http.Request)

func (*FumServer) EnqueueHandler

func (fs *FumServer) EnqueueHandler(w http.ResponseWriter, r *http.Request)

type MemStorage

type MemStorage struct {
	Storage
	// contains filtered or unexported fields
}

func (*MemStorage) Add

func (m *MemStorage) Add(s *Commit) ([]byte, error)

func (*MemStorage) Dequeue

func (m *MemStorage) Dequeue(ref []byte) (*Commit, error)
func (m *MemStorage) Dequeue(ref []byte) (*Commit, error) {
	idx := 0
	if len(ref) > 0 {
		idx64, _ := binary.Uvarint(ref)
		idx = int(idx64) + 1
	}

	if idx == len(m.commitLog) {
		return nil, nil
	}

	if idx < 0 || idx >= len(m.commitLog) {
		return nil, errors.New("Reference out of bounds")
	}

	return m.commitLog[idx], nil
}

func (*MemStorage) DequeueCount

func (m *MemStorage) DequeueCount(ref []byte, count int) ([]*Commit, error)

func (*MemStorage) Front

func (m *MemStorage) Front() *Commit

func (*MemStorage) Len

func (m *MemStorage) Len() int

type ReadWriterStorage

type ReadWriterStorage struct {
	Storage
	// contains filtered or unexported fields
}

func NewReaderWriterStorage

func NewReaderWriterStorage(rw io.ReadWriteSeeker) *ReadWriterStorage

func (*ReadWriterStorage) Add

func (m *ReadWriterStorage) Add(s *Commit) ([]byte, error)

func (*ReadWriterStorage) Dequeue

func (m *ReadWriterStorage) Dequeue(ref []byte) (*Commit, error)

func (*ReadWriterStorage) DequeueCount

func (m *ReadWriterStorage) DequeueCount(ref []byte, count int) ([]*Commit, error)

func (*ReadWriterStorage) Front

func (m *ReadWriterStorage) Front() *Commit

func (*ReadWriterStorage) Len

func (m *ReadWriterStorage) Len() int

type Storage

type Storage interface {
	Add(s *Commit) ([]byte, error)
	Len() int
	Front() *Commit
	Dequeue(ref []byte) (*Commit, error)
	DequeueCount(ref []byte, count int) ([]*Commit, error)
}

Jump to

Keyboard shortcuts

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