diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-11-28 23:37:33 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-28 23:37:33 +0800 |
commit | 3bdce82ce97299beb542fd90f5cc21caad302e08 (patch) | |
tree | a586675d0e6ee4a8077e35b295436b1ad4c9afab /vendor/github.com | |
parent | ef9a0370ca71694c38cd8c30a3837ee3125974ba (diff) | |
download | gitea-3bdce82ce97299beb542fd90f5cc21caad302e08.tar.gz gitea-3bdce82ce97299beb542fd90f5cc21caad302e08.zip |
upgrade levelqueue to 0.1.0 (#9192)
Diffstat (limited to 'vendor/github.com')
-rw-r--r-- | vendor/github.com/lunny/levelqueue/.gitignore | 3 | ||||
-rw-r--r-- | vendor/github.com/lunny/levelqueue/LICENSE | 19 | ||||
-rw-r--r-- | vendor/github.com/lunny/levelqueue/README.md | 23 | ||||
-rw-r--r-- | vendor/github.com/lunny/levelqueue/error.go | 12 | ||||
-rw-r--r-- | vendor/github.com/lunny/levelqueue/go.mod | 3 | ||||
-rw-r--r-- | vendor/github.com/lunny/levelqueue/go.sum | 18 | ||||
-rw-r--r-- | vendor/github.com/lunny/levelqueue/queue.go | 214 |
7 files changed, 0 insertions, 292 deletions
diff --git a/vendor/github.com/lunny/levelqueue/.gitignore b/vendor/github.com/lunny/levelqueue/.gitignore deleted file mode 100644 index 59a8bdee30..0000000000 --- a/vendor/github.com/lunny/levelqueue/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -queue/ -queue_pop/ -queue_push/
\ No newline at end of file diff --git a/vendor/github.com/lunny/levelqueue/LICENSE b/vendor/github.com/lunny/levelqueue/LICENSE deleted file mode 100644 index 4a5a4ea0ff..0000000000 --- a/vendor/github.com/lunny/levelqueue/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2019 Lunny Xiao - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/github.com/lunny/levelqueue/README.md b/vendor/github.com/lunny/levelqueue/README.md deleted file mode 100644 index 3d9fc097b8..0000000000 --- a/vendor/github.com/lunny/levelqueue/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# levelqueue - -Level queue is a simple queue golang library base on go-leveldb. - -[![CircleCI](https://circleci.com/gh/lunny/levelqueue.svg?style=shield)](https://circleci.com/gh/lunny/levelqueue) -[![codecov](https://codecov.io/gh/lunny/levelqueue/branch/master/graph/badge.svg)](https://codecov.io/gh/lunny/levelqueue) -[![](https://goreportcard.com/badge/github.com/lunny/levelqueue)](https://goreportcard.com/report/github.com/lunny/levelqueue) - -## Installation - -``` -go get github.com/lunny/levelqueue -``` - -## Usage - -```Go -queue, err := levelqueue.Open("./queue") - -err = queue.RPush([]byte("test")) - -data, err = queue.LPop() -```
\ No newline at end of file diff --git a/vendor/github.com/lunny/levelqueue/error.go b/vendor/github.com/lunny/levelqueue/error.go deleted file mode 100644 index d639c5d496..0000000000 --- a/vendor/github.com/lunny/levelqueue/error.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2019 Lunny Xiao. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package levelqueue - -import "errors" - -var ( - // ErrNotFound means no element in queue - ErrNotFound = errors.New("no key found") -) diff --git a/vendor/github.com/lunny/levelqueue/go.mod b/vendor/github.com/lunny/levelqueue/go.mod deleted file mode 100644 index 7d060fc099..0000000000 --- a/vendor/github.com/lunny/levelqueue/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/lunny/levelqueue - -require github.com/syndtr/goleveldb v0.0.0-20190203031304-2f17a3356c66 diff --git a/vendor/github.com/lunny/levelqueue/go.sum b/vendor/github.com/lunny/levelqueue/go.sum deleted file mode 100644 index 5936aa865e..0000000000 --- a/vendor/github.com/lunny/levelqueue/go.sum +++ /dev/null @@ -1,18 +0,0 @@ -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/syndtr/goleveldb v0.0.0-20190203031304-2f17a3356c66 h1:AwmkkZT+TucFotNCL+aNJ/0KCMsRtlXN9fs8uoOMSRk= -github.com/syndtr/goleveldb v0.0.0-20190203031304-2f17a3356c66/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/lunny/levelqueue/queue.go b/vendor/github.com/lunny/levelqueue/queue.go deleted file mode 100644 index 0b2bef6c84..0000000000 --- a/vendor/github.com/lunny/levelqueue/queue.go +++ /dev/null @@ -1,214 +0,0 @@ -// Copyright 2019 Lunny Xiao. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package levelqueue - -import ( - "bytes" - "encoding/binary" - "sync" - - "github.com/syndtr/goleveldb/leveldb" -) - -// Queue defines a queue struct -type Queue struct { - db *leveldb.DB - highLock sync.Mutex - lowLock sync.Mutex - low int64 - high int64 -} - -// Open opens a queue object or create it if not exist -func Open(dataDir string) (*Queue, error) { - db, err := leveldb.OpenFile(dataDir, nil) - if err != nil { - return nil, err - } - - var queue = &Queue{ - db: db, - } - queue.low, err = queue.readID(lowKey) - if err == leveldb.ErrNotFound { - queue.low = 1 - err = db.Put(lowKey, id2bytes(1), nil) - } - if err != nil { - return nil, err - } - - queue.high, err = queue.readID(highKey) - if err == leveldb.ErrNotFound { - err = db.Put(highKey, id2bytes(0), nil) - } - if err != nil { - return nil, err - } - - return queue, nil -} - -func (queue *Queue) readID(key []byte) (int64, error) { - bs, err := queue.db.Get(key, nil) - if err != nil { - return 0, err - } - return bytes2id(bs) -} - -var ( - lowKey = []byte("low") - highKey = []byte("high") -) - -func (queue *Queue) highincrement() (int64, error) { - id := queue.high + 1 - queue.high = id - err := queue.db.Put(highKey, id2bytes(queue.high), nil) - if err != nil { - queue.high = queue.high - 1 - return 0, err - } - return id, nil -} - -func (queue *Queue) highdecrement() (int64, error) { - queue.high = queue.high - 1 - err := queue.db.Put(highKey, id2bytes(queue.high), nil) - if err != nil { - queue.high = queue.high + 1 - return 0, err - } - return queue.high, nil -} - -func (queue *Queue) lowincrement() (int64, error) { - queue.low = queue.low + 1 - err := queue.db.Put(lowKey, id2bytes(queue.low), nil) - if err != nil { - queue.low = queue.low - 1 - return 0, err - } - return queue.low, nil -} - -func (queue *Queue) lowdecrement() (int64, error) { - queue.low = queue.low - 1 - err := queue.db.Put(lowKey, id2bytes(queue.low), nil) - if err != nil { - queue.low = queue.low + 1 - return 0, err - } - return queue.low, nil -} - -// Len returns the length of the queue -func (queue *Queue) Len() int64 { - queue.lowLock.Lock() - queue.highLock.Lock() - l := queue.high - queue.low + 1 - queue.highLock.Unlock() - queue.lowLock.Unlock() - return l -} - -func id2bytes(id int64) []byte { - var buf = make([]byte, 8) - binary.PutVarint(buf, id) - return buf -} - -func bytes2id(b []byte) (int64, error) { - return binary.ReadVarint(bytes.NewReader(b)) -} - -// RPush pushes a data from right of queue -func (queue *Queue) RPush(data []byte) error { - queue.highLock.Lock() - id, err := queue.highincrement() - if err != nil { - queue.highLock.Unlock() - return err - } - err = queue.db.Put(id2bytes(id), data, nil) - queue.highLock.Unlock() - return err -} - -// LPush pushes a data from left of queue -func (queue *Queue) LPush(data []byte) error { - queue.highLock.Lock() - id, err := queue.lowdecrement() - if err != nil { - queue.highLock.Unlock() - return err - } - err = queue.db.Put(id2bytes(id), data, nil) - queue.highLock.Unlock() - return err -} - -// RPop pop a data from right of queue -func (queue *Queue) RPop() ([]byte, error) { - queue.highLock.Lock() - currentID := queue.high - - res, err := queue.db.Get(id2bytes(currentID), nil) - if err != nil { - queue.highLock.Unlock() - if err == leveldb.ErrNotFound { - return nil, ErrNotFound - } - return nil, err - } - - _, err = queue.highdecrement() - if err != nil { - queue.highLock.Unlock() - return nil, err - } - - err = queue.db.Delete(id2bytes(currentID), nil) - queue.highLock.Unlock() - if err != nil { - return nil, err - } - return res, nil -} - -// LPop pop a data from left of queue -func (queue *Queue) LPop() ([]byte, error) { - queue.lowLock.Lock() - currentID := queue.low - - res, err := queue.db.Get(id2bytes(currentID), nil) - if err != nil { - queue.lowLock.Unlock() - if err == leveldb.ErrNotFound { - return nil, ErrNotFound - } - return nil, err - } - - _, err = queue.lowincrement() - if err != nil { - return nil, err - } - - err = queue.db.Delete(id2bytes(currentID), nil) - queue.lowLock.Unlock() - if err != nil { - return nil, err - } - return res, nil -} - -// Close closes the queue -func (queue *Queue) Close() error { - err := queue.db.Close() - queue.db = nil - return err -} |