当前位置: 首页>>代码示例>>Golang>>正文


Golang protocol.IndexMessage类代码示例

本文整理汇总了Golang中github.com/calmh/syncthing/protocol.IndexMessage的典型用法代码示例。如果您正苦于以下问题:Golang IndexMessage类的具体用法?Golang IndexMessage怎么用?Golang IndexMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了IndexMessage类的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类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。