lapi

package module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2026 License: GPL-3.0 Imports: 12 Imported by: 0

README

Leither lapi

lapi package for the Leither project.

Installation

go get github.com/3and4/Leither/lapi

Documentation

Overview

backend.go

ibackend.go

imimei.go

lapi2.go

vars.go

Index

Constants

View Source
const (
	Request_AppVer  = "ver"
	Request_Author  = "author"
	Request_AppName = "app"
	Request_AppID   = "aid"
	Request_Entry   = "entry"
	Request_MID     = "mid" //内部必然有一个
	Request_Sid     = "sid" //内部必然有一个
	Request_NodeID  = "nid"
	Request_SidApp  = "sidapp" //应用sid,作者身份
	Request_MMRoot  = "mmroot" //应用对外根目录,由节点注入

	ApiVarNodeAppCode = "nodeappcode"
)
View Source
const (
	TFile = iota
	TDir
)
View Source
const (
	ApiVarVersion       = "ver"           //应用版本
	ApiVarCPU           = "cpu"           //获取cpu的状态
	ApiVarDisk          = "disk"          //获取cpu的状态
	ApiVarVirtualMemory = "virtualmemory" //获取虚拟内存的状态
	ApiVarMiMeiInfo     = "mminfo"        //弥媒信息
)
View Source
const (
	LeitherApp       = "Fc1BRTFafOGzq5P8KmkVJqwS2v2" //memo:leitherapp
	MExplorerID      = "1ZLw8a9HvMnlnDzvo9JtktjW_3j" //memo:mExplorer Leither mimei create -m mExplorer -e app -k l.key
	LeitherDoc       = "BWqzK1UxomhsLnxj6U1OZncvdux" //Leither mimei create -m leitherdocment -k l.key -a 1ZLw8a9HvMnlnDzvo9JtktjW_3j
	LeitherServiceID = "9QHDgCSdxWYPFyd4XxJz7DQasam" //系统应用LeitherService
	LeitherService2  = "x-zuVGwiGXZvq7q9FbojNldrjSD" //系统应用LeitherService2
)

系统弥媒id

Variables

This section is empty.

Functions

func GetArgs

func GetArgs() []any

func GetLocalPassport

func GetLocalPassport(port int, validPeriod int) (string, error)

GetLocalPassport 从本地节点获取通行证

func GetRequest

func GetRequest() map[string]string

func GetWriter

func GetWriter() io.Writer

func InitStubByUrl

func InitStubByUrl(stub any, url string)

提取出来,可以指定api的Stub使用

func ScorePairs2Members

func ScorePairs2Members(sps []ScorePair) []string

原来两处引用,现在只剩下一处了

Types

type AddrInfo

type AddrInfo struct {
	ID    string //ipfs中可以识别的id
	Addrs []string
}

type App

type App struct {
	//这个json标签可以去掉了
	ID      string //`json:"id"` //应用id
	Name    string //应用名称
	Author  string //开发者id
	Release string //release
	Last    string //last ver
}

应用

type AppDataStub added in v0.3.0

type AppDataStub struct {
	MMGetAppDataID    func(sid, aid, tp, owner, mark string, check bool) (appdataid string, err error)
	MMCreateAppData   func(sid, aid, tp, defOwner, mark string, right uint64) (did string, err error)
	MMOpenAppData     func(sid, aid, tp, owner, ver, mark string) (mmsid string, err error)
	MMOpenAppDataApp  func(sid, aid, ver, mark string) (mmsid string, err error)
	MMOpenAppDataNode func(sid, aid, ver, mark string) (mmsid string, err error)
	MMOpenAppDataUser func(sid, aid, owner, ver, mark string) (mmsid string, err error)
}

AppDataStub 应用数据操作(Wave B appdata:自 api.AppDataStub 开放下沉)

type AppStub added in v0.3.0

type AppStub struct {
	// RunMApp 调用应用的指定入口(app 由运行上下文决定)
	RunMApp func(entry string, request map[string]string, args []any, opt ...string) (ret any, err error)
}

AppStub 应用操作(Wave B lapp:仅开放 RunMApp 应用间调用; UploadApp/UploadAppfile/UninstallApp 供应链写操作、RunScript 任意脚本执行,评审不开放)

type AuthStub

type AuthStub struct {
	LoginWithPPT func(strPPT string) (*LoginReply, error)
	Logout       func(sid, info string) error
	// —— 以下自 api.AuthStub2 开放下沉(Wave B auth2,评审通过)——
	SetUserInfo  func(sid string, param map[string]string) error
	SignPPT      func(sid string, req *SignPPTRequest) (string, error)
	Sign         func(sid string, req *SignRequest) (sig []byte, err error)
	PPTStr2Map   func(strPPT string) (map[string]string, error)
	SignInfo2Map func(strInfo string) (map[string]string, error)
}

type BEAppDataStub

type BEAppDataStub struct {
	BEOpenAppDataNode func(string, string) (mmsid string, err error)
	BEOpenAppDataApp  func(string, string) (mmsid string, err error)
	BEMMSync          func(strdhts string, mid string, param map[string]string) error
	BELoginAsApp      func() (sid string, err error)
	BESignPPT         func(info map[string]string, period int) (string, error)
	BESign            func(info map[string]string) (string, error)
	// Deprecated: 2026-09-03 冻结(冻而不废):对外不再演进、禁止新增依赖;
	// 删除走观测驱动,见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与
	// planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。
	BELoginAsAuthor func() (sid string, err error)
}

BEAppDataStub

这里面放的是应用中后端数据操作的api接口。

一、BEOpenAppDataNode(ver, mark string) (mmsid string, err error) 简介:

这是应用在节点上的打开节点的弥媒

参数:

ver,弥媒的版本,cur表示当前的可写版本,last表示最后一次备份的版本

返回值:

mmsid 弥媒的数据id,可用于数据库相关的api操作

二、BEOpenAppDataApp(ver, mark string) (mmsid string, err error) 简介:

打开节点的弥媒

参数:

ver,弥媒的版本,cur表示当前的可写版本,last表示最后一次备份的版本

返回值:

mmsid 弥媒的数据id,可用于数据库相关的api操作

BELoginAsAuthor()(sid string, err error)

简介:

以作者作者身份登陆

返回值:

Sessionid,可用于所有需要会话id的api,执行的时候代表作者身份

【冻结标记 2026-09-03】DEPRECATED(冻而不废):对外不再演进、禁止新增依赖; 删除走观测驱动,见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与 planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。

type BEWebStub added in v0.2.0

type BEWebStub struct {
	BEReadFile func(name string, ops ...string) ([]byte, error)
}

BEWebStub 是 IBEWeb 的宿主接线结构(函数字段,容器进程内直调)。

type BackEndStub

type BackEndStub struct {
	*LApiStub
	*SessionStub
	*BEAppDataStub
	*LogStub
	*BEWebStub
}

func (*BackEndStub) BELoginAsApp

func (s *BackEndStub) BELoginAsApp() (sid string, err error)

BELoginAsApp 以应用身份登录

func (*BackEndStub) BELoginAsAuthor

func (s *BackEndStub) BELoginAsAuthor() (sid string, err error)

BELoginAsAuthor 以作者身份登录 Deprecated: 2026-09-03 冻结(冻而不废):对外不再演进、禁止新增依赖; 接口接线不变、零行为变更,删除走观测驱动,见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与 planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。

func (*BackEndStub) BEMMSync

func (s *BackEndStub) BEMMSync(strdhts string, mid string, param map[string]string) error

BEMMSync 同步弥媒数据

func (*BackEndStub) BEOpenAppDataApp

func (s *BackEndStub) BEOpenAppDataApp(ver, mark string) (mmsid string, err error)

BEOpenAppDataApp 打开应用的弥媒数据

func (*BackEndStub) BEOpenAppDataNode

func (s *BackEndStub) BEOpenAppDataNode(ver, mark string) (mmsid string, err error)

BEOpenAppDataNode 打开节点的弥媒数据

func (*BackEndStub) BEReadFile added in v0.2.0

func (s *BackEndStub) BEReadFile(name string, ops ...string) ([]byte, error)

BEReadFile 读取应用 mmroot 文件并可选预处理(nil 安全:未接线返回错误)。

func (*BackEndStub) BESign

func (s *BackEndStub) BESign(info map[string]string) (string, error)

BESign 签名操作

func (*BackEndStub) BESignPPT

func (s *BackEndStub) BESignPPT(info map[string]string, period int) (string, error)

BESignPPT 签名PPT文档

func (*BackEndStub) CreateSession

func (s *BackEndStub) CreateSession() (sid string)

CreateSession 创建一个session并返回id 注意:签名无 error 返回值,未接线时返回空 sid(调用方可判 sid==""); 其余可返回 error 的方法一律显式报"未接线"(D1)。

func (*BackEndStub) Critical

func (s *BackEndStub) Critical(format string, v ...interface{})

Critical 记录严重级别日志

func (*BackEndStub) Debug

func (s *BackEndStub) Debug(format string, v ...interface{})

Debug 记录调试级别日志

func (*BackEndStub) Error

func (s *BackEndStub) Error(format string, v ...interface{})

Error 记录错误级别日志

func (*BackEndStub) Info

func (s *BackEndStub) Info(format string, v ...interface{})

Info 记录信息级别日志

func (*BackEndStub) ReleaseSession

func (s *BackEndStub) ReleaseSession(sid string) error

ReleaseSession 释放指定的session

func (*BackEndStub) SessionDelete

func (s *BackEndStub) SessionDelete(sid, key string) error

SessionDelete 删除session中指定key的值

func (*BackEndStub) SessionGet

