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


Golang blocks.Block類代碼示例

本文整理匯總了Golang中github.com/djbarber/ipfs-hack/blocks.Block的典型用法代碼示例。如果您正苦於以下問題:Golang Block類的具體用法?Golang Block怎麽用?Golang Block使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


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

示例1: Put

func (w *writecache) Put(b *blocks.Block) error {
	if _, ok := w.cache.Get(b.Key()); ok {
		return nil
	}
	w.cache.Add(b.Key(), struct{}{})
	return w.blockstore.Put(b)
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:7,代碼來源:write_cache.go

示例2: assertBlocksEqual

func assertBlocksEqual(t *testing.T, a, b *blocks.Block) {
	if !bytes.Equal(a.Data, b.Data) {
		t.Fatal("blocks aren't equal")
	}
	if a.Key() != b.Key() {
		t.Fatal("block keys aren't equal")
	}
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:8,代碼來源:notifications_test.go

示例3: getOrFail

func getOrFail(bitswap Instance, b *blocks.Block, t *testing.T, wg *sync.WaitGroup) {
	if _, err := bitswap.Blockstore().Get(b.Key()); err != nil {
		_, err := bitswap.Exchange.GetBlock(context.Background(), b.Key())
		if err != nil {
			t.Fatal(err)
		}
	}
	wg.Done()
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:9,代碼來源:bitswap_test.go

示例4: Put

func (bs *blockstore) Put(block *blocks.Block) error {
	k := block.Key().DsKey()

	// Has is cheaper than Put, so see if we already have it
	exists, err := bs.datastore.Has(k)
	if err == nil && exists {
		return nil // already stored.
	}
	return bs.datastore.Put(k, block.Data)
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:10,代碼來源:blockstore.go

示例5: AddBlock

// AddBlock adds a particular block to the service, Putting it into the datastore.
// TODO pass a context into this if the remote.HasBlock is going to remain here.
func (s *BlockService) AddBlock(b *blocks.Block) (key.Key, error) {
	k := b.Key()
	err := s.Blockstore.Put(b)
	if err != nil {
		return k, err
	}
	if err := s.Exchange.HasBlock(b); err != nil {
		return "", errors.New("blockservice is closed")
	}
	return k, nil
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:13,代碼來源:blockservice.go

示例6: Add

// Add adds a node to the dagService, storing the block in the BlockService
func (n *dagService) Add(nd *Node) (key.Key, error) {
	if n == nil { // FIXME remove this assertion. protect with constructor invariant
		return "", fmt.Errorf("dagService is nil")
	}

	d, err := nd.Encoded(false)
	if err != nil {
		return "", err
	}

	b := new(blocks.Block)
	b.Data = d
	b.Multihash, err = nd.Multihash()
	if err != nil {
		return "", err
	}

	return n.Blocks.AddBlock(b)
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:20,代碼來源:merkledag.go

示例7: updateReceiveCounters

func (bs *Bitswap) updateReceiveCounters(b *blocks.Block) error {
	bs.counterLk.Lock()
	defer bs.counterLk.Unlock()
	bs.blocksRecvd++
	has, err := bs.blockstore.Has(b.Key())
	if err != nil {
		log.Infof("blockstore.Has error: %s", err)
		return err
	}
	if err == nil && has {
		bs.dupBlocksRecvd++
		bs.dupDataRecvd += uint64(len(b.Data))
	}

	if has {
		return ErrAlreadyHaveBlock
	}
	return nil
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:19,代碼來源:bitswap.go

示例8: AddBlock

func (m *impl) AddBlock(b *blocks.Block) {
	m.blocks[b.Key()] = b
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:3,代碼來源:message.go

示例9: Publish

func (ps *impl) Publish(block *blocks.Block) {
	topic := string(block.Key())
	ps.wrapped.Pub(block, topic)
}
開發者ID:djbarber,項目名稱:ipfs-hack,代碼行數:4,代碼來源:notifications.go


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