shared

package
v2.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

AllowedTopics 定义了系统支持的所有文件共享操作主题

Functions

func HandleSearchFileSegmentRequestPubSub

func HandleSearchFileSegmentRequestPubSub(
	ctx context.Context,
	opt *fscfg.Options,
	db *database.DB,
	fs afero.Afero,
	nps *pubsub.NodePubSub,
	res *pubsub.Message,
)

HandleSearchFileSegmentRequestPubSub 处理检索共享文件请求 参数:

  • ctx: 上下文,用于控制操作的生命周期
  • opt: 文件系统配置选项
  • db: 数据库实例
  • fs: 文件系统接口
  • nps: 节点发布订阅系统实例
  • res: 收到的pubsub消息

func HandleSearchFileSegmentResponsePubSub

func HandleSearchFileSegmentResponsePubSub(
	ctx context.Context,
	res *pubsub.Message,
)

HandleSearchFileSegmentResponsePubSub 处理检索响应 参数:

  • ctx: 上下文,用于控制操作的生命周期
  • res: 收到的pubsub消息

func HandleSetFileSegmentRequestPubSub

func HandleSetFileSegmentRequestPubSub(
	ctx context.Context,
	opt *fscfg.Options,
	db *database.DB,
	fs afero.Afero,
	nps *pubsub.NodePubSub,
	res *pubsub.Message,
)

HandleSetFileSegmentRequestPubSub 处理设置文件片段共享状态的请求 参数:

  • ctx: 上下文对象,用于控制请求处理的生命周期
  • opt: 文件系统配置选项
  • db: 数据库实例
  • fs: 文件系统接口
  • nps: 节点发布订阅系统实例
  • res: 接收到的消息

func RegisterSharedPubsubProtocol

func RegisterSharedPubsubProtocol(lc fx.Lifecycle, input RegisterPubsubProtocolInput)

RegisterSharedPubsubProtocol 注册文件共享相关的PubSub协议处理器 参数:

  • lc: fx.Lifecycle 应用生命周期管理器
  • input: RegisterPubsubProtocolInput 注册所需的输入参数

func RequestSetFileSegmentPubSub

func RequestSetFileSegmentPubSub(
	ctx context.Context,
	host host.Host,
	nps *pubsub.NodePubSub,
	fileID string,
	pubkeyHash []byte,
	enableSharing bool,
) error

RequestSetFileSegmentPubSub 请求设置文件片段的共享状态 参数:

  • ctx: 上下文对象,用于控制请求的生命周期
  • host: libp2p网络主机实例
  • nps: 节点发布订阅系统实例
  • fileID: 要设置共享状态的文件ID
  • pubkeyHash: 文件所有者的公钥哈希
  • enableSharing: 是否启用共享

返回值:

  • error: 如果请求发送成功返回nil,否则返回错误信息

Types

type RegisterPubsubProtocolInput

type RegisterPubsubProtocolInput struct {
	fx.In

	Ctx  context.Context    // 全局上下文,用于管理整个应用的生命周期
	Opt  *fscfg.Options     // 文件存储配置选项
	DB   *database.DB       // 本地数据存储实例
	FS   afero.Afero        // 文件系统接口
	Host host.Host          // libp2p网络主机实例
	NPS  *pubsub.NodePubSub // 发布订阅系统
}

RegisterPubsubProtocolInput 定义了注册PubsubProtocol所需的输入参数

type SearchSubscription

type SearchSubscription struct {
	// contains filtered or unexported fields
}

SearchSubscription 定义检索订阅结构 用于管理文件检索的订阅状态和通信

func RequestSearchFileSegmentPubSub

func RequestSearchFileSegmentPubSub(
	ctx context.Context,
	host host.Host,
	nps *pubsub.NodePubSub,
	fileID string,
) (*SearchSubscription, error)

RequestSearchFileSegmentPubSub 发起检索文件请求 参数:

  • ctx: 上下文,用于控制操作的生命周期
  • host: libp2p主机实例,用于网络通信
  • nps: 节点发布订阅系统实例
  • fileID: 要检索的文件ID

返回值:

  • *SearchSubscription: 用于接收检索响应的订阅对象
  • error: 可能发生的错误

func (*SearchSubscription) Cancel

func (sub *SearchSubscription) Cancel()

Cancel 取消订阅 关闭done通道以通知相关goroutine停止工作

func (*SearchSubscription) Next

Next 返回订阅中的下一个检索响应 参数:

  • ctx: 上下文,用于控制操作的生命周期

返回值:

  • *pb.ResponseSearchFileSegmentPubSub: 检索响应数据
  • error: 可能发生的错误

type Topic

type Topic int

Topic 定义了文件共享操作的主题类型

const (
	PubSubSetFileSegmentRequestTopic     Topic = iota // 设置共享文件请求主题:用于设置文件的共享状态
	PubSubSearchFileSegmentRequestTopic               // 检索共享文件请求主题:用于发起文件检索
	PubSubSearchFileSegmentResponseTopic              // 检索共享文件响应主题:用于返回检索结果
)

定义文件共享操作的主题类型常量

func (Topic) String

func (t Topic) String() string

String 将Topic转换为对应的字符串表示 返回值:

  • string: 主题对应的字符串

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL