daemon

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2018 License: BSD-2-Clause Imports: 10 Imported by: 0

Documentation

Overview

Package daemon implements a service for mediating access to the data store, and its client.

Most RPCs exposed by the service correspond to the methods of Store in the store package and are not documented here.

Index

Constants

View Source
const (
	// ServiceName is the name of the RPC service exposed by the daemon.
	ServiceName = "Daemon"

	// Version is the API version. It should be bumped any time the API changes.
	Version = -94
)

Variables

View Source
var (
	// ErrClientNotInitialized is returned when the Client is not initialized.
	ErrClientNotInitialized = errors.New("client not initialized")
	// ErrDaemonUnreachable is returned when the daemon cannot be reached after
	// several retries.
	ErrDaemonUnreachable = errors.New("daemon offline")
)

Functions

func Serve added in v0.11.0

func Serve(sockpath, dbpath string)

Serve runs the daemon service, listening on the socket specified by sockpath and serving data from dbpath. It quits upon receiving SIGTERM, SIGINT or when all active clients have disconnected.

Types

type AddCmdRequest added in v0.11.0

type AddCmdRequest struct {
	Text string
}

type AddCmdResponse added in v0.11.0

type AddCmdResponse struct {
	Seq int
}

type AddDirRequest added in v0.11.0

type AddDirRequest struct {
	Dir       string
	IncFactor float64
}

type AddDirResponse added in v0.11.0

type AddDirResponse struct{}

type Client added in v0.11.0

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

Client is a client to the Elvish daemon. A nil *Client is safe to use.

func NewClient added in v0.11.0

func NewClient(sockPath string) *Client

NewClient creates a new Client instance that talks to the socket. Connection creation is deferred to the first request.

func (*Client) AddCmd added in v0.11.0

func (c *Client) AddCmd(text string) (int, error)

func (*Client) AddDir added in v0.11.0

func (c *Client) AddDir(dir string, incFactor float64) error

func (*Client) Close added in v0.11.0

func (c *Client) Close() error

Close waits for all outstanding requests to finish and close the connection. If the client is nil, it does nothing and returns nil.

func (*Client) Cmd added in v0.11.0

func (c *Client) Cmd(seq int) (string, error)

func (*Client) Cmds added in v0.11.0

func (c *Client) Cmds(from, upto int) ([]string, error)

func (*Client) DelCmd added in v0.12.0

func (c *Client) DelCmd(seq int) error

func (*Client) DelDir added in v0.12.0

func (c *Client) DelDir(dir string) error

func (*Client) DelSharedVar added in v0.11.0

func (c *Client) DelSharedVar(name string) error

func (*Client) Dirs added in v0.11.0

func (c *Client) Dirs(blacklist map[string]struct{}) ([]storedefs.Dir, error)

func (*Client) NextCmd added in v0.11.0

func (c *Client) NextCmd(from int, prefix string) (int, string, error)

func (*Client) NextCmdSeq added in v0.11.0

func (c *Client) NextCmdSeq() (int, error)

func (*Client) Pid added in v0.11.0

func (c *Client) Pid() (int, error)

func (*Client) PrevCmd added in v0.11.0

func (c *Client) PrevCmd(upto int, prefix string) (int, string, error)

func (*Client) ResetConn added in v0.11.0

func (c *Client) ResetConn() error

ResetConn resets the current connection. A new connection will be established the next time a request is made. If the client is nil, it does nothing.

func (*Client) SetSharedVar added in v0.11.0

func (c *Client) SetSharedVar(name, value string) error

func (*Client) SharedVar added in v0.11.0

func (c *Client) SharedVar(name string) (string, error)

func (*Client) SockPath added in v0.11.0

func (c *Client) SockPath() string

SockPath returns the socket path that the Client talks to. If the client is nil, it returns an empty string.

func (*Client) Version added in v0.11.0

func (c *Client) Version() (int, error)

type CmdRequest added in v0.11.0

type CmdRequest struct {
	Seq int
}

type CmdResponse added in v0.11.0

type CmdResponse struct {
	Text string
}

type CmdsRequest added in v0.11.0

type CmdsRequest struct {
	From int
	Upto int
}

type CmdsResponse added in v0.11.0

type CmdsResponse struct {
	Cmds []string
}

type DelCmdRequest added in v0.12.0

type DelCmdRequest struct {
	Seq int
}

