sql

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2015 License: BSD-2-Clause Imports: 18 Imported by: 2

Documentation

Index

Constants

View Source
const Version = "0.0.1 very alpha"

Version of this release

Variables

View Source
var CurrentTime = func() int64 { return time.Now().UTC().Unix() }

CurrentTime returns the current time in UTC

View Source
var (
	// ErrNoModify is returned if a row was not modified
	ErrNoModify = errors.New("storage: Row not modified")
)

Functions

This section is empty.

Types

type ExpireMessage

type ExpireMessage struct {
	MessageID [message.MessageIDSize]byte
	SignerPub [message.SignerPubKeySize]byte
}

ExpireMessage contains data necessary for expiring a message

type MessageBlob

type MessageBlob struct {
	ID              uint64                         // numeric ID, local unique
	MessageID       [message.MessageIDSize]byte    // MessageID (global unique)
	SignerPublicKey [message.SignerPubKeySize]byte // Signer's public key
	OneTime         bool                           // If message should be burnt after reading
	Data            []byte                         // Message
}

MessageBlob contains a message blob

type MessageDB

type MessageDB struct {
	NumShards uint64
	// contains filtered or unexported fields
}

MessageDB implements a message database

func New

func New(driver, url, dir string, shards int) (*MessageDB, error)

New returns a new message database. driver is the database driver to use, url the database url. dir is the optional directory in which to store the raw message blobs. If dir is empty blobs will be stored in the database (which may not be a good idea at all). Shards is the number of lock shards to use for sequence generation (memory/lock-probability tradeoff)

func (*MessageDB) AddMessage

func (db *MessageDB) AddMessage(pk *[message.SignerPubKeySize]byte) error

AddMessage adds a message to the signer stats

func (*MessageDB) AddToGlobalIndex

func (db *MessageDB) AddToGlobalIndex(id uint64) error

AddToGlobalIndex adds a message to the global index

func (*MessageDB) Close

func (db *MessageDB) Close() error

Close the database

func (*MessageDB) DelMessage

func (db *MessageDB) DelMessage(pk *[message.SignerPubKeySize]byte) error

DelMessage deletes a message from the signer stats

func (*MessageDB) DeleteBlob

func (db *MessageDB) DeleteBlob(messageID *[message.MessageIDSize]byte) error

DeleteBlob deletes a blob by messageid

func (*MessageDB) DeleteBlobDB

func (db *MessageDB) DeleteBlobDB(messageID *[message.MessageIDSize]byte) error

DeleteBlobDB deletes a message blob by MessageID from the database

func (*MessageDB) DeleteBlobFS

func (db *MessageDB) DeleteBlobFS(messageID *[message.MessageIDSize]byte) error

DeleteBlobFS deletes a blob from filesystem

func (*MessageDB) DeleteMessageByID

func (db *MessageDB) DeleteMessageByID(mid *[message.MessageIDSize]byte) error

DeleteMessageByID deletes a message by messageid

func (*MessageDB) ExpireMessageCounter

func (db *MessageDB) ExpireMessageCounter(maxAge int64) error

ExpireMessageCounter expires all messagecounters (and thus resets key indices) that are older than maxAge seconds

func (*MessageDB) ExpireSigners

func (db *MessageDB) ExpireSigners(maxAge int64) (int64, int64, error)

ExpireSigners expires signers. Returns number of prepared and deleted entries

func (*MessageDB) ForgetMessages

func (db *MessageDB) ForgetMessages(expireTime int64) error

ForgetMessages returns true if we know a message already

func (*MessageDB) GetBlob

func (db *MessageDB) GetBlob(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)

GetBlob returns a blob struct

func (*MessageDB) GetBlobDB

func (db *MessageDB) GetBlobDB(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)

GetBlobDB returns the blob identified by messageID from the database

func (*MessageDB) GetBlobFS

func (db *MessageDB) GetBlobFS(messageID *[message.MessageIDSize]byte) (*MessageBlob, error)

GetBlobFS reads a blob from the filesystem

func (*MessageDB) GetGlobalIndex

func (db *MessageDB) GetGlobalIndex(start, count int64) ([][]byte, int, error)

GetGlobalIndex returns the global index starting with start and at most count entries

func (*MessageDB) GetKeyIndex

func (db *MessageDB) GetKeyIndex(index *message.Curve25519Key, start int64, count int64) ([][]byte, int, error)

GetKeyIndex returns the index for key index starting with start and at most count entries

func (*MessageDB) InsertBlob

func (db *MessageDB) InsertBlob(id uint64, messageID *[message.MessageIDSize]byte, signer *[message.SignerPubKeySize]byte, onetime bool, data []byte) error

