|
|
package batch
import ( "fmt" "github.com/vocdoni/dvote-relay/types" "github.com/vocdoni/dvote-relay/db" )
var rdb *db.LevelDbStorage var bdb *db.LevelDbStorage var BatchSignal chan bool var BatchSize int var currentBatchSize int var err error
func Setup(l *db.LevelDbStorage) { rdb = l.WithPrefix([]byte("relay")) bdb = l.WithPrefix([]byte("batch")) fmt.Println("Batch storage:") fmt.Println(bdb) }
//add (queue for counting)
func Add(p types.Packet) error { fmt.Println(bdb) err := bdb.Put([]byte(fmt.Sprintf("%v", p.Nullifier)),[]byte(fmt.Sprintf("%v", p))) if err != nil { return err }
currentBatchSize++ if currentBatchSize >= BatchSize { BatchSignal <- true } return nil }
//create (return batch)
func Create() []byte { var b []byte
iter := bdb.Iter() for iter.Next() { //k := iter.Key()
//v := iter.Value()
err := iter.Error() if err != nil { panic(err) } //put p in batch
//rdb.Put(iter.Key(), iter.Val(), nil)
//bdb.Delete(iter.Key(), nil)
} iter.Release() return b }
|