Documentation ¶
Index ¶
- Variables
- type FuncMiddleware
- type Handler
- type Invoker
- type LazyHandler
- func (lh *LazyHandler) Access(ctx context.Context, h *fine.RequestHeader, req *fine.AccessRequest) error
- func (lh *LazyHandler) BatchForget(ctx context.Context, h *fine.RequestHeader, req *fine.BatchForgetRequest) error
- func (lh *LazyHandler) Close() error
- func (lh *LazyHandler) Create(ctx context.Context, h *fine.RequestHeader, req *fine.CreateRequest) (*fine.CreateResponse, error)
- func (lh *LazyHandler) Flush(ctx context.Context, h *fine.RequestHeader, req *fine.FlushRequest) error
- func (lh *LazyHandler) Forget(ctx context.Context, h *fine.RequestHeader, req *fine.ForgetRequest)
- func (lh *LazyHandler) Fsync(ctx context.Context, h *fine.RequestHeader, req *fine.FsyncRequest) error
- func (lh *LazyHandler) Fsyncdir(ctx context.Context, h *fine.RequestHeader, req *fine.FsyncRequest) error
- func (lh *LazyHandler) Getattr(ctx context.Context, h *fine.RequestHeader, req *fine.GetattrRequest) (*fine.AttrResponse, error)
- func (lh *LazyHandler) Init(ctx context.Context) error
- func (lh *LazyHandler) Link(ctx context.Context, h *fine.RequestHeader, req *fine.LinkRequest) (*fine.EntryResponse, error)
- func (lh *LazyHandler) Lookup(ctx context.Context, h *fine.RequestHeader, req *fine.LookupRequest) (*fine.EntryResponse, error)
- func (lh *LazyHandler) Lseek(ctx context.Context, h *fine.RequestHeader, req *fine.LseekRequest) (*fine.LseekResponse, error)
- func (lh *LazyHandler) Mkdir(ctx context.Context, h *fine.RequestHeader, req *fine.MkdirRequest) (*fine.EntryResponse, error)
- func (lh *LazyHandler) Mknod(ctx context.Context, h *fine.RequestHeader, req *fine.MknodRequest) (*fine.EntryResponse, error)
- func (lh *LazyHandler) Open(ctx context.Context, h *fine.RequestHeader, req *fine.OpenRequest) (*fine.OpenedResponse, error)
- func (lh *LazyHandler) Opendir(ctx context.Context, h *fine.RequestHeader, req *fine.OpenRequest) (*fine.OpenedResponse, error)
- func (lh *LazyHandler) Read(ctx context.Context, h *fine.RequestHeader, req *fine.ReadRequest) (*fine.ReadResponse, error)
- func (lh *LazyHandler) Readdir(ctx context.Context, h *fine.RequestHeader, req *fine.ReadRequest) (*fine.ReaddirResponse, error)
- func (lh *LazyHandler) Readlink(ctx context.Context, h *fine.RequestHeader) (*fine.ReadlinkResponse, error)
- func (lh *LazyHandler) Release(ctx context.Context, h *fine.RequestHeader, req *fine.ReleaseRequest) error
- func (lh *LazyHandler) Releasedir(ctx context.Context, h *fine.RequestHeader, req *fine.ReleaseRequest) error
- func (lh *LazyHandler) Rename(ctx context.Context, h *fine.RequestHeader, req *fine.RenameRequest) error
- func (lh *LazyHandler) Rmdir(ctx context.Context, h *fine.RequestHeader, req *fine.RmdirRequest) error
- func (lh *LazyHandler) SetHandler(ctx context.Context, h Handler) error
- func (lh *LazyHandler) Setattr(ctx context.Context, h *fine.RequestHeader, req *fine.SetattrRequest) (*fine.AttrResponse, error)
- func (lh *LazyHandler) Symlink(ctx context.Context, h *fine.RequestHeader, req *fine.SymlinkRequest) (*fine.EntryResponse, error)
- func (lh *LazyHandler) Unlink(ctx context.Context, h *fine.RequestHeader, req *fine.UnlinkRequest) error
- func (lh *LazyHandler) Write(ctx context.Context, h *fine.RequestHeader, req *fine.WriteRequest) (*fine.WriteResponse, error)
- type Middleware
- type Options
- type Server
- type UnimplementedHandler
- func (UnimplementedHandler) Access(context.Context, *fine.RequestHeader, *fine.AccessRequest) error
- func (UnimplementedHandler) BatchForget(context.Context, *fine.RequestHeader, *fine.BatchForgetRequest) error
- func (UnimplementedHandler) Close() error
- func (UnimplementedHandler) Create(context.Context, *fine.RequestHeader, *fine.CreateRequest) (*fine.CreateResponse, error)
- func (UnimplementedHandler) Flush(context.Context, *fine.RequestHeader, *fine.FlushRequest) error
- func (UnimplementedHandler) Forget(context.Context, *fine.RequestHeader, *fine.ForgetRequest)
- func (UnimplementedHandler) Fsync(context.Context, *fine.RequestHeader, *fine.FsyncRequest) error
- func (UnimplementedHandler) Fsyncdir(context.Context, *fine.RequestHeader, *fine.FsyncRequest) error
- func (UnimplementedHandler) Getattr(context.Context, *fine.RequestHeader, *fine.GetattrRequest) (*fine.AttrResponse, error)
- func (UnimplementedHandler) Init(context.Context) error
- func (UnimplementedHandler) Link(context.Context, *fine.RequestHeader, *fine.LinkRequest) (*fine.EntryResponse, error)
- func (UnimplementedHandler) Lookup(context.Context, *fine.RequestHeader, *fine.LookupRequest) (*fine.EntryResponse, error)
- func (UnimplementedHandler) Lseek(context.Context, *fine.RequestHeader, *fine.LseekRequest) (*fine.LseekResponse, error)
- func (UnimplementedHandler) Mkdir(context.Context, *fine.RequestHeader, *fine.MkdirRequest) (*fine.EntryResponse, error)
- func (UnimplementedHandler) Mknod(context.Context, *fine.RequestHeader, *fine.MknodRequest) (*fine.EntryResponse, error)
- func (UnimplementedHandler) Open(context.Context, *fine.RequestHeader, *fine.OpenRequest) (*fine.OpenedResponse, error)
- func (UnimplementedHandler) Opendir(context.Context, *fine.RequestHeader, *fine.OpenRequest) (*fine.OpenedResponse, error)
- func (UnimplementedHandler) Read(context.Context, *fine.RequestHeader, *fine.ReadRequest) (*fine.ReadResponse, error)
- func (UnimplementedHandler) Readdir(context.Context, *fine.RequestHeader, *fine.ReadRequest) (*fine.ReaddirResponse, error)
- func (UnimplementedHandler) Readlink(context.Context, *fine.RequestHeader) (*fine.ReadlinkResponse, error)
- func (UnimplementedHandler) Release(context.Context, *fine.RequestHeader, *fine.ReleaseRequest) error
- func (UnimplementedHandler) Releasedir(context.Context, *fine.RequestHeader, *fine.ReleaseRequest) error
- func (UnimplementedHandler) Rename(context.Context, *fine.RequestHeader, *fine.RenameRequest) error
- func (UnimplementedHandler) Rmdir(context.Context, *fine.RequestHeader, *fine.RmdirRequest) error
- func (UnimplementedHandler) Setattr(context.Context, *fine.RequestHeader, *fine.SetattrRequest) (*fine.AttrResponse, error)
- func (UnimplementedHandler) Symlink(context.Context, *fine.RequestHeader, *fine.SymlinkRequest) (*fine.EntryResponse, error)
- func (UnimplementedHandler) Unlink(context.Context, *fine.RequestHeader, *fine.UnlinkRequest) error
- func (UnimplementedHandler) Write(context.Context, *fine.RequestHeader, *fine.WriteRequest) (*fine.WriteResponse, error)
Constants ¶
This section is empty.
Variables ¶
var DefaultOptions = Options{
ConcurrencyLimit: 64,
}
DefaultOptions provides defaults for Server.
Functions ¶
This section is empty.
Types ¶
type FuncMiddleware ¶
type FuncMiddleware func(ctx context.Context, hdr *fine.RequestHeader, req fine.Request, i Invoker) (fine.Response, error)
FuncMiddleware is a function that implements Middleware.
func (FuncMiddleware) HandleRequest ¶
type Handler ¶
type Handler interface { // Init is called at the start of serving a handler. Init(context.Context) error // Close is called when closing a handler. Close() error Lookup(context.Context, *fine.RequestHeader, *fine.LookupRequest) (*fine.EntryResponse, error) Forget(context.Context, *fine.RequestHeader, *fine.ForgetRequest) Getattr(context.Context, *fine.RequestHeader, *fine.GetattrRequest) (*fine.AttrResponse, error) Setattr(context.Context, *fine.RequestHeader, *fine.SetattrRequest) (*fine.AttrResponse, error) Readlink(context.Context, *fine.RequestHeader) (*fine.ReadlinkResponse, error) Symlink(context.Context, *fine.RequestHeader, *fine.SymlinkRequest) (*fine.EntryResponse, error) Mknod(context.Context, *fine.RequestHeader, *fine.MknodRequest) (*fine.EntryResponse, error) Mkdir(context.Context, *fine.RequestHeader, *fine.MkdirRequest) (*fine.EntryResponse, error) Unlink(context.Context, *fine.RequestHeader, *fine.UnlinkRequest) error Rmdir(context.Context, *fine.RequestHeader, *fine.RmdirRequest) error Rename(context.Context, *fine.RequestHeader, *fine.RenameRequest) error Link(context.Context, *fine.RequestHeader, *fine.LinkRequest) (*fine.EntryResponse, error) Open(context.Context, *fine.RequestHeader, *fine.OpenRequest) (*fine.OpenedResponse, error) Read(context.Context, *fine.RequestHeader, *fine.ReadRequest) (*fine.ReadResponse, error) Write(context.Context, *fine.RequestHeader, *fine.WriteRequest) (*fine.WriteResponse, error) Release(context.Context, *fine.RequestHeader, *fine.ReleaseRequest) error Fsync(context.Context, *fine.RequestHeader, *fine.FsyncRequest) error Flush(context.Context, *fine.RequestHeader, *fine.FlushRequest) error Opendir(context.Context, *fine.RequestHeader, *fine.OpenRequest) (*fine.OpenedResponse, error) Readdir(context.Context, *fine.RequestHeader, *fine.ReadRequest) (*fine.ReaddirResponse, error) Releasedir(context.Context, *fine.RequestHeader, *fine.ReleaseRequest) error Fsyncdir(context.Context, *fine.RequestHeader, *fine.FsyncRequest) error Access(context.Context, *fine.RequestHeader, *fine.AccessRequest) error Create(context.Context, *fine.RequestHeader, *fine.CreateRequest) (*fine.CreateResponse, error) BatchForget(context.Context, *fine.RequestHeader, *fine.BatchForgetRequest) error Lseek(context.Context, *fine.RequestHeader, *fine.LseekRequest) (*fine.LseekResponse, error) }
Handler processes messages from a transport. Handler is passed to Serve, which will invoke methods as requests come in.
func Passthrough ¶
Passthrough creates a new Handler which passes through requests to the host filesystem. Requests are transformed relative to the provided root. Note that this isn't a chroot, and it's possible to read files in higher directives via symbolic links.
type Invoker ¶
type Invoker func(ctx context.Context, hdr *fine.RequestHeader, req fine.Request) (fine.Response, error)
Invoker is called by Middleware to complete requests.
type LazyHandler ¶
type LazyHandler struct {
// contains filtered or unexported fields
}
LazyHandler is a Handler which allows to defer setting of the real Handler implementation. The zero value is ready for use.
func (*LazyHandler) Access ¶
func (lh *LazyHandler) Access(ctx context.Context, h *fine.RequestHeader, req *fine.AccessRequest) error
func (*LazyHandler) BatchForget ¶
func (lh *LazyHandler) BatchForget(ctx context.Context, h *fine.RequestHeader, req *fine.BatchForgetRequest) error
func (*LazyHandler) Close ¶
func (lh *LazyHandler) Close() error
Close closes the LazyHandler and the inner handler, if set. The returned error will be propagated from the inner handler.
func (*LazyHandler) Create ¶
func (lh *LazyHandler) Create(ctx context.Context, h *fine.RequestHeader, req *fine.CreateRequest) (*fine.CreateResponse, error)
func (*LazyHandler) Flush ¶
func (lh *LazyHandler) Flush(ctx context.Context, h *fine.RequestHeader, req *fine.FlushRequest) error
func (*LazyHandler) Forget ¶
func (lh *LazyHandler) Forget(ctx context.Context, h *fine.RequestHeader, req *fine.ForgetRequest)
func (*LazyHandler) Fsync ¶
func (lh *LazyHandler) Fsync(ctx context.Context, h *fine.RequestHeader, req *fine.FsyncRequest) error
func (*LazyHandler) Fsyncdir ¶
func (lh *LazyHandler) Fsyncdir(ctx context.Context, h *fine.RequestHeader, req *fine.FsyncRequest) error
func (*LazyHandler) Getattr ¶
func (lh *LazyHandler) Getattr(ctx context.Context, h *fine.RequestHeader, req *fine.GetattrRequest) (*fine.AttrResponse, error)
func (*LazyHandler) Init ¶
func (lh *LazyHandler) Init(ctx context.Context) error
Init implements Handler. Init will forward the Init to the inner Handler whenever it is set.
func (*LazyHandler) Link ¶
func (lh *LazyHandler) Link(ctx context.Context, h *fine.RequestHeader, req *fine.LinkRequest) (*fine.EntryResponse, error)
func (*LazyHandler) Lookup ¶
func (lh *LazyHandler) Lookup(ctx context.Context, h *fine.RequestHeader, req *fine.LookupRequest) (*fine.EntryResponse, error)
func (*LazyHandler) Lseek ¶
func (lh *LazyHandler) Lseek(ctx context.Context, h *fine.RequestHeader, req *fine.LseekRequest) (*fine.LseekResponse, error)
func (*LazyHandler) Mkdir ¶
func (lh *LazyHandler) Mkdir(ctx context.Context, h *fine.RequestHeader, req *fine.MkdirRequest) (*fine.EntryResponse, error)
func (*LazyHandler) Mknod ¶
func (lh *LazyHandler) Mknod(ctx context.Context, h *fine.RequestHeader, req *fine.MknodRequest) (*fine.EntryResponse, error)
func (*LazyHandler) Open ¶
func (lh *LazyHandler) Open(ctx context.Context, h *fine.RequestHeader, req *fine.OpenRequest) (*fine.OpenedResponse, error)
func (*LazyHandler) Opendir ¶
func (lh *LazyHandler) Opendir(ctx context.Context, h *fine.RequestHeader, req *fine.OpenRequest) (*fine.OpenedResponse, error)
func (*LazyHandler) Read ¶
func (lh *LazyHandler) Read(ctx context.Context, h *fine.RequestHeader, req *fine.ReadRequest) (*fine.ReadResponse, error)
func (*LazyHandler) Readdir ¶
func (lh *LazyHandler) Readdir(ctx context.Context, h *fine.RequestHeader, req *fine.ReadRequest) (*fine.ReaddirResponse, error)
func (*LazyHandler) Readlink ¶
func (lh *LazyHandler) Readlink(ctx context.Context, h *fine.RequestHeader) (*fine.ReadlinkResponse, error)
func (*LazyHandler) Release ¶
func (lh *LazyHandler) Release(ctx context.Context, h *fine.RequestHeader, req *fine.ReleaseRequest) error
func (*LazyHandler) Releasedir ¶
func (lh *LazyHandler) Releasedir(ctx context.Context, h *fine.RequestHeader, req *fine.ReleaseRequest) error
func (*LazyHandler) Rename ¶
func (lh *LazyHandler) Rename(ctx context.Context, h *fine.RequestHeader, req *fine.RenameRequest) error
func (*LazyHandler) Rmdir ¶
func (lh *LazyHandler) Rmdir(ctx context.Context, h *fine.RequestHeader, req *fine.RmdirRequest) error
func (*LazyHandler) SetHandler ¶
func (lh *LazyHandler) SetHandler(ctx context.Context, h Handler) error
SetHandler configures LazyHandler to forward requests to the specified h. SetHandler may not be called after LazyHandler has been closed.
h.Init will immediately be called if the lazy handler has already been initialized.
func (*LazyHandler) Setattr ¶
func (lh *LazyHandler) Setattr(ctx context.Context, h *fine.RequestHeader, req *fine.SetattrRequest) (*fine.AttrResponse, error)
func (*LazyHandler) Symlink ¶
func (lh *LazyHandler) Symlink(ctx context.Context, h *fine.RequestHeader, req *fine.SymlinkRequest) (*fine.EntryResponse, error)
func (*LazyHandler) Unlink ¶
func (lh *LazyHandler) Unlink(ctx context.Context, h *fine.RequestHeader, req *fine.UnlinkRequest) error
func (*LazyHandler) Write ¶
func (lh *LazyHandler) Write(ctx context.Context, h *fine.RequestHeader, req *fine.WriteRequest) (*fine.WriteResponse, error)
type Middleware ¶
type Middleware interface { // HandleRequest handles an individual request. HandleRequest(ctx context.Context, hdr *fine.RequestHeader, req fine.Request, invoker Invoker) (fine.Response, error) }
Middleware hooks into requests.
func NewLoggingMiddleware ¶
func NewLoggingMiddleware(l log.Logger) Middleware
NewLoggingMiddleware returns a new logging middleware.
type Options ¶
type Options struct { // ConcurrencyLimit is the maximum number of concurrent requests a Server can // run. If ConcurrencyLimit is <= 0, it will obtain its default from // DefaultOptions. ConcurrencyLimit int // RequestTimeout will force a request to abort after a given amount of time. // 0 means to never time out. RequestTimeout time.Duration // Transport is the transport used to read and write requests. Server takes // ownership of the Transport after passing to New; do not close directly. Transport fine.Transport // Handler is used for handling individual requests. Handler Handler // Optional middleware to preprocess requests with. Middleware []Middleware }
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is a FINE server, which asynchronously handles requests from a transport by passing them to a Handler.
type UnimplementedHandler ¶
type UnimplementedHandler struct{}
UnimplementedHandler implements Handler and returns ErrorUnimplemented for all requests.
func (UnimplementedHandler) Access ¶
func (UnimplementedHandler) Access(context.Context, *fine.RequestHeader, *fine.AccessRequest) error
func (UnimplementedHandler) BatchForget ¶
func (UnimplementedHandler) BatchForget(context.Context, *fine.RequestHeader, *fine.BatchForgetRequest) error
func (UnimplementedHandler) Close ¶
func (UnimplementedHandler) Close() error
func (UnimplementedHandler) Create ¶
func (UnimplementedHandler) Create(context.Context, *fine.RequestHeader, *fine.CreateRequest) (*fine.CreateResponse, error)
func (UnimplementedHandler) Flush ¶
func (UnimplementedHandler) Flush(context.Context, *fine.RequestHeader, *fine.FlushRequest) error
func (UnimplementedHandler) Forget ¶
func (UnimplementedHandler) Forget(context.Context, *fine.RequestHeader, *fine.ForgetRequest)
func (UnimplementedHandler) Fsync ¶
func (UnimplementedHandler) Fsync(context.Context, *fine.RequestHeader, *fine.FsyncRequest) error
func (UnimplementedHandler) Fsyncdir ¶
func (UnimplementedHandler) Fsyncdir(context.Context, *fine.RequestHeader, *fine.FsyncRequest) error
func (UnimplementedHandler) Getattr ¶
func (UnimplementedHandler) Getattr(context.Context, *fine.RequestHeader, *fine.GetattrRequest) (*fine.AttrResponse, error)
func (UnimplementedHandler) Link ¶
func (UnimplementedHandler) Link(context.Context, *fine.RequestHeader, *fine.LinkRequest) (*fine.EntryResponse, error)
func (UnimplementedHandler) Lookup ¶
func (UnimplementedHandler) Lookup(context.Context, *fine.RequestHeader, *fine.LookupRequest) (*fine.EntryResponse, error)
func (UnimplementedHandler) Lseek ¶
func (UnimplementedHandler) Lseek(context.Context, *fine.RequestHeader, *fine.LseekRequest) (*fine.LseekResponse, error)
func (UnimplementedHandler) Mkdir ¶
func (UnimplementedHandler) Mkdir(context.Context, *fine.RequestHeader, *fine.MkdirRequest) (*fine.EntryResponse, error)
func (UnimplementedHandler) Mknod ¶
func (UnimplementedHandler) Mknod(context.Context, *fine.RequestHeader, *fine.MknodRequest) (*fine.EntryResponse, error)
func (UnimplementedHandler) Open ¶
func (UnimplementedHandler) Open(context.Context, *fine.RequestHeader, *fine.OpenRequest) (*fine.OpenedResponse, error)
func (UnimplementedHandler) Opendir ¶
func (UnimplementedHandler) Opendir(context.Context, *fine.RequestHeader, *fine.OpenRequest) (*fine.OpenedResponse, error)
func (UnimplementedHandler) Read ¶
func (UnimplementedHandler) Read(context.Context, *fine.RequestHeader, *fine.ReadRequest) (*fine.ReadResponse, error)
func (UnimplementedHandler) Readdir ¶
func (UnimplementedHandler) Readdir(context.Context, *fine.RequestHeader, *fine.ReadRequest) (*fine.ReaddirResponse, error)
func (UnimplementedHandler) Readlink ¶
func (UnimplementedHandler) Readlink(context.Context, *fine.RequestHeader) (*fine.ReadlinkResponse, error)
func (UnimplementedHandler) Release ¶
func (UnimplementedHandler) Release(context.Context, *fine.RequestHeader, *fine.ReleaseRequest) error
func (UnimplementedHandler) Releasedir ¶
func (UnimplementedHandler) Releasedir(context.Context, *fine.RequestHeader, *fine.ReleaseRequest) error
func (UnimplementedHandler) Rename ¶
func (UnimplementedHandler) Rename(context.Context, *fine.RequestHeader, *fine.RenameRequest) error
func (UnimplementedHandler) Rmdir ¶
func (UnimplementedHandler) Rmdir(context.Context, *fine.RequestHeader, *fine.RmdirRequest) error
func (UnimplementedHandler) Setattr ¶
func (UnimplementedHandler) Setattr(context.Context, *fine.RequestHeader, *fine.SetattrRequest) (*fine.AttrResponse, error)
func (UnimplementedHandler) Symlink ¶
func (UnimplementedHandler) Symlink(context.Context, *fine.RequestHeader, *fine.SymlinkRequest) (*fine.EntryResponse, error)
func (UnimplementedHandler) Unlink ¶
func (UnimplementedHandler) Unlink(context.Context, *fine.RequestHeader, *fine.UnlinkRequest) error
func (UnimplementedHandler) Write ¶
func (UnimplementedHandler) Write(context.Context, *fine.RequestHeader, *fine.WriteRequest) (*fine.WriteResponse, error)