mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-24 15:56:42 +00:00

* [NOD-1223] Delete unused files/packages. * [NOD-1223] Move signal and limits to the os package. * [NOD-1223] Put database and dbaccess into the db package. * [NOD-1223] Fold the logs package into the logger package. * [NOD-1223] Rename domainmessage to appmessage. * [NOD-1223] Rename to/from DomainMessage to AppMessage. * [NOD-1223] Move appmessage to the app packge. * [NOD-1223] Move protocol to the app packge. * [NOD-1223] Move the network package to the infrastructure packge. * [NOD-1223] Rename cmd to executables. * [NOD-1223] Fix go.doc in the logger package.
36 lines
731 B
Go
36 lines
731 B
Go
package blockrelay
|
|
|
|
import "github.com/kaspanet/kaspad/util/daghash"
|
|
|
|
type hashesQueueSet struct {
|
|
queue []*daghash.Hash
|
|
set map[daghash.Hash]struct{}
|
|
}
|
|
|
|
func (r *hashesQueueSet) enqueueIfNotExists(hash *daghash.Hash) {
|
|
if _, ok := r.set[*hash]; ok {
|
|
return
|
|
}
|
|
r.queue = append(r.queue, hash)
|
|
r.set[*hash] = struct{}{}
|
|
}
|
|
|
|
func (r *hashesQueueSet) dequeue(numItems int) []*daghash.Hash {
|
|
var hashes []*daghash.Hash
|
|
hashes, r.queue = r.queue[:numItems], r.queue[numItems:]
|
|
for _, hash := range hashes {
|
|
delete(r.set, *hash)
|
|
}
|
|
return hashes
|
|
}
|
|
|
|
func (r *hashesQueueSet) len() int {
|
|
return len(r.queue)
|
|
}
|
|
|
|
func newHashesQueueSet() *hashesQueueSet {
|
|
return &hashesQueueSet{
|
|
set: make(map[daghash.Hash]struct{}),
|
|
}
|
|
}
|