Exemplo n.º 1
0
Arquivo: put.go Projeto: mewbak/repbin
// updateKeyIndex updates a key index by writing the new struct with an increased counter
func updateKeyIndex(tx fileback.Tx, msgStruct *structs.MessageStruct, msgStructEncoded structs.MessageStructEncoded) error { // Ignore errors
	prev := tx.GetLast()
	if prev == nil {
		log.Errors("messagestore, globalindex getLast: NIL")
		err := tx.Append(msgStructEncoded)
		return err
	}
	prevStr := structs.MessageStructDecode(prev)
	if prevStr == nil {
		log.Errors("messagestore, globalindex decode: NIL")
		err := tx.Append(msgStructEncoded)
		return err
	}
	msgStruct.Counter = prevStr.Counter + 1 // Increase counter
	msgStructEncoded = msgStruct.Encode().Fill()
	err := tx.Append(msgStructEncoded)
	return err
}