func (s *BackEndStub) SessionGet(sid, key string) (value any, err error)

SessionGet 获取session中指定key的值

func (*BackEndStub) SessionSet

func (s *BackEndStub) SessionSet(sid, key string, value any) error

SessionSet 设置session中指定key的值

func (*BackEndStub) Trace

func (s *BackEndStub) Trace(format string, v ...interface{})

Trace 记录跟踪级别日志

func (*BackEndStub) Warn

func (s *BackEndStub) Warn(format string, v ...interface{})

Warn 记录警告级别日志

type DNSStub added in v0.3.0

type DNSStub struct {
	SetDomain  func(sid, domain string, info map[string]string) error
	DelDomain  func(sid, domain string) error
	ShowDomain func(sid string) ([]string, error)
	SetRoute   func(sid, path, target string) error
	DelRoute   func(sid, path string) error
	ShowRoute  func(sid string) (map[string]string, error)
}

DNSStub 域名与路由配置(Wave B net_dns:自 api.DNSStub 开放下沉)

type DagNodeData

type DagNodeData = []byte

定义成二进制流

type DagStat

type DagStat struct {
	Cid       string `json:",omitempty"`
	Size      uint64 `json:",omitempty"`
	NumBlocks uint64 `json:",omitempty"`
}

DagStat is a dag stat command response

type DagStats

type DagStats struct {
	RedundantSize uint64     `json:"-"`
	UniqueBlocks  int        `json:",omitempty"`
	TotalSize     uint64     `json:",omitempty"`
	DagStatsArray []*DagStat `json:"DagStats,omitempty"`
}

type DagStub added in v0.3.0

type DagStub struct {
	DagGet  func(sid, ps string) (DagNodeData, error)
	DagStat func(sid, ps string) (*DagStats, error)
}

DagStub DAG 查询(Wave B net_ipfs:自 api.DagStub 开放下沉)

type DhtReply

type DhtReply struct {
	DhtName string
	Info    string
}

type FVPair

type FVPair struct {
	Field string
	Value any
}

type FileInfo

type FileInfo struct {
	FName    string      // base name of the file
	FSize    int64       // length in bytes for regular files; system-dependent for others
	FModTime time.Time   // modification time
	FIsDir   bool        // abbreviation for Mode().IsDir()
	FMode    os.FileMode // mode
	FID      string      //文件id
}

func (FileInfo) Info

func (fi FileInfo) Info() (os.FileInfo, error)

func (FileInfo) IsDir

func (fi FileInfo) IsDir() bool

func (FileInfo) ModTime

func (fi FileInfo) ModTime() time.Time

func (FileInfo) Mode

func (fi FileInfo) Mode() os.FileMode

func (FileInfo) Name

func (fi FileInfo) Name() string

func (FileInfo) Size

func (fi FileInfo) Size() int64

func (FileInfo) Sys

func (fi FileInfo) Sys() interface{}

func (FileInfo) Type

func (fi FileInfo) Type() os.FileMode

兼容目录DirEntry

type FilesStub

type FilesStub struct {
	FilesCopy  func(sid, src, dst string, flush bool) error
	FilesLs    func(sid, ps string) ([]LsLink, error)
	FilesCheck func(sid, ps string, sync bool) error
	FilesMkdir func(sid, ps string, flush bool) error
	FilesRm    func(sid, ps string, recursive, flush bool) error
	FilesMv    func(sid, src, dst string, flush bool) error
	FilesFlush func(sid, ps string) (string, error)
	FilesStat  func(sid, ps string) (*StatInfo, error)
}

type IAppData added in v0.3.0

type IAppData interface {
	MMGetAppDataID(sid, aid, tp, owner, mark string, check bool) (appdataid string, err error)
	MMCreateAppData(sid, aid, tp, defOwner, mark string, right uint64) (did string, err error)
	MMOpenAppData(sid, aid, tp, owner, ver, mark string) (mmsid string, err error)
	MMOpenAppDataApp(sid, aid, ver, mark string) (mmsid string, err error)
	MMOpenAppDataNode(sid, aid, ver, mark string) (mmsid string, err error)
	MMOpenAppDataUser(sid, aid, owner, ver, mark string) (mmsid string, err error)
}

IAppData 应用数据接口(Wave B appdata:自 api.IAppData 开放下沉)

type IAuth

type IAuth interface {
	LoginWithPPT(strPPT string) (*LoginReply, error)
	Logout(sid, info string) error
	// —— 以下自 api.IAuth 开放下沉(Wave B auth2,评审通过)——
	// SetUserInfo 设置当前会话用户的公开信息
	SetUserInfo(sid string, param map[string]string) error
	// SignPPT 以会话用户身份签名 PPT(req.Period 单位:分钟,与服务端实现一致)
	SignPPT(sid string, req *SignPPTRequest) (string, error)
	// Sign 以会话用户身份签名消息(F4b 结构化请求;盲签裸 message 入口已移除)
	Sign(sid string, req *SignRequest) (sig []byte, err error)
	// PPTStr2Map 将 PPT 字符串解析为 Map(纯解析,无状态)
	PPTStr2Map(strPPT string) (map[string]string, error)
	// SignInfo2Map 将签名信息字符串解析为 Map(纯解析,无状态)
	SignInfo2Map(strInfo string) (map[string]string, error)
}

IAuth 接口定义了认证相关的操作方法

type IBEAppData

type IBEAppData interface {
	// BEOpenAppDataNode 以节点身份打开应用数据区域
	// 节点身份具有可读可写权限,适用于节点级别的数据管理
	// 如果数据区域不存在会自动创建
	// ver: 数据版本("cur"当前版本,"last"备份版本)
	// mark: 数据区域标记
	// 返回: 弥媒数据ID,可用于后续数据库操作
	BEOpenAppDataNode(ver, mark string) (mmsid string, err error)

	// BEOpenAppDataApp 以应用作者身份打开应用数据区域
	// 应用作者身份具有可读可写权限,适用于应用级别的数据管理
	// 如果数据区域不存在会自动创建
	// ver: 数据版本("cur"当前版本,"last"备份版本)
	// mark: 数据区域标记
	// 返回: 弥媒数据ID,可用于后续数据库操作
	BEOpenAppDataApp(ver, mark string) (mmsid string, err error)

	// BEMMSync 同步弥媒数据到DHT网络
	// strdhts: DHT网络标识
	// mid: 弥媒ID
	// param: 同步参数
	BEMMSync(strdhts string, mid string, param map[string]string) error

	// BELoginAsApp 以应用身份登录
	// 返回会话ID,可用于需要会话的API操作
	BELoginAsApp() (sid string, err error)

	// BESignPPT 签名PPT文档
	// info: 签名信息
	// period: 有效期(分钟,T1 F2 全表面统一)
	// 返回: 签名的PPT字符串
	BESignPPT(info map[string]string, period int) (string, error)

	// BESign 签名操作
	// info: 签名信息
	// 返回: 签名结果字符串
	BESign(info map[string]string) (string, error)

	// BELoginAsAuthor 以作者身份登录
	// 返回会话ID,可用于需要会话的API操作
	// Deprecated: 2026-09-03 冻结(冻而不废):对外不再演进、禁止新增依赖;
	// 接口接线不变、零行为变更,删除走观测驱动(节点侧调用日志打点确认无外部调用后废弃),
	// 见 docs/KEY_AUTH_MECHANISM_AUDIT.md §2 F4 与
	// planning-artifacts/milestone-2026-09/T1/f4-belogin-author-freeze-2026-09-02.md。
	BELoginAsAuthor() (sid string, err error)
}

type IBEWeb added in v0.2.0

type IBEWeb interface {
	// BEReadFile 读取应用 mmroot 下文件并返回最终内容。
	// name: mmroot 下相对路径(如 index.html、css/theme.css)。
	// ops: 预处理操作(可多个,节点按内部固定顺序应用);空=原始读;
	//      含 "web" = 网页可服务化流水线(css-inline + link-rewrite,仅 html 生效);
	//      未知操作名返回错误。
	BEReadFile(name string, ops ...string) ([]byte, error)
}

IBEWeb 定义后端 web 内容服务 API(mmroot 文件读取 + 网页预处理)。

type IBackEnd

type IBackEnd interface {
	ISession
	IBEAppData
	ILog
	IBEWeb
}

后端专用

type IDNS added in v0.3.0

type IDNS interface {
	SetDomain(sid, domain string, info map[string]string) error
	DelDomain(sid, domain string) error
	ShowDomain(sid string) ([]string, error)
	SetRoute(sid, path, target string) error
	DelRoute(sid, path string) error
	ShowRoute(sid string) (map[string]string, error)
}

IDNS 域名与路由配置接口(Wave B net_dns:自 api.IDNS 开放下沉)

type IDag added in v0.3.0

type IDag interface {
	DagGet(sid, ps string) (DagNodeData, error)
	DagStat(sid, ps string) (*DagStats, error)
}

IDag DAG 查询接口(Wave B net_ipfs:自 api.IDag 开放下沉)

type IFilesStub

type IFilesStub interface {
	FilesCopy(sid, src, dst string, flush bool) error
	FilesLs(sid, ps string) ([]LsLink, error)
	FilesCheck(sid, ps string, sync bool) error
	FilesMkdir(sid, ps string, flush bool) error
	FilesRm(sid, ps string, recursive, flush bool) error
	FilesMv(sid, src, dst string, flush bool) error
	FilesFlush(sid, ps string) (string, error)
	FilesStat(sid, ps string) (*StatInfo, error)
}

type IIpfsNode added in v0.3.0

type IIpfsNode interface {
	INOpen(sid, ps string, level int) ([]byte, error)
	INGetData(sid, ps string, start int64, count int) ([]byte, error)
}

