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


Golang DB.Get方法代码示例

本文整理汇总了Golang中github.com/syndtr/goleveldb/leveldb.DB.Get方法的典型用法代码示例。如果您正苦于以下问题:Golang DB.Get方法的具体用法?Golang DB.Get怎么用?Golang DB.Get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/syndtr/goleveldb/leveldb.DB的用法示例。


在下文中一共展示了DB.Get方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: cacheLookup

func cacheLookup(db *leveldb.DB, way *osmpbf.Way) ([]map[string]string, error) {

	var container []map[string]string

	for _, each := range way.NodeIDs {
		stringid := strconv.FormatInt(each, 10)

		data, err := db.Get([]byte(stringid), nil)
		if err != nil {
			log.Println("denormalize failed for way:", way.ID, "node not found:", stringid)
			return container, err
		}

		s := string(data)
		spl := strings.Split(s, ":")

		latlon := make(map[string]string)
		lat, lon := spl[0], spl[1]
		latlon["lat"] = lat
		latlon["lon"] = lon

		container = append(container, latlon)

	}

	return container, nil

	// fmt.Println(way.NodeIDs)
	// fmt.Println(container)
	// os.Exit(1)
}
开发者ID:piemapping,项目名称:pbf2json,代码行数:31,代码来源:pbf2json.go

示例2: read

// Command read
func read(conn net.Conn, input_bytes []byte, datadb *leveldb.DB, metadatadb *leveldb.DB) {
	input_string := string(input_bytes)
	inputs := strings.Fields(input_string)
	filename := inputs[1]

	mutex.RLock()
	version, numbytes, exptime, exp, err1 := read_metadata(filename, metadatadb)

	if err1 == nil {
		if time.Now().After(exptime) {
			mutex.RUnlock()
			conn.Write([]byte("ERR_FILE_NOT_FOUND\r\n")) // content has expired
		} else {
			data, err2 := datadb.Get([]byte(filename), nil)
			mutex.RUnlock()
			if err2 != nil {
				log.Println("error in conversion: ", err1)
			}
			version_str := strconv.Itoa(version)
			numbytes_str := strconv.Itoa(numbytes)

			exp_str := "0"
			if exp != 0 {
				exp_str = strconv.Itoa(int(exptime.Sub(time.Now()).Seconds()))
			}
			response := append([]byte("CONTENTS "+version_str+" "+numbytes_str+" "+exp_str+" \r\n"), data...)
			// log.Println(response)
			conn.Write(response)
			// log.Println(response)
		}
	} else {
		mutex.RUnlock()
		conn.Write([]byte("ERR_FILE_NOT_FOUND\r\n"))
	}
}
开发者ID:sidutta,项目名称:cs733,代码行数:36,代码来源:fileserver.go

示例3: ldbAvailability

func ldbAvailability(db *leveldb.DB, folder, file []byte) []protocol.DeviceID {
	k := globalKey(folder, file)
	bs, err := db.Get(k, nil)
	if err == leveldb.ErrNotFound {
		return nil
	}
	if err != nil {
		panic(err)
	}

	var vl versionList
	err = vl.UnmarshalXDR(bs)
	if err != nil {
		panic(err)
	}

	var devices []protocol.DeviceID
	for _, v := range vl.versions {
		if !v.version.Equal(vl.versions[0].version) {
			break
		}
		n := protocol.DeviceIDFromBytes(v.device)
		devices = append(devices, n)
	}

	return devices
}
开发者ID:kbreuni,项目名称:syncthing,代码行数:27,代码来源:leveldb.go

示例4: ldbAvailability

func ldbAvailability(db *leveldb.DB, repo, file []byte) []protocol.NodeID {
	k := globalKey(repo, file)
	bs, err := db.Get(k, nil)
	if err == leveldb.ErrNotFound {
		return nil
	}
	if err != nil {
		panic(err)
	}

	var vl versionList
	err = vl.UnmarshalXDR(bs)
	if err != nil {
		panic(err)
	}

	var nodes []protocol.NodeID
	for _, v := range vl.versions {
		if v.version != vl.versions[0].version {
			break
		}
		var n protocol.NodeID
		copy(n[:], v.node)
		nodes = append(nodes, n)
	}

	return nodes
}
开发者ID:kizmc,项目名称:syncthing,代码行数:28,代码来源:leveldb.go

示例5: dbRead

