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.

state.go 931 B

12345678910111213141516171819202122232425262728293031
  1. package state
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkgs/ioswitch/dag"
  4. "gitlink.org.cn/cloudream/common/utils/math2"
  5. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2"
  6. "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/ops2"
  7. )
  8. type IndexedStream struct {
  9. Stream *dag.StreamVar
  10. StreamIndex ioswitch2.StreamIndex
  11. }
  12. type GenerateState struct {
  13. Ft ioswitch2.FromTo
  14. DAG *ops2.GraphNodeBuilder
  15. // 为了产生所有To所需的数据范围,而需要From打开的范围。
  16. // 这个范围是基于整个文件的,且上下界都取整到条带大小的整数倍,因此上界是有可能超过文件大小的。
  17. StreamRange math2.Range
  18. IndexedStreams []IndexedStream
  19. UseEC bool // 是否使用纠删码
  20. UseSegment bool // 是否使用分段
  21. }
  22. func InitGenerateState(ft ioswitch2.FromTo) *GenerateState {
  23. return &GenerateState{
  24. Ft: ft,
  25. DAG: ops2.NewGraphNodeBuilder(),
  26. }
  27. }

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