IIpfsNode IPFS 节点数据读取接口(Wave B net_ipfs:自 api.IIpfsNode 开放下沉)

type ILApp

type ILApp interface {
	RunMApp(entry string, request map[string]string, args []any, opt ...string) (ret any, err error)
}

ILApp 应用调用接口(Wave B lapp:仅开放 RunMApp 应用间组合; UploadApp/UploadAppfile/UninstallApp 供应链写操作评审不开放,保留在 api.ILApp 节点侧)

type ILog

type ILog interface {
	// Trace 记录跟踪级别日志
	Trace(format string, v ...interface{})

	// Debug 记录调试级别日志
	Debug(format string, v ...interface{})

	// Info 记录信息级别日志
	Info(format string, v ...interface{})

	// Warn 记录警告级别日志
	Warn(format string, v ...interface{})

	// Error 记录错误级别日志
	Error(format string, v ...interface{})

	// Critical 记录严重级别日志
	Critical(format string, v ...interface{})
}

ILogStub 接口定义了日志操作的所有方法

type IMDb

type IMDb interface {
	Begin(mmsid string, timeout int) error
	Commit(mmsid string) error
	Rollback(mmsid string) error
	GetLastSeq(mmsid string) (uint64, error)
	Set(mmsid, key string, value any) error
	Get(mmsid, key string) (any, error)
	Del(mmsid string, key ...string) (int64, error)
	Incr(mmsid, key string) (int64, error)
	IncrBy(mmsid, key string, delta int64) (int64, error)
	Strlen(mmsid, key string) (int64, error)
	Hmclear(mmsid string, key ...string) (int64, error)
	Hclear(mmsid string, key string) (int64, error)
	Hdel(mmsid, key string, field ...string) (int64, error)
	Hlen(mmsid, key string) (int64, error)
	Hset(mmsid, key, field string, value any) (int64, error)
	Hget(mmsid, key, field string) (any, error)
	Hmget(mmsid, key string, fields ...string) ([]any, error)
	Hmset(mmsid, key string, values ...FVPair) error
	Hgetall(mmsid, key string) ([]FVPair, error)
	Hkeys(mmsid, key string) ([]string, error)
	Hscan(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
	Hrevscan(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
	HincrBy(mmsid, key, field string, delta int64) (ret int64, err error)
	Lpush(mmsid, key string, value ...any) (int64, error)
	Lpop(mmsid, key string) (any, error)
	Rpush(mmsid, key string, value ...any) (int64, error)
	Rpop(mmsid, key string) (any, error)
	Lrange(mmsid, key string, start, stop int32) ([]any, error)
	Lclear(mmsid, key string) (int64, error)
	Lmclear(mmsid string, keys ...string) (int64, error)
	Lindex(mmsid, key string, index int32) (any, error)
	Llen(mmsid, key string) (int64, error)
	Lset(mmsid, key string, index int32, value any) error
	Zadd(mmsid, key string, args ...ScorePair) (int64, error)
	Zaddwithseq(mmsid, key string, members ...string) (ret int64, err error)
	Zcard(mmsid, key string) (int64, error)
	Zcount(mmsid, key string, mins, maxs int64) (int64, error)
	Zrem(mmsid, key string, members ...string) (int64, error)
	Zscore(mmsid, key, member string) (int64, error)
	Zrank(mmsid, key, member string) (int64, error)
	Zrange(mmsid, key string, start, stop int) ([]ScorePair, error)
	Zrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
	Zremrangebyscore(mmsid, key string, mins, maxs int64) (int64, error)
	Zrevrange(mmsid, key string, start, stop int) (ret []ScorePair, err error)
	Zrevrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) (ret []ScorePair, err error)
	Zmclear(mmsid string, key ...string) (int64, error)
	Zclear(mmsid, key string) (int64, error)
	ZincrBy(mmsid, key string, delta int64, member string) (int64, error)
	Sadd(mmsid, key string, args ...string) (int64, error)
	Scard(mmsid, key string) (int64, error)
	Sclear(mmsid, key string) (int64, error)
	Sdiff(mmsid string, keys ...string) ([]string, error)
	Sinter(mmsid string, keys ...string) ([]string, error)
	Smclear(mmsid string, key ...string) (int64, error)
	Smembers(mmsid, key string) ([]string, error)
	Srem(mmsid, key string, m string) (int64, error)
	Sunion(mmsid string, keys ...string) ([]string, error)
	Scan(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)
	MMSyncData(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)
	CheckIntegrity(mmsid string, dataType uint8, key string, bRepair bool) error
}

MDbStub接口定义

type IMFile

type IMFile interface {
	// MFOpenByPath 通过路径打开文件
	// 参数: sid-会话ID, mid-弥媒ID, path-文件路径, flag-打开标志
	// 返回值: 文件会话ID,用于后续文件操作
	MFOpenByPath(sid, mid, path string, flag int) (string, error)

	// MFOpenMacFile 通过文件ID打开Mac文件
	// 参数: sid-会话ID, mid-弥媒ID, fileid-文件ID
	// 返回值: 文件会话ID
	MFOpenMacFile(sid, mid, fileid string) (string, error)

	// MFOpenTempFile 创建并打开临时文件
	// 参数: sid-会话ID
	// 返回值: 临时文件会话ID
	MFOpenTempFile(sid string) (string, error)

	// MFPath2TempID 将本地路径转换为临时文件ID
	// 参数: sid-会话ID, localpath-本地文件路径
	// 返回值: 临时文件ID
	MFPath2TempID(sid, localpath string) (string, error)

	// MFLocal2MacFile 将本地文件转换为Mac文件格式
	// 参数: sid-会话ID, mid-弥媒ID, ps-本地文件路径
	// 返回值: 转换后的Mac文件ID
	// 说明: 转换后的Mac文件存储在mac目录中,文件名为hash值
	MFLocal2MacFile(sid, mid, ps string) (string, error)

	// MFTemp2MacFile 将临时文件转换为Mac文件
	// 参数: fsid-文件会话ID, mid-弥媒ID
	// 返回值: 转换后的Mac文件ID
	// 说明: 转换后的Mac文件存储在mac目录中,文件名为hash值
	MFTemp2MacFile(fsid, mid string) (string, error)

	// MFTemp2Ipfs 将临时文件转换为IPFS文件
	// 参数: fsid-文件会话ID, mid-弥媒ID
	// 返回值: 转换后的IPFS CID
	// 说明: 转换后的IPFS文件存储在系统的IPFS仓库中
	MFTemp2Ipfs(fsid, mid string) (string, error)

	// MFTemp2Files 将临时文件转换为Files系统文件
	// 参数: fsid-文件会话ID, psfiles-目标路径
	// 返回值: 转换后的CID
	// 说明: 转换后的文件存储在files文件系统的.mm目录中
	MFTemp2Files(fsid, ps string) (string, error)

	// MFTruncate 截断文件到指定大小
	// 参数: fsid-文件会话ID, size-目标大小
	MFTruncate(fsid string, size int64) error

	// MFSetObject 将对象序列化写入文件
	// 参数: fsid-文件会话ID, obj-要写入的对象
	MFSetObject(fsid string, obj any) error

	// MFGetObject 从文件中读取并反序列化对象
	// 参数: fsid-文件会话ID
	// 返回值: 反序列化后的对象
	// 注意(B10 契约): 返回 map 的键类型随执行模式变化——local(hprose RPC)为
	// map[interface{}]interface{},container(json /entry)为 map[string]interface{};
	// 应用必须做键类型归一(fmt.Sprint(key) 或显式转换),勿直接断言 map[string]any。
	MFGetObject(fsid string) (any, error)

	// MFSetData 在文件指定位置写入数据
	// 参数: fsid-文件会话ID, data-要写入的数据, start-起始位置
	// 返回值: 实际写入的字节数
	// 说明: start为正表示从头部偏移,start为负表示从尾部偏移
	MFSetData(fsid string, data []byte, start int64) (count int, err error)

	// MFGetData 从文件指定位置读取数据
	// 参数: fsid-文件会话ID, start-起始位置, count-读取字节数
	// 返回值: 读取的数据
	// 说明: start为正表示从头部偏移,start为负表示从尾部偏移
	MFGetData(fsid string, start int64, count int) ([]byte, error)

	// MFGetSize 获取文件大小
	// 参数: fsid-文件会话ID
	// 返回值: 文件大小
	MFGetSize(fsid string) (int64, error)

	// MFStat 获取文件信息
	// 参数: fsid-文件会话ID
	// 返回值: 文件信息结构
	MFStat(fsid string) (*FileInfo, error)

	// MFIsExist 检查文件是否存在
	// 参数: fsid-文件会话ID, fileid-文件ID
	// 返回值: 文件是否存在
	MFIsExist(fsid, fileid string) (bool, error)

	// MFReaddir 读取目录内容
	// 参数: fsid-文件会话ID, count-读取条目数
	// 返回值: 目录条目列表
	MFReaddir(fsid string, count int) ([]*FileInfo, error)

	// MFGetMimeType 获取文件MIME类型
	// 参数: fsid-文件会话ID
	// 返回值: MIME类型字符串
	MFGetMimeType(fsid string) (string, error)

	// MFSetCid 设置文件的IPFS CID
	// 参数: sid-会话ID, mid-弥媒ID, cid-IPFS CID
	// 返回值: 设置后的文件ID
	MFSetCid(sid, mid, cid string) (string, error)
}

IMFile 接口定义了弥媒文件操作的核心功能 该接口提供了对弥媒中文件的完整生命周期管理,包括打开、读写、转换、查询等操作 所有文件操作都通过会话ID进行权限控制和状态管理

弥媒文件存储机制: - 备份版本:备份后会生成数字版本号,对应两种数据类型:

  • mac文件:保存在mac目录中,文件名为文件hash转化成的字符串 (PATH_MacFILE="mac")
  • ipfs文件:保存在系统的ipfs文件仓库中

- 未备份版本:

  • mac文件:保存在mid目录中 (PATH_MIDFILE="mid")
  • ipfs文件:保存在files文件系统的.mm目录中 (Path_Files_MM="/.mm/")

- 版本信息存储在Redis数据库中,通过GetVerInfo等函数管理

type IMiMei

type IMiMei interface {
	IMDb
	IMFile
	IAppData //应用数据(Wave B appdata 开放下沉)

	// MMCreate 创建新的弥媒对象
	// 参数: sid-会话ID, appid-应用ID, ext-扩展标识, mark-标记字符串, tp-弥媒类型, right-权限位掩码
	// 返回值: mid-新创建的弥媒ID
	MMCreate(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)

	// MMOpen 打开指定版本的弥媒
	// 参数: sid-会话ID, mid-弥媒ID, ver-版本号(空字符串表示最新版本), opt-可选参数
	// 返回值: 会话句柄,用于后续操作
	MMOpen(sid, mid, ver string, opt ...string) (string, error)

	// MMOpenUrl 通过URL路径打开弥媒
	// 参数: sid-会话ID, ps-URL路径
	// 返回值: 会话句柄
	MMOpenUrl(sid, ps string) (string, error)

	// MMClose 关闭弥媒会话
	// 参数: mmsid-弥媒会话ID
	MMClose(mmsid string) error

	// MMSetRight 设置弥媒成员权限
	// 参数: sid-会话ID, mid-弥媒ID, member-成员标识, right-权限位掩码
	MMSetRight(sid, mid, member string, right uint64) error

	// MMGetRight 获取成员对弥媒的权限
	// 参数: sid-会话ID, mmid-弥媒ID, uid-用户ID
	// 返回值: right-权限位掩码
	MMGetRight(sid, mmid, uid string) (right uint64, err error)

	// MMBackup 创建弥媒快照备份
	// 参数: sid-会话ID, mid-弥媒ID, memo-备份备注信息, opt-可选参数
	// 返回值: 备份版本号
	MMBackup(sid, mid, memo string, opt ...string) (string, error)

	// MMRestore 从指定版本恢复弥媒
	// 参数: sid-会话ID, mid-弥媒ID, ver-要恢复的版本号
	MMRestore(sid, mid, ver string) error

	// MMDelVers 删除指定版本
	// 参数: sid-会话ID, mid-弥媒ID, vers-要删除的版本号列表
	// 返回值: 删除的版本数量
	MMDelVers(sid, mid string, vers ...string) (int64, error)

	// MMRelease 发布指定版本
	// 参数: sid-会话ID, mid-弥媒ID, ver-要发布的版本号
	// 返回值: 发布后的版本标识
	MMRelease(sid, mid, ver string) (string, error)

	// MMAddRef 为弥媒添加文件引用
	// 参数: sid-会话ID, mid-弥媒ID, fileids-要引用的文件ID列表
	// 返回值: 成功添加的引用数量
	MMAddRef(sid, mid string, fileids ...string) (int, error)

	// MMDelRef 删除弥媒的文件引用
	// 参数: sid-会话ID, mid-弥媒ID, fileids-要删除引用的文件ID列表
	// 返回值: 成功删除的引用数量
	MMDelRef(sid, mid string, fileids ...string) (int, error)

	// MMGetRef 获取指定版本的引用关系
	// 参数: sid-会话ID, mid-弥媒ID, ver-版本号
	// 返回值: ret-文件引用关系映射
	MMGetRef(sid, mid, ver string) (ret Refs, err error)

	// MMGetRefs 获取多个版本的引用关系
	// 参数: sid-会话ID, mid-弥媒ID, vers-版本号列表
	// 返回值: 各版本的引用关系映射
	MMGetRefs(sid, mid string, vers ...string) (MiMeiRefs, error)

	// MMSum 计算弥媒的摘要信息
	// 参数: sid-会话ID, mid-弥媒ID, ver-版本号, tp-摘要类型
	// 返回值: 摘要字符串
	MMSum(sid, mid, ver, tp string) (string, error)

	// MiMeiIsProvider 检查当前节点是否是指定弥媒的提供者(本地查询,不走网络)
	MiMeiIsProvider(sid, mid string) (bool, error)

	// MFLs 查询弥媒文件系统目录(针对 ipfs 文件系统路径)
	// 注意(B18 契约): 返回 LsLink.Type 为 unixfs 枚举——文件=2(TFile)/目录=1;
	// 与 FilesLs(mfs 枚举:文件=0/目录=1)不一致,应用须按 API 分别处理。
	MFLs(sid, ps string) ([]LsLink, error)

	// MFCopy 弥媒文件系统内复制
	MFCopy(sid, src, dst string, bFlush, bForce bool) error

	// MFMkdir 弥媒文件系统建目录
	MFMkdir(sid, ps string, flush bool) error
}

IMiMei 接口定义了弥媒相关的操作方法 弥媒是Leither平台中的核心数据对象,支持版本控制、权限管理、备份恢复等功能 该接口提供了对弥媒对象的完整生命周期管理

type IMsg added in v0.3.0

type IMsg interface {
	SendMsg(sid string, msg *Message) error
	ReadMsg(sid string) ([]*Message, error)
	PullMsg(sid string, timeout int) (*Message, error)
}

IMsg 消息接口(Wave B msg:自 api.IMsg 开放下沉)

type INet

type INet interface {
	IFilesStub
	IDNS      //域名与路由(Wave B 开放)
	ISwarm    //节点网络只读 4 方法(Wave B 开放;写操作不开放)
	IIpfsNode //IPFS 节点数据读取(Wave B 开放)
	IDag      //DAG 查询(Wave B 开放)
	// IpfsAdd 添加本地文件到 IPFS(Wave B 开放)
	IpfsAdd(sid, ps string) (string, error)
}

INetStub 接口定义了网络相关的操作方法

type IRPC

type IRPC interface {
	IAuth   //认证部分
	IVarAct //封装了大批Api
	IMiMei  //弥媒
	INet    //网络部分	TunnelStub,	DNSStub,NodeStub
}

跨节点获取的api,通过rpc方式获取生成

type ISession

type ISession interface {
	// CreateSession 创建一个session并返回id
	CreateSession() (sid string)

	// SessionSet 设置session中指定key的值
	SessionSet(sid, key string, value any) error

	// SessionGet 获取session中指定key的值
	SessionGet(sid, key string) (value any, err error)

	// SessionDelete 删除session中指定key的值
	SessionDelete(sid, key string) error

	// ReleaseSession 释放指定的session
	ReleaseSession(sid string) error
}

ISession 接口定义了Session操作的所有方法

type IStat added in v0.3.0

type IStat interface {
	GetUserMids(sid, uid string, start int64, count int) ([]ScorePair, error)
	GetMiMeiStat(sid, mid string) (stats MiMeiStats, err error)
}

IStat 状态查询接口(Wave B stat:自 api.IStat 开放下沉)

type ISwarm added in v0.3.0

type ISwarm interface {
	SwarmAddrs(sid string, pids ...string) (map[string][]string, error)
	SwarmLocal(sid string) ([]string, error)
	SwarmListen(sid string) ([]string, error)
	SwarmPeers(sid string) ([]string, error)
}

ISwarm 节点网络只读查询接口(Wave B net_swarm:仅开放只读方法, Connect/Disconnect/Filters* 不对 MApp 开放)

type IVarAct

type IVarAct interface {
	GetVar(sid, name string, args ...string) (any, error)
	Act(sid, name string, args ...string) (any, error)
	GetGobVar(sid, name string, args ...string) ([]byte, error)
}

type IpfsNodeStub added in v0.3.0

type IpfsNodeStub struct {
	INOpen    func(sid, ps string, level int) ([]byte, error)
	INGetData func(sid, ps string, start int64, count int) ([]byte, error)
}

IpfsNodeStub IPFS 节点数据读取(Wave B net_ipfs:自 api.IpfsNodeStub 开放下沉)

type LApi

type LApi interface {
	IBackEnd //节点内使用

	IAuth   //认证部分
	IVarAct //封装了大批Api,GetVar是获取系统变量, Act一类是执行一个动作,这个动作有需求但还没有到需要单独封装为Api的程度。
	IMiMei  //弥媒,封装了文件和数据库操作
	INet    //网络,封装了所有的网络相关操作
	IMsg    //消息(Wave B 开放)
	IStat   //状态查询(Wave B 开放)
	ILApp   //应用调用 RunMApp(Wave B 开放)
}

LApi描述节点内使用的api(包括节点内外都可以使用的rpc调用的接口和节点内使用的后端接口) 对于Rpc方式,可以通过InitLApiStubByUrl等api以获取stub句柄的方式访问节点功能。 对于节点内执行的应用,可以直接通过GetLApi的方式获取api接口 所有api最后都使用接口进行了抽象,后续功能介绍都基于接口进行介绍

func GetLApi

func GetLApi() LApi

用于mapp,调用前会替换

type LApiStub

type LApiStub struct {
	AuthStub
	VarActStub
	MiMeiStub
	NetStub
	MsgStub  // Wave B msg:自 api.MsgStub 开放下沉
	StatStub // Wave B stat:自 api.StatStub 开放下沉
	AppStub  // Wave B lapp:仅 RunMApp 开放下沉
}

Package lapi provides RPC functionality for the Leither project

func InitLApiStubByUrl

func InitLApiStubByUrl(url string) *LApiStub

func (*LApiStub) Act

func (s *LApiStub) Act(sid, name string, args ...string) (any, error)

func (*LApiStub) Begin

func (stub *LApiStub) Begin(mmsid string, timeout int) error

在LApiStub中实现IMDbStub接口方法

func (*LApiStub) CheckIntegrity

func (stub *LApiStub) CheckIntegrity(mmsid string, dataType uint8, key string, bRepair bool) error

func (*LApiStub) Commit

func (stub *LApiStub) Commit(mmsid string) error

func (*LApiStub) DagGet added in v0.3.0

func (s *LApiStub) DagGet(sid, ps string) (DagNodeData, error)

func (*LApiStub) DagStat added in v0.3.0

func (s *LApiStub) DagStat(sid, ps string) (*DagStats, error)

func (*LApiStub) Del

func (stub *LApiStub) Del(mmsid string, key ...string) (int64, error)

func (*LApiStub) DelDomain added in v0.3.0

func (s *LApiStub) DelDomain(sid, domain string) error

func (*LApiStub) DelRoute added in v0.3.0

func (s *LApiStub) DelRoute(sid, path string) error

func (*LApiStub) FilesCheck

func (stub *LApiStub) FilesCheck(sid, ps string, sync bool) error

FilesCheck 检查指定路径中的文件哪些不在本地

func (*LApiStub) FilesCopy

func (s *LApiStub) FilesCopy(sid, src, dst string, flush bool) error

在LApiStub上实现INet接口方法

func (*LApiStub) FilesFlush

func (s *LApiStub) FilesFlush(sid, ps string) (string, error)

func (*LApiStub) FilesLs

func (s *LApiStub) FilesLs(sid, ps string) ([]LsLink, error)

func (*LApiStub) FilesMkdir

func (s *LApiStub) FilesMkdir(sid, ps string, flush bool) error

func (*LApiStub) FilesMv

func (s *LApiStub) FilesMv(sid, src, dst string, flush bool) error

func (*LApiStub) FilesRm

func (s *LApiStub) FilesRm(sid, ps string, recursive, flush bool) error

func (*LApiStub) FilesStat

func (s *LApiStub) FilesStat(sid, ps string) (*StatInfo, error)

func (*LApiStub) FiltersAdd added in v0.3.0

func (s *LApiStub) FiltersAdd(sid string, cidrs []string) error

func (*LApiStub) FiltersRm added in v0.3.0

func (s *LApiStub) FiltersRm(sid string, cidrs []string) error

func (*LApiStub) Get

func (stub *LApiStub) Get(mmsid, key string) (any, error)

func (*LApiStub) GetGobVar

func (s *LApiStub) GetGobVar(sid, name string, args ...string) ([]byte, error)

func (*LApiStub) GetLastSeq

func (stub *LApiStub) GetLastSeq(mmsid string) (uint64, error)

func (*LApiStub) GetMiMeiStat added in v0.3.0

func (s *LApiStub) GetMiMeiStat(sid, mid string) (stats MiMeiStats, err error)

func (*LApiStub) GetUserMids added in v0.3.0

func (s *LApiStub) GetUserMids(sid, uid string, start int64, count int) ([]ScorePair, error)

func (*LApiStub) GetVar

func (s *LApiStub) GetVar(sid, name string, args ...string) (any, error)

在LApiStub上实现IVarAct接口方法

func (*LApiStub) GetVarByContext

func (s *LApiStub) GetVarByContext(sid, name string, mapOpt map[string]string) (any, error)

func (*LApiStub) GetVarObj

func (s *LApiStub) GetVarObj(obj any, sid string, name string, args ...string) error

func (*LApiStub) Hclear

func (stub *LApiStub) Hclear(mmsid string, key string) (int64, error)

func (*LApiStub) Hdel

func (stub *LApiStub) Hdel(mmsid, key string, field ...string) (int64, error)

func (*LApiStub) Hget

func (stub *LApiStub) Hget(mmsid, key, field string) (any, error)

func (*LApiStub) Hgetall

func (stub *LApiStub) Hgetall(mmsid, key string) ([]FVPair, error)

func (*LApiStub) HincrBy

func (stub *LApiStub) HincrBy(mmsid, key, field string, delta int64) (int64, error)

func (*LApiStub) Hkeys

func (stub *LApiStub) Hkeys(mmsid, key string) ([]string, error)

func (*LApiStub) Hlen

func (stub *LApiStub) Hlen(mmsid, key string) (int64, error)

func (*LApiStub) Hmclear

func (stub *LApiStub) Hmclear(mmsid string, key ...string) (int64, error)

func (*LApiStub) Hmget

func (stub *LApiStub) Hmget(mmsid, key string, fields ...string) ([]any, error)

func (*LApiStub) Hmset

func (stub *LApiStub) Hmset(mmsid, key string, values ...FVPair) error

func (*LApiStub) Hrevscan

func (stub *LApiStub) Hrevscan(mmsid, key, beginfield, match string, count int, inclusive bool) ([]FVPair, error)

func (*LApiStub) Hscan

func (stub *LApiStub) Hscan(mmsid, key, beginfield, match string, count int, inclusive bool) ([]FVPair, error)

func (*LApiStub) Hset

func (stub *LApiStub) Hset(mmsid, key, field string, value any) (int64, error)

func (*LApiStub) INGetData added in v0.3.0

func (s *LApiStub) INGetData(sid, ps string, start int64, count int) ([]byte, error)

func (*LApiStub) INOpen added in v0.3.0

func (s *LApiStub) INOpen(sid, ps string, level int) ([]byte, error)

func (*LApiStub) Incr

func (stub *LApiStub) Incr(mmsid, key string) (int64, error)

func (*LApiStub) IncrBy

func (stub *LApiStub) IncrBy(mmsid, key string, delta int64) (int64, error)

func (*LApiStub) IpfsAdd added in v0.3.0

func (s *LApiStub) IpfsAdd(sid, ps string) (string, error)

func (*LApiStub) Lclear

func (stub *LApiStub) Lclear(mmsid, key string) (int64, error)

func (*LApiStub) Lindex

func (stub *LApiStub) Lindex(mmsid, key string, index int32) (any, error)

func (*LApiStub) Llen

func (stub *LApiStub) Llen(mmsid, key string) (int64, error)

func (*LApiStub) Lmclear

func (stub *LApiStub) Lmclear(mmsid string, keys ...string) (int64, error)

func (*LApiStub) LoginWithPPT

func (s *LApiStub) LoginWithPPT(strPPT string) (*LoginReply, error)

在LApiStub上实现IAuth接口方法

func (*LApiStub) Logout

func (s *LApiStub) Logout(sid, info string) error

func (*LApiStub) Lpop

func (stub *LApiStub) Lpop(mmsid, key string) (any, error)

func (*LApiStub) Lpush

func (stub *LApiStub) Lpush(mmsid, key string, value ...any) (int64, error)

func (*LApiStub) Lrange

func (stub *LApiStub) Lrange(mmsid, key string, start, stop int32) ([]any, error)

func (*LApiStub) Lset

func (stub *LApiStub) Lset(mmsid, key string, index int32, value any) error

func (*LApiStub) MFCopy added in v0.3.0

func (s *LApiStub) MFCopy(sid, src, dst string, bFlush, bForce bool) error

func (*LApiStub) MFGetData

func (stub *LApiStub) MFGetData(fsid string, start int64, count int) ([]byte, error)

func (*LApiStub) MFGetMimeType

func (stub *LApiStub) MFGetMimeType(fsid string) (string, error)

func (*LApiStub) MFGetObject

func (stub *LApiStub) MFGetObject(fsid string) (any, error)

func (*LApiStub) MFGetSize

func (stub *LApiStub) MFGetSize(fsid string) (int64, error)

func (*LApiStub) MFIsExist

func (stub *LApiStub) MFIsExist(fsid, fileid string) (bool, error)

func (*LApiStub) MFLocal2MacFile

func (stub *LApiStub) MFLocal2MacFile(sid, mid, ps string) (string, error)

func (*LApiStub) MFLs added in v0.3.0

func (s *LApiStub) MFLs(sid, ps string) ([]LsLink, error)

func (*LApiStub) MFMkdir added in v0.3.0

func (s *LApiStub) MFMkdir(sid, ps string, flush bool) error

func (*LApiStub) MFOpenByPath

func (stub *LApiStub) MFOpenByPath(sid, mid, path string, flag int) (string, error)

在LApiStub中实现IMFileStub接口方法

func (*LApiStub) MFOpenMacFile

func (stub *LApiStub) MFOpenMacFile(sid, mid, fileid string) (string, error)

func (*LApiStub) MFOpenTempFile

func (stub *LApiStub) MFOpenTempFile(sid string) (string, error)

func (*LApiStub) MFPath2TempID

func (stub *LApiStub) MFPath2TempID(sid, localpath string) (string, error)

func (*LApiStub) MFReaddir

func (stub *LApiStub) MFReaddir(fsid string, count int) ([]*FileInfo, error)

func (*LApiStub) MFSetCid

func (stub *LApiStub) MFSetCid(sid, mid, cid string) (string, error)

func (*LApiStub) MFSetData

func (stub *LApiStub) MFSetData(fsid string, data []byte, start int64) (count int, err error)

func (*LApiStub) MFSetObject

func (stub *LApiStub) MFSetObject(fsid string, obj any) error

func (*LApiStub) MFStat

func (stub *LApiStub) MFStat(fsid string) (*FileInfo, error)

func (*LApiStub) MFTemp2Files

func (stub *LApiStub) MFTemp2Files(fsid, ps string) (string, error)

func (*LApiStub) MFTemp2Ipfs

func (stub *LApiStub) MFTemp2Ipfs(fsid, mid string) (string, error)

func (*LApiStub) MFTemp2MacFile

func (stub *LApiStub) MFTemp2MacFile(fsid, mid string) (string, error)

func (*LApiStub) MFTruncate

func (stub *LApiStub) MFTruncate(fsid string, size int64) error

func (*LApiStub) MMAddRef

func (s *LApiStub) MMAddRef(sid, mid string, fileids ...string) (int, error)

func (*LApiStub) MMBackup

func (s *LApiStub) MMBackup(sid, mid, memo string, opt ...string) (string, error)

func (*LApiStub) MMClose

func (s *LApiStub) MMClose(mmsid string) error

func (*LApiStub) MMCreate

func (s *LApiStub) MMCreate(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)

在LApiStub上实现IMiMei接口方法(部分示例)

func (*LApiStub) MMCreateAppData added in v0.3.0

func (s *LApiStub) MMCreateAppData(sid, aid, tp, defOwner, mark string, right uint64) (did string, err error)

func (*LApiStub) MMDelRef

func (s *LApiStub) MMDelRef(sid, mid string, fileids ...string) (int, error)

func (*LApiStub) MMDelVers

func (s *LApiStub) MMDelVers(sid, mid string, vers ...string) (int64, error)

func (*LApiStub) MMGetAppDataID added in v0.3.0

func (s *LApiStub) MMGetAppDataID(sid, aid, tp, owner, mark string, check bool) (appdataid string, err error)

func (*LApiStub) MMGetRef

func (s *LApiStub) MMGetRef(sid, mid, ver string) (ret Refs, err error)

func (*LApiStub) MMGetRefs

func (s *LApiStub) MMGetRefs(sid, mid string, vers ...string) (MiMeiRefs, error)

func (*LApiStub) MMGetRight

func (s *LApiStub) MMGetRight(sid, mmid, uid string) (right uint64, err error)

func (*LApiStub) MMOpen

func (s *LApiStub) MMOpen(sid, mid, ver string, opt ...string) (string, error)

func (*LApiStub) MMOpenAppData added in v0.3.0

func (s *LApiStub) MMOpenAppData(sid, aid, tp, owner, ver, mark string) (mmsid string, err error)

func (*LApiStub) MMOpenAppDataApp added in v0.3.0

func (s *LApiStub) MMOpenAppDataApp(sid, aid, ver, mark string) (mmsid string, err error)

func (*LApiStub) MMOpenAppDataNode added in v0.3.0

func (s *LApiStub) MMOpenAppDataNode(sid, aid, ver, mark string) (mmsid string, err error)

func (*LApiStub) MMOpenAppDataUser added in v0.3.0

func (s *LApiStub) MMOpenAppDataUser(sid, aid, owner, ver, mark string) (mmsid string, err error)

func (*LApiStub) MMOpenUrl

func (s *LApiStub) MMOpenUrl(sid, ps string) (string, error)

func (*LApiStub) MMRelease

func (s *LApiStub) MMRelease(sid, mid, ver string) (string, error)

func (*LApiStub) MMRestore

func (s *LApiStub) MMRestore(sid, mid, ver string) error

func (*LApiStub) MMSetRight

func (s *LApiStub) MMSetRight(sid, mid, member string, right uint64) error

func (*LApiStub) MMSum

func (s *LApiStub) MMSum(sid, mid, ver, tp string) (string, error)

func (*LApiStub) MMSyncData

func (stub *LApiStub) MMSyncData(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)

func (*LApiStub) MiMeiIsProvider added in v0.3.0

func (s *LApiStub) MiMeiIsProvider(sid, mid string) (bool, error)

func (*LApiStub) PPTStr2Map added in v0.2.0

func (s *LApiStub) PPTStr2Map(strPPT string) (map[string]string, error)

func (*LApiStub) PullMsg added in v0.3.0

func (s *LApiStub) PullMsg(sid string, timeout int) (*Message, error)

func (*LApiStub) ReadMsg added in v0.3.0

func (s *LApiStub) ReadMsg(sid string) ([]*Message, error)

func (*LApiStub) Rollback

func (stub *LApiStub) Rollback(mmsid string) error

func (*LApiStub) Rpop

func (stub *LApiStub) Rpop(mmsid, key string) (any, error)

func (*LApiStub) Rpush

func (stub *LApiStub) Rpush(mmsid, key string, value ...any) (int64, error)

func (*LApiStub) RunMApp added in v0.3.0

func (s *LApiStub) RunMApp(entry string, request map[string]string, args []any, opt ...string) (ret any, err error)

func (*LApiStub) Sadd

func (stub *LApiStub) Sadd(mmsid, key string, args ...string) (int64, error)

func (*LApiStub) Scan

func (stub *LApiStub) Scan(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)

func (*LApiStub) Scard

func (stub *LApiStub) Scard(mmsid, key string) (int64, error)

func (*LApiStub) Sclear

func (stub *LApiStub) Sclear(mmsid, key string) (int64, error)

func (*LApiStub) Sdiff

func (stub *LApiStub) Sdiff(mmsid string, keys ...string) ([]string, error)

func (*LApiStub) SendMsg added in v0.3.0

func (s *LApiStub) SendMsg(sid string, msg *Message) error

func (*LApiStub) Set

func (stub *LApiStub) Set(mmsid, key string, value any) error

func (*LApiStub) SetDomain added in v0.3.0

func (s *LApiStub) SetDomain(sid, domain string, info map[string]string) error

func (*LApiStub) SetRoute added in v0.3.0

func (s *LApiStub) SetRoute(sid, path, target string) error

func (*LApiStub) SetUserInfo added in v0.2.0

func (s *LApiStub) SetUserInfo(sid string, param map[string]string) error

func (*LApiStub) ShowDomain added in v0.3.0

func (s *LApiStub) ShowDomain(sid string) ([]string, error)

func (*LApiStub) ShowRoute added in v0.3.0

func (s *LApiStub) ShowRoute(sid string) (map[string]string, error)

func (*LApiStub) Sign added in v0.2.0

func (s *LApiStub) Sign(sid string, req *SignRequest) (sig []byte, err error)

func (*LApiStub) SignInfo2Map added in v0.2.0

func (s *LApiStub) SignInfo2Map(strInfo string) (map[string]string, error)

func (*LApiStub) SignPPT added in v0.2.0

func (s *LApiStub) SignPPT(sid string, req *SignPPTRequest) (string, error)

func (*LApiStub) Sinter

func (stub *LApiStub) Sinter(mmsid string, keys ...string) ([]string, error)

func (*LApiStub) Smclear

func (stub *LApiStub) Smclear(mmsid string, key ...string) (int64, error)

func (*LApiStub) Smembers

func (stub *LApiStub) Smembers(mmsid, key string) ([]string, error)

func (*LApiStub) Srem

func (stub *LApiStub) Srem(mmsid, key string, m string) (int64, error)

func (*LApiStub) Strlen

func (stub *LApiStub) Strlen(mmsid, key string) (int64, error)

func (*LApiStub) Sunion

func (stub *LApiStub) Sunion(mmsid string, keys ...string) ([]string, error)

func (*LApiStub) SwarmAddrs added in v0.3.0

func (s *LApiStub) SwarmAddrs(sid string, pids ...string) (map[string][]string, error)

func (*LApiStub) SwarmConnect added in v0.3.0

func (s *LApiStub) SwarmConnect(sid, addr string) error

func (*LApiStub) SwarmDisconnect added in v0.3.0

func (s *LApiStub) SwarmDisconnect(sid, addr string) error

func (*LApiStub) SwarmListen added in v0.3.0

func (s *LApiStub) SwarmListen(sid string) ([]string, error)

func (*LApiStub) SwarmLocal added in v0.3.0

func (s *LApiStub) SwarmLocal(sid string) ([]string, error)

func (*LApiStub) SwarmPeers added in v0.3.0

func (s *LApiStub) SwarmPeers(sid string) ([]string, error)

func (*LApiStub) Zadd

func (stub *LApiStub) Zadd(mmsid, key string, args ...ScorePair) (int64, error)

func (*LApiStub) Zaddwithseq

func (stub *LApiStub) Zaddwithseq(mmsid, key string, members ...string) (int64, error)

func (*LApiStub) Zcard

func (stub *LApiStub) Zcard(mmsid, key string) (int64, error)

func (*LApiStub) Zclear

func (stub *LApiStub) Zclear(mmsid, key string) (int64, error)

func (*LApiStub) Zcount

func (stub *LApiStub) Zcount(mmsid, key string, mins, maxs int64) (int64, error)

func (*LApiStub) ZincrBy

func (stub *LApiStub) ZincrBy(mmsid, key string, delta int64, member string) (int64, error)

func (*LApiStub) Zmclear

func (stub *LApiStub) Zmclear(mmsid string, key ...string) (int64, error)

func (*LApiStub) Zrange

func (stub *LApiStub) Zrange(mmsid, key string, start, stop int) ([]ScorePair, error)

func (*LApiStub) Zrangebyscore

func (stub *LApiStub) Zrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)

