smbFileWrapper.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package smbfs
  2. import (
  3. "io"
  4. "io/fs"
  5. "os"
  6. "github.com/hirochachacha/go-smb2"
  7. "imuslab.com/arozos/mod/filesystem/arozfs"
  8. )
  9. type smbfsFile struct {
  10. file *smb2.File
  11. }
  12. func NewSmbFsFile(wrappingFile *smb2.File) *smbfsFile {
  13. return &smbfsFile{
  14. file: wrappingFile,
  15. }
  16. }
  17. func (f *smbfsFile) Chdir() error {
  18. return arozfs.ErrOperationNotSupported
  19. }
  20. func (f *smbfsFile) Chmod(mode os.FileMode) error {
  21. return arozfs.ErrOperationNotSupported
  22. }
  23. func (f *smbfsFile) Chown(uid, gid int) error {
  24. return arozfs.ErrOperationNotSupported
  25. }
  26. func (f *smbfsFile) Close() error {
  27. return f.file.Close()
  28. }
  29. func (f *smbfsFile) Name() string {
  30. return f.file.Name()
  31. }
  32. func (f *smbfsFile) Read(b []byte) (n int, err error) {
  33. return f.file.Read(b)
  34. }
  35. func (f *smbfsFile) ReadAt(b []byte, off int64) (n int, err error) {
  36. return f.file.ReadAt(b, off)
  37. }
  38. func (f *smbfsFile) ReadDir(n int) ([]fs.DirEntry, error) {
  39. return []fs.DirEntry{}, arozfs.ErrOperationNotSupported
  40. }
  41. func (f *smbfsFile) Readdirnames(n int) (names []string, err error) {
  42. fi, err := f.file.Readdir(n)
  43. if err != nil {
  44. return []string{}, err
  45. }
  46. names = []string{}
  47. for _, i := range fi {
  48. names = append(names, i.Name())
  49. }
  50. return names, nil
  51. }
  52. func (f *smbfsFile) ReadFrom(r io.Reader) (n int64, err error) {
  53. return f.file.ReadFrom(r)
  54. }
  55. func (f *smbfsFile) Readdir(n int) ([]fs.FileInfo, error) {
  56. return f.file.Readdir(n)
  57. }
  58. func (f *smbfsFile) Seek(offset int64, whence int) (ret int64, err error) {
  59. return f.file.Seek(offset, whence)
  60. }
  61. func (f *smbfsFile) Stat() (fs.FileInfo, error) {
  62. return f.file.Stat()
  63. }
  64. func (f *smbfsFile) Sync() error {
  65. return f.file.Sync()
  66. }
  67. func (f *smbfsFile) Truncate(size int64) error {
  68. return f.file.Truncate(size)
  69. }
  70. func (f *smbfsFile) Write(b []byte) (n int, err error) {
  71. return f.file.Write(b)
  72. }
  73. func (f *smbfsFile) WriteAt(b []byte, off int64) (n int, err error) {
  74. return f.file.WriteAt(b, off)
  75. }
  76. func (f *smbfsFile) WriteString(s string) (n int, err error) {
  77. return f.file.WriteString(s)
  78. }