Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
83ccc7e4
提交
83ccc7e4
authored
1月 22, 2018
作者:
ForrestWeston
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs for pin method impls
License: MIT Signed-off-by:
ForrestWeston
<
forrest@protocol.ai
>
上级
d3f5ee22
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
14 行增加
和
0 行删除
+14
-0
pin.go
pin/pin.go
+14
-0
没有找到文件。
pin/pin.go
浏览文件 @
83ccc7e4
...
@@ -147,6 +147,7 @@ type Pinned struct {
...
@@ -147,6 +147,7 @@ type Pinned struct {
Via
*
cid
.
Cid
Via
*
cid
.
Cid
}
}
// Pinned returns whether or not the given cid is pinned
func
(
p
Pinned
)
Pinned
()
bool
{
func
(
p
Pinned
)
Pinned
()
bool
{
if
p
.
Mode
==
NotPinned
{
if
p
.
Mode
==
NotPinned
{
return
false
return
false
...
@@ -155,6 +156,7 @@ func (p Pinned) Pinned() bool {
...
@@ -155,6 +156,7 @@ func (p Pinned) Pinned() bool {
}
}
}
}
// String Returns pin status as string
func
(
p
Pinned
)
String
()
string
{
func
(
p
Pinned
)
String
()
string
{
switch
p
.
Mode
{
switch
p
.
Mode
{
case
NotPinned
:
case
NotPinned
:
...
@@ -277,6 +279,8 @@ func (p *pinner) IsPinned(c *cid.Cid) (string, bool, error) {
...
@@ -277,6 +279,8 @@ func (p *pinner) IsPinned(c *cid.Cid) (string, bool, error) {
return
p
.
isPinnedWithType
(
c
,
Any
)
return
p
.
isPinnedWithType
(
c
,
Any
)
}
}
// IsPinnedWithType returns whether or not the given cid is pinned with the
// given pin type, as well as returning the type of pin its pinned with.
func
(
p
*
pinner
)
IsPinnedWithType
(
c
*
cid
.
Cid
,
mode
PinMode
)
(
string
,
bool
,
error
)
{
func
(
p
*
pinner
)
IsPinnedWithType
(
c
*
cid
.
Cid
,
mode
PinMode
)
(
string
,
bool
,
error
)
{
p
.
lock
.
RLock
()
p
.
lock
.
RLock
()
defer
p
.
lock
.
RUnlock
()
defer
p
.
lock
.
RUnlock
()
...
@@ -328,6 +332,8 @@ func (p *pinner) isPinnedWithType(c *cid.Cid, mode PinMode) (string, bool, error
...
@@ -328,6 +332,8 @@ func (p *pinner) isPinnedWithType(c *cid.Cid, mode PinMode) (string, bool, error
return
""
,
false
,
nil
return
""
,
false
,
nil
}
}
// CheckIfPinned Checks if a set of keys are pinned, more efficient than
// calling IsPinned for each key, returns the pinned status of cid(s)
func
(
p
*
pinner
)
CheckIfPinned
(
cids
...*
cid
.
Cid
)
([]
Pinned
,
error
)
{
func
(
p
*
pinner
)
CheckIfPinned
(
cids
...*
cid
.
Cid
)
([]
Pinned
,
error
)
{
p
.
lock
.
RLock
()
p
.
lock
.
RLock
()
defer
p
.
lock
.
RUnlock
()
defer
p
.
lock
.
RUnlock
()
...
@@ -393,6 +399,9 @@ func (p *pinner) CheckIfPinned(cids ...*cid.Cid) ([]Pinned, error) {
...
@@ -393,6 +399,9 @@ func (p *pinner) CheckIfPinned(cids ...*cid.Cid) ([]Pinned, error) {
return
pinned
,
nil
return
pinned
,
nil
}
}
// RemovePinWithMode is for manually editing the pin structure.
// Use with care! If used improperly, garbage collection may not
// be successful.
func
(
p
*
pinner
)
RemovePinWithMode
(
c
*
cid
.
Cid
,
mode
PinMode
)
{
func
(
p
*
pinner
)
RemovePinWithMode
(
c
*
cid
.
Cid
,
mode
PinMode
)
{
p
.
lock
.
Lock
()
p
.
lock
.
Lock
()
defer
p
.
lock
.
Unlock
()
defer
p
.
lock
.
Unlock
()
...
@@ -486,6 +495,9 @@ func (p *pinner) RecursiveKeys() []*cid.Cid {
...
@@ -486,6 +495,9 @@ func (p *pinner) RecursiveKeys() []*cid.Cid {
return
p
.
recursePin
.
Keys
()
return
p
.
recursePin
.
Keys
()
}
}
// Update updates a recursive pin from one cid to another
// this is more efficient than simply pinning the new one and unpinning the
// old one
func
(
p
*
pinner
)
Update
(
ctx
context
.
Context
,
from
,
to
*
cid
.
Cid
,
unpin
bool
)
error
{
func
(
p
*
pinner
)
Update
(
ctx
context
.
Context
,
from
,
to
*
cid
.
Cid
,
unpin
bool
)
error
{
p
.
lock
.
Lock
()
p
.
lock
.
Lock
()
defer
p
.
lock
.
Unlock
()
defer
p
.
lock
.
Unlock
()
...
@@ -556,6 +568,8 @@ func (p *pinner) Flush() error {
...
@@ -556,6 +568,8 @@ func (p *pinner) Flush() error {
return
nil
return
nil
}
}
// InternalPins returns all cids kept pinned for the internal state of the
// pinner
func
(
p
*
pinner
)
InternalPins
()
[]
*
cid
.
Cid
{
func
(
p
*
pinner
)
InternalPins
()
[]
*
cid
.
Cid
{
p
.
lock
.
Lock
()
p
.
lock
.
Lock
()
defer
p
.
lock
.
Unlock
()
defer
p
.
lock
.
Unlock
()
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论