type DelCmdResponse added in v0.12.0

type DelCmdResponse struct {
}

type DelDirRequest added in v0.12.0

type DelDirRequest struct {
	Dir string
}

type DelDirResponse added in v0.12.0

type DelDirResponse struct{}

type DelSharedVarRequest added in v0.11.0

type DelSharedVarRequest struct {
	Name string
}

type DelSharedVarResponse added in v0.11.0

type DelSharedVarResponse struct{}

type DirsRequest added in v0.11.0

type DirsRequest struct {
	Blacklist map[string]struct{}
}

type DirsResponse added in v0.11.0

type DirsResponse struct {
	Dirs []storedefs.Dir
}

type NextCmdRequest added in v0.11.0

type NextCmdRequest struct {
	From   int
	Prefix string
}

type NextCmdResponse added in v0.11.0

type NextCmdResponse struct {
	Seq  int
	Text string
}

type NextCmdSeqRequest added in v0.11.0

type NextCmdSeqRequest struct{}

type NextCmdSeqResponse added in v0.11.0

type NextCmdSeqResponse struct {
	Seq int
}

type PidRequest added in v0.11.0

type PidRequest struct{}

type PidResponse added in v0.11.0

type PidResponse struct {
	Pid int
}

type PrevCmdRequest added in v0.11.0

type PrevCmdRequest struct {
	Upto   int
	Prefix string
}

type PrevCmdResponse added in v0.11.0

type PrevCmdResponse struct {
	Seq  int
	Text string
}

type Service added in v0.11.0

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

Service provides the daemon RPC service. It is suitable as a service for net/rpc.

func (*Service) AddCmd added in v0.11.0

func (s *Service) AddCmd(req *AddCmdRequest, res *AddCmdResponse) error

func (*Service) AddDir added in v0.11.0

func (s *Service) AddDir(req *AddDirRequest, res *AddDirResponse) error

func (*Service) Cmd added in v0.11.0

func (s *Service) Cmd(req *CmdRequest, res *CmdResponse) error

func (*Service) Cmds added in v0.11.0

func (s *Service) Cmds(req *CmdsRequest, res *CmdsResponse) error

func (*Service) DelCmd added in v0.12.0

func (s *Service) DelCmd(req *DelCmdRequest, res *DelCmdResponse) error

func (*Service) DelDir added in v0.12.0

func (s *Service) DelDir(req *DelDirRequest, res *DelDirResponse) error

func (*Service) DelSharedVar added in v0.11.0

func (s *Service) DelSharedVar(req *DelSharedVarRequest, res *DelSharedVarResponse) error

func (*Service) Dirs added in v0.11.0

func (s *Service) Dirs(req *DirsRequest, res *DirsResponse) error

func (*Service) NextCmd added in v0.11.0

func (s *Service) NextCmd(req *NextCmdRequest, res *NextCmdResponse) error

func (*Service) NextCmdSeq added in v0.11.0

func (s *Service) NextCmdSeq(req *NextCmdSeqRequest, res *NextCmdSeqResponse) error

func (*Service) Pid added in v0.11.0

func (s *Service) Pid(req *PidRequest, res *PidResponse) error

Pid returns the process ID of the daemon.

func (*Service) PrevCmd added in v0.11.0

func (s *Service) PrevCmd(req *PrevCmdRequest, res *PrevCmdResponse) error

func (*Service) SetSharedVar added in v0.11.0

func (s *Service) SetSharedVar(req *SetSharedVarRequest, res *SetSharedVarResponse) error

func (*Service) SharedVar added in v0.11.0

func (s *Service) SharedVar(req *SharedVarRequest, res *SharedVarResponse) error

func (*Service) Version added in v0.11.0

func (s *Service) Version(req *VersionRequest, res *VersionResponse) error

Version returns the API version number.

type SetSharedVarRequest added in v0.11.0

type SetSharedVarRequest struct {
	Name  string
	Value string
}

type SetSharedVarResponse added in v0.11.0

type SetSharedVarResponse struct{}

type SharedVarRequest added in v0.11.0

type SharedVarRequest struct {
	Name string
}

type SharedVarResponse added in v0.11.0

type SharedVarResponse struct {
	Value string
}

type VersionRequest added in v0.11.0

type VersionRequest struct{}

type VersionResponse added in v0.11.0

type VersionResponse struct {
	Version int
}

Jump to

Keyboard shortcuts

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