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


Golang IndexMessage.DecodeXDR方法代碼示例

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


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

示例1: loadIndex

func (m *Model) loadIndex(repo string, dir string) []protocol.FileInfo {
	id := fmt.Sprintf("%x", sha1.Sum([]byte(m.repoDirs[repo])))
	name := id + ".idx.gz"
	name = filepath.Join(dir, name)

	idxf, err := os.Open(name)
	if err != nil {
		return nil
	}
	defer idxf.Close()

	gzr, err := gzip.NewReader(idxf)
	if err != nil {
		return nil
	}
	defer gzr.Close()

	var im protocol.IndexMessage
	err = im.DecodeXDR(gzr)
	if err != nil || im.Repository != repo {
		return nil
	}

	return im.Files
}
開發者ID:nbrownus,項目名稱:syncthing,代碼行數:25,代碼來源:model.go

示例2: main

func main() {
	log.SetFlags(0)
	log.SetOutput(os.Stdout)

	showBlocks := flag.Bool("b", false, "Show blocks")
	flag.Parse()
	name := flag.Arg(0)

	idxf, err := os.Open(name)
	if err != nil {
		log.Fatal(err)
	}
	defer idxf.Close()

	gzr, err := gzip.NewReader(idxf)
	if err != nil {
		log.Fatal(err)
	}
	defer gzr.Close()

	var im protocol.IndexMessage
	err = im.DecodeXDR(gzr)
	if err != nil {
		log.Fatal(err)
	}

	log.Printf("Repo: %q, Files: %d", im.Repository, len(im.Files))
	for _, file := range im.Files {
		del := file.Flags&protocol.FlagDeleted != 0
		inv := file.Flags&protocol.FlagInvalid != 0
		dir := file.Flags&protocol.FlagDirectory != 0
		prm := file.Flags & 0777
		log.Printf("File: %q, Ver:%d, Del: %v, Inv: %v, Dir: %v, Perm: 0%03o, Modified: %d, Blocks: %d",
			file.Name, file.Version, del, inv, dir, prm, file.Modified, len(file.Blocks))
		if *showBlocks {
			for _, block := range file.Blocks {
				log.Printf("   Size: %6d, Hash: %x", block.Size, block.Hash)
			}
		}
	}
}
開發者ID:BillTheBest,項目名稱:syncthing,代碼行數:41,代碼來源:main.go

示例3: loadIndex

func loadIndex(m *Model) {
	name := m.RepoID() + ".idx.gz"
	idxf, err := os.Open(path.Join(confDir, name))
	if err != nil {
		return
	}
	defer idxf.Close()

	gzr, err := gzip.NewReader(idxf)
	if err != nil {
		return
	}
	defer gzr.Close()

	var im protocol.IndexMessage
	err = im.DecodeXDR(gzr)
	if err != nil || im.Repository != "local" {
		return
	}
	m.SeedLocal(im.Files)
}
開發者ID:ngpestelos,項目名稱:syncthing,代碼行數:21,代碼來源:main.go


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