You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

dir_reader.go 800 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package vfs
  2. import "gitlink.org.cn/cloudream/jcs-pub/client/internal/mount/fuse"
  3. type FuseDirReader struct {
  4. allEntries []fuse.FsEntry
  5. nextReadIndex int
  6. }
  7. func newFuseDirReader(entries []fuse.FsEntry) *FuseDirReader {
  8. return &FuseDirReader{
  9. allEntries: entries,
  10. nextReadIndex: 0,
  11. }
  12. }
  13. func (r *FuseDirReader) HasNext() bool {
  14. return r.nextReadIndex < len(r.allEntries)
  15. }
  16. func (r *FuseDirReader) Next(n int) ([]fuse.FsEntry, error) {
  17. if r.nextReadIndex >= len(r.allEntries) {
  18. return nil, nil
  19. }
  20. if n > len(r.allEntries)-r.nextReadIndex {
  21. n = len(r.allEntries) - r.nextReadIndex
  22. }
  23. entries := make([]fuse.FsEntry, n)
  24. for i := 0; i < n; i++ {
  25. entries[i] = r.allEntries[r.nextReadIndex+i]
  26. }
  27. r.nextReadIndex += n
  28. return entries, nil
  29. }
  30. func (r *FuseDirReader) Close() {
  31. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。