sprawl: github.com/sprawl/sprawl/interfaces Index | Files

package interfaces

import "github.com/sprawl/sprawl/interfaces"


Package Files

ChannelService.go Config.go Logger.go NodeService.go OrderService.go P2p.go Receiver.go Storage.go Websocket.go

type ChannelService Uses

type ChannelService interface {
    RegisterStorage(db Storage)
    RegisterP2p(p2p P2p)
    Join(ctx context.Context, in *pb.JoinRequest) (*pb.JoinResponse, error)
    Leave(ctx context.Context, in *pb.ChannelSpecificRequest) (*pb.Empty, error)
    GetChannel(ctx context.Context, in *pb.ChannelSpecificRequest) (*pb.Channel, error)
    GetAllChannels(ctx context.Context, in *pb.Empty) (*pb.ChannelList, error)

ChannelService is an interface to the Channel endpoints in sprawl.proto

type Config Uses

type Config interface {
    AddString(key string)
    AddBoolean(key string)
    AddUint(key string)
    AddStringE(key string) error
    AddBooleanE(key string) error
    AddUintE(key string) error
    ReadConfig(configPath string)
    GetDatabasePath() string
    GetExternalIP() string
    GetLogLevel() string
    GetLogFormat() string
    GetP2PPort() uint
    GetRPCPort() uint
    GetWebsocketPort() uint
    GetWebsocketEnable() bool
    GetInMemoryDatabaseSetting() bool
    GetNATPortMapSetting() bool
    GetRelaySetting() bool
    GetAutoRelaySetting() bool
    GetDebugSetting() bool
    GetStackTraceSetting() bool
    GetIPFSPeerSetting() bool

Config is an interface to viper

type Logger Uses

type Logger interface {
    Debug(args ...interface{})
    Debugf(format string, args ...interface{})
    Info(args ...interface{})
    Infof(format string, args ...interface{})
    Warn(args ...interface{})
    Warnf(format string, args ...interface{})
    Error(args ...interface{})
    Errorf(format string, args ...interface{})
    Fatal(args ...interface{})
    Fatalf(format string, args ...interface{})

Logger is an interface to viper

type NodeService Uses

type NodeService interface {
    RegisterP2p(p2p P2p)
    GetAllPeers(ctx context.Context, in *pb.Empty) (*pb.PeerListResponse, error)
    BlacklistPeer(ctx context.Context, in *pb.Peer) (*pb.Empty, error)

type OrderService Uses

type OrderService interface {
    RegisterStorage(db Storage)
    RegisterP2p(p2p P2p)
    RegisterWebsocket(websocket WebsocketService)
    Create(ctx context.Context, in *pb.CreateRequest) (*pb.CreateResponse, error)
    Receive(data []byte, from peer.ID) error
    Delete(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Empty, error)
    Lock(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Empty, error)
    Unlock(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Empty, error)
    GetOrder(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Order, error)
    GetAllOrders(ctx context.Context, in *pb.Empty) (*pb.OrderList, error)
    GetSignature(order *pb.Order) ([]byte, error)
    VerifyOrder(publicKey crypto.PubKey, order *pb.Order) (bool, error)

OrderService is an interface to the Order endpoints in sprawl.proto

type P2p Uses

type P2p interface {
    GetHostID() peer.ID
    GetHostIDString() string
    AddReceiver(receiver Receiver)
    Send(message *pb.WireMessage)
    Subscribe(channel *pb.Channel) (context.Context, error)
    Unsubscribe(channel *pb.Channel)
    GetAllPeers() []peer.ID
    BlacklistPeer(peerID *pb.Peer)
    OpenStream(peerID peer.ID) (Stream, error)
    CloseStream(peerID peer.ID) error

P2p is a general p2p connection handler

type Prefix Uses

type Prefix string

Prefix is a type used to prefix all entries in Storage

const (
    // OrderPrefix is the prefix used to signify all orders in Storage
    OrderPrefix Prefix = "order-"
    // ChannelPrefix is the prefix used to signify all channels in Storage
    ChannelPrefix Prefix = "channel-"

type Receiver Uses

type Receiver interface {
    Receive(data []byte, from peer.ID) error

Receiver receives and parses all Wiremessages from p2p

type Storage Uses

type Storage interface {
    SetDbPath(dbPath string)
    Run() error
    Has(key []byte) (bool, error)
    Get(key []byte) ([]byte, error)
    Put(key []byte, data []byte) error
    Delete(key []byte) error
    GetAll() (map[string]string, error)
    GetAllWithPrefix(prefix string) (map[string]string, error)
    DeleteAll() error
    DeleteAllWithPrefix(prefix string) error

Storage defines a database interface that works with Sprawl

type Stream Uses

type Stream interface {
    WriteToStream(data []byte) error

Stream is a single stream instance between two peers

type WebsocketService Uses

type WebsocketService interface {
    PushToWebsockets(message *pb.WireMessage)

Package interfaces imports 4 packages (graph) and is imported by 8 packages. Updated 2020-04-02. Refresh now. Tools for package owners.