當前位置: 首頁>>代碼示例>>Golang>>正文


Golang IpfsNode.Context方法代碼示例

本文整理匯總了Golang中github.com/noffle/ipget/Godeps/_workspace/src/github.com/ipfs/go-ipfs/core.IpfsNode.Context方法的典型用法代碼示例。如果您正苦於以下問題:Golang IpfsNode.Context方法的具體用法?Golang IpfsNode.Context怎麽用?Golang IpfsNode.Context使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/noffle/ipget/Godeps/_workspace/src/github.com/ipfs/go-ipfs/core.IpfsNode的用法示例。


在下文中一共展示了IpfsNode.Context方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: AddMetadataTo

func AddMetadataTo(n *core.IpfsNode, skey string, m *ft.Metadata) (string, error) {
	ukey := key.B58KeyDecode(skey)

	nd, err := n.DAG.Get(n.Context(), ukey)
	if err != nil {
		return "", err
	}

	mdnode := new(dag.Node)
	mdata, err := ft.BytesForMetadata(m)
	if err != nil {
		return "", err
	}

	mdnode.Data = mdata
	if err := mdnode.AddNodeLinkClean("file", nd); err != nil {
		return "", err
	}

	nk, err := n.DAG.Add(mdnode)
	if err != nil {
		return "", err
	}

	return nk.B58String(), nil
}
開發者ID:rht,項目名稱:ipget,代碼行數:26,代碼來源:metadata.go

示例2: Cat

func Cat(n *core.IpfsNode, pstr string) (*uio.DagReader, error) {
	p := path.FromString(pstr)
	dagNode, err := n.Resolver.ResolvePath(n.Context(), p)
	if err != nil {
		return nil, err
	}
	return uio.NewDagReader(n.Context(), dagNode, n.DAG)
}
開發者ID:rht,項目名稱:ipget,代碼行數:8,代碼來源:cat.go

示例3: addNode

func addNode(n *core.IpfsNode, node *merkledag.Node) error {
	if err := n.DAG.AddRecursive(node); err != nil { // add the file to the graph + local storage
		return err
	}
	ctx, cancel := context.WithCancel(n.Context())
	defer cancel()
	err := n.Pinning.Pin(ctx, node, true) // ensure we keep it
	return err
}
開發者ID:rht,項目名稱:ipget,代碼行數:9,代碼來源:add.go

示例4: Dial

func Dial(nd *core.IpfsNode, p peer.ID, protocol string) (net.Stream, error) {
	ctx, cancel := context.WithTimeout(nd.Context(), time.Second*30)
	defer cancel()
	err := nd.PeerHost.Connect(ctx, peer.PeerInfo{ID: p})
	if err != nil {
		return nil, err
	}
	return nd.PeerHost.NewStream(pro.ID(protocol), p)
}
開發者ID:rht,項目名稱:ipget,代碼行數:9,代碼來源:net.go

示例5: Metadata

func Metadata(n *core.IpfsNode, skey string) (*ft.Metadata, error) {
	ukey := key.B58KeyDecode(skey)

	nd, err := n.DAG.Get(n.Context(), ukey)
	if err != nil {
		return nil, err
	}

	return ft.MetadataFromBytes(nd.Data)
}
開發者ID:rht,項目名稱:ipget,代碼行數:10,代碼來源:metadata.go

示例6: Listen

func Listen(nd *core.IpfsNode, protocol string) (*ipfsListener, error) {
	ctx, cancel := context.WithCancel(nd.Context())

	list := &ipfsListener{
		proto:  pro.ID(protocol),
		conCh:  make(chan net.Stream),
		ctx:    ctx,
		cancel: cancel,
	}

	nd.PeerHost.SetStreamHandler(list.proto, func(s net.Stream) {
		select {
		case list.conCh <- s:
		case <-ctx.Done():
			s.Close()
		}
	})

	return list, nil
}
開發者ID:rht,項目名稱:ipget,代碼行數:20,代碼來源:net.go


注:本文中的github.com/noffle/ipget/Godeps/_workspace/src/github.com/ipfs/go-ipfs/core.IpfsNode.Context方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。