/*
	/Read the DATABASE
	/Read the Key and Value by Key
*/
func dbRead(dbObj *leveldb.DB, readDBKey []byte) []byte {
	data, readError := dbObj.Get([]byte(readDBKey), nil)
	if readError != nil {
		fmt.Println("DB Read ERROR")
	}
	return data
}
开发者ID:takumigashira,项目名称:go-bus,代码行数:11,代码来源:connectsdb.go

示例6: read_metadata

func read_metadata(filename string, metadatadb *leveldb.DB) (version int, numbytes int, exptime time.Time, exp int, err error) {
	data, err2 := metadatadb.Get([]byte(filename), nil)
	// log.Println(data, filename, err2)
	err = err2
	if err != nil {
		version = 0
		numbytes = 0
		exptime = time.Now()
		exp = 0
	} else {
		line := string(data)
		fields := strings.Fields(line)
		version, _ = strconv.Atoi(fields[0])
		numbytes, _ = strconv.Atoi(fields[1])
		if len(fields) == 7 {
			exptime_str := fields[2] + " " + fields[3] + " " + fields[4] + " " + fields[5]
			layout := "2006-01-02 15:04:05 -0700 MST"
			exptime, _ = time.Parse(layout, exptime_str)
			exp, _ = strconv.Atoi(fields[6])
		} else {
			log.Println("why here?", string(data), string(filename))
		}
	}
	return
}
开发者ID:sidutta,项目名称:cs733,代码行数:25,代码来源:fileserver.go

示例7: BitIndexes

func BitIndexes(bdb *leveldb.DB, bmd5s []string) map[uint]struct{} {
	wg := new(sync.WaitGroup)
	res := make(map[uint]struct{})
	bitChan := make(chan uint, 1000)

	go func() {
		for bit := range bitChan {
			if _, ok := res[bit]; !ok {
				res[bit] = struct{}{}
			}
		}
	}()

	for _, bmd5 := range bmd5s {
		wg.Add(1)
		go func(bmd5 string) {
			var fpmap Fpmap

			data, _ := bdb.Get([]byte("m-"+bmd5), nil)
			if err := json.Unmarshal(data, &fpmap); err != nil {
				Error.Println("Error decoding fpmap object", bmd5)
			}
			for _, index := range fpmap {
				bitChan <- index.bindex
			}
		}(bmd5)
	}
	wg.Wait()
	close(bitChan)
	return res
}
开发者ID:xia0pin9,项目名称:maldiff,代码行数:31,代码来源:extract.go

示例8: get

func get(db *leveldb.DB, id protocol.DeviceID) []address {
	var addrs addressList
	val, err := db.Get(id[:], nil)
	if err == nil {
		addrs.UnmarshalXDR(val)
	}
	return addrs.addresses
}
开发者ID:mapleshadow,项目名称:discosrv,代码行数:8,代码来源:main.go

示例9: getVersion

func getVersion(db *leveldb.DB) (int64, error) {
	data, err := db.Get([]byte(versionKey), nil)
	if err == leveldb.ErrNotFound {
		return nilDataVersion, nil
	} else if len(data) != 8 {
		return 0, fmt.Errorf("version value format is unknown")
	}
	return int64(order.Uint64(data)), nil
}
开发者ID:rlugojr,项目名称:cayley,代码行数:9,代码来源:quadstore.go

示例10: saveVideos

func saveVideos(db *leveldb.DB, videos Videos) {
	for _, video := range videos {
		data, _ := db.Get([]byte(video.Url), nil)

		if len(data) == 0 {
			encoded, _ := json.Marshal(video)

			_ = db.Put([]byte(video.Url), []byte(encoded), nil)
		}
	}
}
开发者ID:unbalancedparentheses,项目名称:conversaciones_lanacion,代码行数:11,代码来源:scraper.go

示例11: InjectLevelDB

func InjectLevelDB(jsEngine *JSEngine, db *leveldb.DB) {
	jsEngine.Run("var db = {};")
	dbValue, _ := jsEngine.Get("db")
	dbObj := dbValue.Object()
	dbObj.Set("put", func(call otto.FunctionCall) otto.Value {
		key, err := call.Argument(0).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		value, err := call.Argument(1).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}

		err = db.Put([]byte(key), []byte(value), nil)
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		return otto.TrueValue()
	})
	dbObj.Set("get", func(call otto.FunctionCall) otto.Value {
		key, err := call.Argument(0).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		data, err := db.Get([]byte(key), nil)
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		v, _ := otto.ToValue(string(data))
		return v
	})
	dbObj.Set("remove", func(call otto.FunctionCall) otto.Value {
		key, err := call.Argument(0).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		err = db.Delete([]byte(key), nil)
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		return otto.TrueValue()
	})
}
开发者ID:teamSUDOs,项目名称:localise-it,代码行数:51,代码来源:js.go