func (*LApiStub) Zrank

func (stub *LApiStub) Zrank(mmsid, key, member string) (int64, error)

func (*LApiStub) Zrem

func (stub *LApiStub) Zrem(mmsid, key string, members ...string) (int64, error)

func (*LApiStub) Zremrangebyscore

func (stub *LApiStub) Zremrangebyscore(mmsid, key string, mins, maxs int64) (int64, error)

func (*LApiStub) Zrevrange

func (stub *LApiStub) Zrevrange(mmsid, key string, start, stop int) ([]ScorePair, error)

func (*LApiStub) Zrevrangebyscore

func (stub *LApiStub) Zrevrangebyscore(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)

func (*LApiStub) Zscore

func (stub *LApiStub) Zscore(mmsid, key, member string) (int64, error)

type LogStub

type LogStub struct {
	Trace    func(format string, v ...interface{})
	Debug    func(format string, v ...interface{})
	Info     func(format string, v ...interface{})
	Warn     func(format string, v ...interface{})
	Error    func(format string, v ...interface{})
	Critical func(format string, v ...interface{})
}

LogStub

这里面放的是应用中日志操作的api接口。

type LoginReply

type LoginReply struct {
	Sid string
	Uid string
}

NOTE:这个sid是有有效期的

type LsLink struct {
	Name   string
	Hash   string
	Size   uint64
	Type   int //unixfs_pb.Data_DataType
	Target string
}

