// Copyright (c) 2012, Suryandaru Triandana // All rights reserved. // // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package leveldb import ( "bufio" "encoding/binary" "io" "strings" "github.com/syndtr/goleveldb/leveldb/errors" "github.com/syndtr/goleveldb/leveldb/storage" ) type byteReader interface { io.Reader io.ByteReader } // These numbers are written to disk and should not be changed. const ( recComparer = 1 recJournalNum = 2 recNextFileNum = 3 recSeqNum = 4 recCompPtr = 5 recDelTable = 6 recAddTable = 7 // 8 was used for large value refs recPrevJournalNum = 9 ) type cpRecord struct { level int ikey internalKey } type atRecord struct { level int num int64 size int64 imin internalKey imax internalKey } type dtRecord struct { level int num int64 } type sessionRecord struct { hasRec int comparer string journalNum int64 prevJournalNum int64 nextFileNum int64 seqNum uint64 compPtrs []cpRecord addedTables []atRecord deletedTables []dtRecord scratch [binary.MaxVarintLen64]byte err error } func (p *sessionRecord) has(rec int) bool { return p.hasRec&(1<