]> Sergey Matveev's repositories - btrtrc.git/blob - fs/filenode.go
fs: Use a new torrent file reader per handled request
[btrtrc.git] / fs / filenode.go
1 package torrentfs
2
3 import (
4         "context"
5
6         "github.com/anacrolix/fuse"
7         fusefs "github.com/anacrolix/fuse/fs"
8
9         "github.com/anacrolix/torrent"
10 )
11
12 type fileNode struct {
13         node
14         f *torrent.File
15 }
16
17 var _ fusefs.NodeOpener = fileNode{}
18
19 func (fn fileNode) Attr(ctx context.Context, attr *fuse.Attr) error {
20         attr.Size = uint64(fn.f.Length())
21         attr.Mode = defaultMode
22         return nil
23 }
24
25 func (fn fileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fusefs.Handle, error) {
26         return fileHandle{fn, fn.f}, nil
27 }