func (*LsLink) IsDir

func (link *LsLink) IsDir() bool

type MDbStub

type MDbStub struct {
	Begin            func(mmsid string, timeout int) error
	Commit           func(mmsid string) error
	Rollback         func(mmsid string) error
	GetLastSeq       func(mmsid string) (uint64, error)
	Set              func(mmsid, key string, value any) error
	Get              func(mmsid, key string) (any, error)
	Del              func(mmsid string, key ...string) (int64, error)
	Incr             func(mmsid, key string) (int64, error)
	IncrBy           func(mmsid, key string, delta int64) (int64, error)
	Strlen           func(mmsid, key string) (int64, error)
	Hmclear          func(mmsid string, key ...string) (int64, error)
	Hclear           func(mmsid string, key string) (int64, error)
	Hdel             func(mmsid, key string, field ...string) (int64, error)
	Hlen             func(mmsid, key string) (int64, error)
	Hset             func(mmsid, key, field string, value any) (int64, error)
	Hget             func(mmsid, key, field string) (any, error)
	Hmget            func(mmsid, key string, fields ...string) ([]any, error)
	Hmset            func(mmsid, key string, values ...FVPair) error
	Hgetall          func(mmsid, key string) ([]FVPair, error)
	Hkeys            func(mmsid, key string) ([]string, error)
	Hscan            func(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
	Hrevscan         func(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
	HincrBy          func(mmsid, key, field string, delta int64) (ret int64, err error)
	Lpush            func(mmsid, key string, value ...any) (int64, error)
	Lpop             func(mmsid, key string) (any, error)
	Rpush            func(mmsid, key string, value ...any) (int64, error)
	Rpop             func(mmsid, key string) (any, error)
	Lrange           func(mmsid, key string, start, stop int32) ([]any, error)
	Lclear           func(mmsid, key string) (int64, error)
	Lmclear          func(mmsid string, keys ...string) (int64, error)
	Lindex           func(mmsid, key string, index int32) (any, error)
	Llen             func(mmsid, key string) (int64, error)
	Lset             func(mmsid, key string, index int32, value any) error
	Zadd             func(mmsid, key string, args ...ScorePair) (int64, error)
	Zaddwithseq      func(mmsid, key string, members ...string) (ret int64, err error)
	Zcard            func(mmsid, key string) (int64, error)
	Zcount           func(mmsid, key string, mins, maxs int64) (int64, error)
	Zrem             func(mmsid, key string, members ...string) (int64, error)
	Zscore           func(mmsid, key, member string) (int64, error)
	Zrank            func(mmsid, key, member string) (int64, error)
	Zrange           func(mmsid, key string, start, stop int) ([]ScorePair, error)
	Zrangebyscore    func(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
	Zremrangebyscore func(mmsid, key string, mins, maxs int64) (int64, error)
	Zrevrange        func(mmsid, key string, start, stop int) (ret []ScorePair, err error)
	Zrevrangebyscore func(mmsid, key string, mins, maxs int64, offset int, count int) (ret []ScorePair, err error)
	Zmclear          func(mmsid string, key ...string) (int64, error)
	Zclear           func(mmsid, key string) (int64, error)
	ZincrBy          func(mmsid, key string, delta int64, member string) (ret int64, err error)
	Sadd             func(mmsid, key string, args ...string) (int64, error)
	Scard            func(mmsid, key string) (int64, error)
	Sclear           func(mmsid, key string) (int64, error)
	Sdiff            func(mmsid string, keys ...string) ([]string, error)
	Sinter           func(mmsid string, keys ...string) ([]string, error)
	Smclear          func(mmsid string, key ...string) (int64, error)
	Smembers         func(mmsid, key string) ([]string, error)
	Srem             func(mmsid, key string, m string) (int64, error)
	Sunion           func(mmsid string, keys ...string) ([]string, error)
	Scan             func(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)
	MMSyncData       func(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)
	CheckIntegrity   func(mmsid string, dataType uint8, key string, bRepair bool) error //校验数据
}

type MFileStub

type MFileStub struct {
	MFOpenByPath    func(sid, mid, path string, flag int) (string, error)
	MFOpenMacFile   func(sid, mid, fileid string) (string, error)
	MFOpenTempFile  func(sid string) (string, error)
	MFPath2TempID   func(sid, localpath string) (string, error) //这个函数有争议
	MFLocal2MacFile func(sid, mid, ps string) (string, error)
	MFTemp2MacFile  func(fsid, mid string) (string, error)
	MFTemp2Ipfs     func(fsid, mid string) (string, error)
	MFTemp2Files    func(fsid, ps string) (string, error)
	MFTruncate      func(fsid string, size int64) error
	MFSetObject     func(fsid string, obj any) error
	MFGetObject     func(fsid string) (any, error)
	MFSetData       func(fsid string, data []byte, start int64) (count int, err error)
	MFGetData       func(fsid string, start int64, count int) ([]byte, error)
	MFGetSize       func(fsid string) (int64, error)
	MFStat          func(fsid string) (*FileInfo, error)
	MFIsExist       func(fsid, fileid string) (bool, error)
	MFReaddir       func(fsid string, count int) ([]*FileInfo, error)
	MFGetMimeType   func(fsid string) (string, error)
	MFSetCid        func(sid, mid, cid string) (string, error)
}

type MMInfo

type MMInfo struct {
	Author   string    //作者
	AppType  string    //应用类型
	Ext      string    //扩展信息
	Mark     string    //标识
	DataType string    //数据类型
	Create   time.Time //创建时间
}

type Message

type Message struct {
	Tm    time.Time //消息发生的时间
	From  string
	To    string
	AppID string //空表示系统消息
	Msg   string //表示命令,是由appid约定的,如果appid为空,则是系统消息?
	Data  any    //应用自定义的数据格式
	Sign  string //发送者签名

}

SendMsg

消息接口

func (*Message) IsEmpty

func (msg *Message) IsEmpty() bool

func (*Message) IsSelf

func (msg *Message) IsSelf() bool

自己发给自己的消息

type MiMeiInfo

type MiMeiInfo struct {
	MMInfo
	Right uint64 //权限 在这里不恰当
}

type MiMeiRefs

type MiMeiRefs = map[string]map[string]int

MiMeiRefs 表示弥媒引用关系,键为版本号,值为文件ID到引用计数的映射

type MiMeiShowReply

type MiMeiShowReply struct {
	Versions *MiMeiVersions
	Rights   map[string]uint64
}

type MiMeiStat

type MiMeiStat = map[uint8]int64 //tp->StatInfo

type MiMeiStats

type MiMeiStats = map[uint64]MiMeiStat //verseq->StatInfo

type MiMeiStub

type MiMeiStub struct {
	MDbStub
	MFileStub

	// MMCreate 创建新的弥媒对象
	// 参数: sid-会话ID, appid-应用ID, ext-扩展标识, mark-标记字符串, tp-弥媒类型, right-权限位掩码
	// 返回值: mid-新创建的弥媒ID
	MMCreate func(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)

	// MMOpen 打开指定版本的弥媒
	// 参数: sid-会话ID, mid-弥媒ID, ver-版本号(空字符串表示最新版本), opt-可选参数
	// 返回值: 会话句柄,用于后续操作
	MMOpen func(sid, mid, ver string, opt ...string) (string, error)

	// MMOpenUrl 通过URL路径打开弥媒
	// 参数: sid-会话ID, ps-URL路径
	// 返回值: 会话句柄
	MMOpenUrl func(sid, ps string) (string, error)

	// MMClose 关闭弥媒会话
	// 参数: mmsid-弥媒会话ID
	MMClose func(mmsid string) error

	// MMSetRight 设置弥媒成员权限
	// 参数: sid-会话ID, mid-弥媒ID, member-成员标识, right-权限位掩码
	MMSetRight func(sid, mid, member string, right uint64) error

	// MMGetRight 获取成员对弥媒的权限
	// 参数: sid-会话ID, mmid-弥媒ID, uid-用户ID
	// 返回值: right-权限位掩码
	MMGetRight func(sid, mmid, uid string) (right uint64, err error)

	// MMBackup 创建弥媒快照备份
	// 参数: sid-会话ID, mid-弥媒ID, memo-备份备注信息, opt-可选参数
	// 返回值: 备份版本号
	MMBackup func(sid, mid, memo string, opt ...string) (string, error) //snapshot

	// MMRestore 从指定版本恢复弥媒
	// 参数: sid-会话ID, mid-弥媒ID, ver-要恢复的版本号
	MMRestore func(sid, mid, ver string) error

	// MMDelVers 删除指定版本
	// 参数: sid-会话ID, mid-弥媒ID, vers-要删除的版本号列表
	// 返回值: 删除的版本数量
	MMDelVers func(sid, mid string, vers ...string) (int64, error)

	// MMRelease 发布指定版本
	// 参数: sid-会话ID, mid-弥媒ID, ver-要发布的版本号
	// 返回值: 发布后的版本标识
	MMRelease func(sid, mid, ver string) (string, error)

	// MMAddRef 为弥媒添加文件引用
	// 参数: sid-会话ID, mid-弥媒ID, fileids-要引用的文件ID列表
	// 返回值: 成功添加的引用数量
	MMAddRef func(sid, mid string, fileids ...string) (int, error)

	// MMDelRef 删除弥媒的文件引用
	// 参数: sid-会话ID, mid-弥媒ID, fileids-要删除引用的文件ID列表
	// 返回值: 成功删除的引用数量
	MMDelRef func(sid, mid string, fileids ...string) (int, error)

	// MMGetRef 获取指定版本的引用关系
	// 参数: sid-会话ID, mid-弥媒ID, ver-版本号
	// 返回值: ret-文件引用关系映射
	MMGetRef func(sid, mid, ver string) (ret Refs, err error)

	// MMGetRefs 获取多个版本的引用关系
	// 参数: sid-会话ID, mid-弥媒ID, vers-版本号列表
	// 返回值: 各版本的引用关系映射
	MMGetRefs func(sid, mid string, vers ...string) (MiMeiRefs, error)

	// MMSum 计算弥媒的摘要信息
	// 参数: sid-会话ID, mid-弥媒ID, ver-版本号, tp-摘要类型
	// 返回值: 摘要字符串
	MMSum func(sid, mid, ver, tp string) (string, error) //

	// Wave B appdata:自 api.AppDataStub 开放下沉(置于末尾保持既有位置字面量兼容)
	AppDataStub

	// Wave B mimei_cmd 本地语义接口下沉(原 api.MiMeiCmdStub 中的本地部分;
	// 网络部分 Publish/Provide/FindProvs/Show/Sync 依赖 DHT,仍不开放)
	MiMeiIsProvider func(sid, mid string) (bool, error)
	MFLs            func(sid, ps string) ([]LsLink, error)
	MFCopy          func(sid, src, dst string, bFlush, bForce bool) error
	MFMkdir         func(sid, ps string, flush bool) error
}

MiMeiStub 弥媒操作结构体 提供对弥媒对象的完整生命周期管理,包括创建、权限控制、版本管理、引用管理等

type MiMeiVersion

type MiMeiVersion struct {
	Version string //记录的版本
	MacRes  string //同时写上两个变量,这是过渡期兼容。FileID后续废弃
	MacRef  string
}

type MiMeiVersions

type MiMeiVersions struct {
	//StructVer  uint8            //数据结构的版本,当前为0,后期兼容用
	Versions    []*MiMeiVersion   //所有的版本
	SpecialVers []*SpecialVersion //特殊版本
	MinDifSeq   uint64            //最小的差值序号,当前数据版本大于这个序号可以差值获取数据。20230308
}

TODO:必要的话,在这里增加一个最大序号

type MsgStub added in v0.3.0

type MsgStub struct {
	// SendMsg 消息发送
	// 参数:发送者ID,from;接收者ID:to;appID:消息所属应用ID;msg:消息文本内容;
	//		data:消息对象内容;ppt:消息的校验信息
	// 返回值:正常则为空,出错则返回错误信息
	SendMsg func(sid string, msg *Message) error
	// ReadMsg 消息接收
	// 返回值:消息数组;返回不为空就需要重新读数据
	ReadMsg func(sid string) ([]*Message, error)
	// PullMsg 拉取消息(阻塞至 timeout)
	PullMsg func(sid string, timeout int) (*Message, error)
}

MsgStub 消息接口(Wave B msg:自 api.MsgStub 开放下沉)

type Msgs

type Msgs []*Message

type NetStub

type NetStub struct {
	FilesStub
	// —— Wave B 批次 3:自 api.NetStub2/IpfsStub 开放下沉(评审通过部分)——
	DNSStub      //域名与路由(net_dns)
	SwarmStub    //节点网络(字段全量下沉;接口仅开放只读 4 方法)
	IpfsNodeStub //IPFS 节点数据读取(net_ipfs)
	DagStub      //DAG 查询(net_ipfs)
	IpfsAdd      func(sid, ps string) (string, error)
}

type NodeLoginReply

type NodeLoginReply struct {
	Services Services
	Sid      string
}

节点api

type PinLsObject

type PinLsObject struct {
	Cid  string
	Type string
}

type Refs

type Refs = map[string]int

Refs 表示文件引用关系,键为文件ID,值为引用计数

type RepoStat

type RepoStat struct {
	RepoSize   uint64 // size in bytes
	StorageMax uint64 // size in bytes
	NumObjects uint64
	RepoPath   string
	Version    string
}

type ScorePair

type ScorePair struct {
	Score  int64
	Member string
}

type ScriptInfo

type ScriptInfo struct {
	ID   string
	Name string
	Memo string
}

type Service

type Service map[string]string

type Services

type Services map[string]map[string]string

type SessionStub

type SessionStub struct {
	CreateSession  func() (sid string)
	SessionSet     func(sid, key string, value any) error
	SessionGet     func(sid, key string) (value any, err error)
	SessionDelete  func(sid, key string) error
	ReleaseSession func(sid string) error
}

type SignPPTRequest added in v0.3.0

type SignPPTRequest struct {
	Info    map[string]string //PPT 信息键值
	Period  int               //有效期(分钟,服务端钳制)
	Purpose string            //签名用途声明,可空
	AidDecl string            //调用方声明的 app id(可空;与服务端导出不一致即拒绝)
}

SignPPTRequest F4b 结构化 SignPPT 请求(D10:与 Sign 同代一次付清)。 G2 防护语义不变:非系统用户会话经 filterSignPPTInfo 过滤保留键 + 有效期钳制。

type SignRequest added in v0.3.0

type SignRequest struct {
	Content []byte //被签内容
	Purpose string //签名用途声明(供审计/UX 展示),可空
	AidDecl string //调用方声明的 app id(可空;与服务端导出不一致即拒绝)
}

SignRequest F4b 结构化签名请求(G5 契约变更,2026-09-04 裁决 D10/D11)。 盲签裸 message 入口自 lapi 面移除(D11 变体 A':api 层另留 api-only SignRaw)。 AidDecl 为「调用方声明的 app id」——服务端以可信导出值(容器=AppDataer、 app 会话=SessionKey_AppID)为准交叉验证,不一致即 deny(rule=signacl:aid-spoof)。

type SpecialVersion

type SpecialVersion struct {
	VerName string //Release, Cur
	Version string //版本
}

type StatCPU

type StatCPU = []float64

type StatInfo

type StatInfo struct {
	Hash           string
	Size           uint64
	CumulativeSize uint64
	Blocks         int
	Type           string
	WithLocality   bool
	Local          bool
	SizeLocal      uint64
}

func (*StatInfo) IsDir

func (link *StatInfo) IsDir() bool

ndtype = "directory" ndtype = "file"

type StatStub added in v0.3.0

type StatStub struct {
	GetUserMids  func(sid, uid string, start int64, count int) ([]ScorePair, error)
	GetMiMeiStat func(sid, mid string) (stats MiMeiStats, err error)
}

StatStub 状态查询(Wave B stat:自 api.StatStub 开放下沉)

type StatUsage

type StatUsage = disk.UsageStat
type UsageStat struct {
	Path              string  `json:"path"`
	Fstype            string  `json:"fstype"`
	Total             uint64  `json:"total"`
	Free              uint64  `json:"free"`
	Used              uint64  `json:"used"`
	UsedPercent       float64 `json:"usedPercent"`
	InodesTotal       uint64  `json:"inodesTotal"`
	InodesUsed        uint64  `json:"inodesUsed"`
	InodesFree        uint64  `json:"inodesFree"`
	InodesUsedPercent float64 `json:"inodesUsedPercent"`
}

type StatVirtualMemory

type StatVirtualMemory = mem.VirtualMemoryStat

type SwarmStub added in v0.3.0

type SwarmStub struct {
	SwarmAddrs      func(sid string, pids ...string) (map[string][]string, error)
	SwarmLocal      func(sid string) ([]string, error)
	SwarmListen     func(sid string) ([]string, error)
	SwarmPeers      func(sid string) ([]string, error)
	SwarmConnect    func(sid, addr string) error
	SwarmDisconnect func(sid, addr string) error
	FiltersAdd      func(sid string, cidrs []string) error
	FiltersRm       func(sid string, cidrs []string) error
}

SwarmStub 节点网络操作(Wave B net_swarm:整体下沉;lapi.INet 接口仅开放只读 4 方法, Connect/Disconnect/Filters* 仍不对 MApp 开放)

type TaskSetting

type TaskSetting struct {
	Name     string            //缺省唯一
	ScriptID string            //运行的角本id
	Start    int64             //0,表示立刻执行,正表示unix秒数,负值以后定义,目前考虑事件触发:{login,消息等}
	Period   int               //单位秒,-1表示每月,-2表示每年;其它数值可以对应别的特殊信息
	Param    map[string]string //参数
	Status   byte              //0 执行中,1 暂停,/*2,等待任务*/

}

type VarActStub

type VarActStub struct {
	GetVar          func(sid, name string, args ...string) (any, error)
	GetVarByContext func(sid, name string, mapOpt map[string]string) (any, error)
	Act             func(sid, name string, args ...string) (any, error)
	GetGobVar       func(sid, name string, args ...string) ([]byte, error)
}

func (*VarActStub) GetVarObj

func (wa *VarActStub) GetVarObj(obj any, sid string, name string, args ...string) error

type Ver2ProvsInfo

type Ver2ProvsInfo = map[uint64][]AddrInfo

Jump to

Keyboard shortcuts

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