InsertBlob writes a blob

func (*MessageDB) InsertBlobDB

func (db *MessageDB) InsertBlobDB(id uint64, messageID *[message.MessageIDSize]byte, signer *[message.SignerPubKeySize]byte, onetime bool, data []byte) error

InsertBlobDB inserts a blob into the database

func (*MessageDB) InsertBlobFS

func (db *MessageDB) InsertBlobFS(messageID *[message.MessageIDSize]byte, data []byte) error

InsertBlobFS writes a blob to database

func (*MessageDB) InsertBlobStruct

func (db *MessageDB) InsertBlobStruct(mb *MessageBlob) error

InsertBlobStruct inserts a MessageBlob

func (*MessageDB) InsertMessage

func (db *MessageDB) InsertMessage(msg *structs.MessageStruct) (uint64, error)

InsertMessage inserts a message struct into the database

func (*MessageDB) InsertOrUpdateSigner

func (db *MessageDB) InsertOrUpdateSigner(signerStruct *structs.SignerStruct) error

InsertOrUpdateSigner inserts or updates a signer

func (*MessageDB) InsertPeer

func (db *MessageDB) InsertPeer(pubkey *[ed25519.PublicKeySize]byte) error

InsertPeer writes a new peer, returns error if exists

func (*MessageDB) InsertSigner

func (db *MessageDB) InsertSigner(signerStruct *structs.SignerStruct) (int64, error)

InsertSigner writes a new signer to database and returns its unique ID

func (*MessageDB) LearnMessage

func (db *MessageDB) LearnMessage(mid *[message.MessageIDSize]byte) error

LearnMessage records a message to be known

func (*MessageDB) LockShard

func (db *MessageDB) LockShard(s []byte)

LockShard locks shard s

func (*MessageDB) MessageKnown

func (db *MessageDB) MessageKnown(mid *[message.MessageIDSize]byte) bool

MessageKnown returns true if we know a message already

func (*MessageDB) SelectMessageByID

func (db *MessageDB) SelectMessageByID(mid *[message.MessageIDSize]byte) (uint64, *structs.MessageStruct, error)

SelectMessageByID returns message data for the messageid

func (*MessageDB) SelectMessageExpire

func (db *MessageDB) SelectMessageExpire(now int64) ([]ExpireMessage, error)

SelectMessageExpire returns a list of messages that have expired

func (*MessageDB) SelectPeer

func (db *MessageDB) SelectPeer(pubkey *[ed25519.PublicKeySize]byte) (*structs.PeerStruct, error)

SelectPeer returns information about the peer

func (*MessageDB) SelectSigner

func (db *MessageDB) SelectSigner(pk *[message.SignerPubKeySize]byte) (int64, *structs.SignerStruct, error)

SelectSigner returns the signer identified by its public key. Returns unique ID, struct or error

func (*MessageDB) SelectSignerByID

func (db *MessageDB) SelectSignerByID(id int64) (int64, *structs.SignerStruct, error)

SelectSignerByID returns the signer identified by its public key. Returns unique ID, struct or error

func (*MessageDB) SetMessageExpireByID

func (db *MessageDB) SetMessageExpireByID(mid *[message.MessageIDSize]byte, expire int64) error

SetMessageExpireByID changes the expire time for the message identified by messageid

func (*MessageDB) TouchPeer

func (db *MessageDB) TouchPeer(pubkey *[ed25519.PublicKeySize]byte) error

TouchPeer inserts a peer but ignores duplicate errors

func (*MessageDB) UnlockShard

func (db *MessageDB) UnlockShard(s []byte)

UnlockShard unlocks shard s, if locked. Runtime error otherwise

func (*MessageDB) UpdatePeerNotification

func (db *MessageDB) UpdatePeerNotification(pubkey *[ed25519.PublicKeySize]byte, hasError bool) error

UpdatePeerNotification records the peer's notification ping time

func (*MessageDB) UpdatePeerStats

func (db *MessageDB) UpdatePeerStats(pubkey *[ed25519.PublicKeySize]byte, lastFetch, lastPos, lastErrors uint64) error

UpdatePeerStats updates the peer statistics

func (*MessageDB) UpdatePeerToken

func (db *MessageDB) UpdatePeerToken(pubkey *[ed25519.PublicKeySize]byte, signedToken *[keyproof.ProofTokenSignedSize]byte) error

UpdatePeerToken records the next authentication token for this peer

func (*MessageDB) UpdateSigner

func (db *MessageDB) UpdateSigner(signerStruct *structs.SignerStruct) error

UpdateSigner updates the signer

Jump to

Keyboard shortcuts

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