示例12: doRead

func doRead(cmd *utils.Cmd, db *leveldb.DB) *utils.Cmd {
	dirMutex.RLock()
	defer dirMutex.RUnlock()
	fi := dir[cmd.Filename]

	//if fi != nil {
	//	// exptime := 0
	//	if fi.Timer != nil {
	//		// exptime := fi.Exptime.Sub(time.Now())
	//		// if exptime < 0 {
	//		// 	exptime = 0
	//		// }
	//	}
	//} else {
	//
	//}
	//data, err := db.Get([]byte(cmd.Filename), nil)
	//if err != nil {
	//	log.Fatal(err)
	//}
	//response := fmt.Sprintf("CONTENTS %d %d %d\r\n", fi.Version, fi.Numbytes, fi.Exptime)
	//con.Write([]byte(response))
	//con.Write(data)
	//con.Write([]byte("\r\n"))

	if fi != nil {
		var remainingTime int64
		remainingTime = 0
		if fi.Timer != nil {
			remainingTime := int(fi.Exptime.Sub(time.Now()))
			if remainingTime < 0 {
				remainingTime = 0
			}
		}
		data, err := db.Get([]byte(cmd.Filename), nil)
		if err != nil {
			log.Fatal(err)
		}
		return &utils.Cmd{
			Type:     "C",
			Filename: cmd.Filename,
			Content:  data,
			Numbytes: fi.Numbytes,
			Exptime:  remainingTime,
			Version:  fi.Version,
		}
	} else {
		return &utils.Cmd{Type: "F"} // file not found
	}
}
开发者ID:pratyakshs,项目名称:cs733,代码行数:50,代码来源:server.go

示例13: ldbGet

func ldbGet(db *leveldb.DB, repo, node, file []byte) protocol.FileInfo {
	nk := nodeKey(repo, node, file)
	bs, err := db.Get(nk, nil)
	if err == leveldb.ErrNotFound {
		return protocol.FileInfo{}
	}
	if err != nil {
		panic(err)
	}

	var f protocol.FileInfo
	err = f.UnmarshalXDR(bs)
	if err != nil {
		panic(err)
	}
	return f
}
开发者ID:kizmc,项目名称:syncthing,代码行数:17,代码来源:leveldb.go

示例14: ldbGet

func ldbGet(db *leveldb.DB, folder, device, file []byte) (protocol.FileInfo, bool) {
	nk := deviceKey(folder, device, file)
	bs, err := db.Get(nk, nil)
	if err == leveldb.ErrNotFound {
		return protocol.FileInfo{}, false
	}
	if err != nil {
		panic(err)
	}

	var f protocol.FileInfo
	err = f.UnmarshalXDR(bs)
	if err != nil {
		panic(err)
	}
	return f, true
}
开发者ID:qbit,项目名称:syncthing,代码行数:17,代码来源:leveldb.go

示例15: Worker

func Worker(benDB, malDB *leveldb.DB, keysChan chan *KeyPair, resChan chan string, wg *sync.WaitGroup) {
	// Decreasing internal counter for wait-group as soon as goroutine finishes
	defer wg.Done()

	var score float64
	var bhash, mhash []byte

	for keyPair := range keysChan {
		// Todo: meta info check
		if MetaCheck(benDB, malDB, keyPair.bmd5, keyPair.mmd5) {
			bhash, _ = benDB.Get(keyPair.bkey, nil)
			mhash, _ = malDB.Get(keyPair.mkey, nil)
			if len(bhash) > 0 && len(mhash) > 0 {
				score = HashCompare(bhash, mhash, keyPair.bsize, keyPair.msize)
				resChan <- fmt.Sprintf("%v, %v, %.3f\n", keyPair.bmd5, keyPair.mmd5, score)
			}
		}
	}
}
开发者ID:xia0pin9,项目名称:maldiff,代码行数:19,代码来源:compare.go


注:本文中的github.com/syndtr/goleveldb/leveldb.DB.Get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。