Documentation
¶
Index ¶
- Constants
- func BiggestAddressPlusOne(hashDivider uint64) int64
- func CreateHashEmptyFiles() error
- func CreateHashIndexFiles() error
- func HashHexToSha256(hexAscii string, sha256 *Sha256) error
- func HashSha256ToHexString(hash *Sha256) string
- func NewHashEntriesList(address uint64) *hashEntriesList
- func NewUniformHashStoreCreatorAndPreloader(folder string, name string, hashCountEstimate int64, digitsPerFolder int, ...) (HashStoreCreator, *MultipassPreloader)
- func NewUniformHashStoreCreatorAndPreloaderFromFile(folder string, name string, gigabytesMem int64) (*UniformHashStoreCreator, *MultipassPreloader, error)
- type BasicHashStore
- func (bhs *BasicHashStore) AppendHash(hash *Sha256) (int64, error)
- func (bhs *BasicHashStore) Close() error
- func (bhs *BasicHashStore) CountHashes() (int64, error)
- func (bhs *BasicHashStore) GetHashAtIndex(index int64, hash *Sha256) error
- func (bhs *BasicHashStore) IndexOfHash(hash *Sha256) (int64, error)
- func (bhs *BasicHashStore) Sync() error
- type ConcreteHashStoreCreator
- type ConcreteHashStoreCreatorMemory
- func (hsc *ConcreteHashStoreCreatorMemory) CreateHashStore() error
- func (hsc *ConcreteHashStoreCreatorMemory) HashStoreExists() bool
- func (hsc *ConcreteHashStoreCreatorMemory) OpenHashStore() (HashReadWriter, error)
- func (hsc *ConcreteHashStoreCreatorMemory) OpenHashStoreReadOnly() (HashReader, error)
- type HashReadWriter
- type HashReader
- type HashStore
- func (hs *HashStore) AppendHash(hash *Sha256) (int64, error)
- func (hs *HashStore) Close() error
- func (hs *HashStore) CountHashes() (int64, error)
- func (hs *HashStore) GetHashAtIndex(index int64, hash *Sha256) error
- func (hs *HashStore) IndexOfHash(hash *Sha256) (int64, error)
- func (hs *HashStore) Sync() error
- type HashStoreCreator
- type MemoryIndexedHashes
- func (mih *MemoryIndexedHashes) AppendHash(hash *Sha256) (int64, error)
- func (mih *MemoryIndexedHashes) Close() error
- func (mih *MemoryIndexedHashes) CountHashes() (int64, error)
- func (mih *MemoryIndexedHashes) GetHashAtIndex(index int64, hash *Sha256) error
- func (mih *MemoryIndexedHashes) IndexOfHash(hash *Sha256) (int64, error)
- func (mih *MemoryIndexedHashes) Sync() error
- type MultipassPreloader
- type ReadWriteSeekCloser
- type Sha256
- type SinglePassDetails
- type UniformHashPreLoader
- type UniformHashStore
- func (us *UniformHashStore) AppendHash(hash *Sha256) (int64, error)
- func (us *UniformHashStore) Close() error
- func (us *UniformHashStore) CountHashes() (int64, error)
- func (us *UniformHashStore) GetHashAtIndex(index int64, hash *Sha256) error
- func (us *UniformHashStore) IndexOfHash(hash *Sha256) (int64, error)
- func (us *UniformHashStore) Sync() error
- func (us *UniformHashStore) Test() (bool, error)
- type UniformHashStoreCreator
- type UniformHashStoreParams
Constants ¶
View Source
const ZEROBUF = 32 // Arbitrary number. Should be enough (we do check)
Variables ¶
This section is empty.
Functions ¶
func BiggestAddressPlusOne ¶ added in v0.0.12
func CreateHashEmptyFiles ¶ added in v0.0.12
func CreateHashEmptyFiles() error
func CreateHashIndexFiles ¶ added in v0.0.12
func CreateHashIndexFiles() error
func HashHexToSha256 ¶
func HashSha256ToHexString ¶
func NewHashEntriesList ¶ added in v0.0.12
func NewHashEntriesList(address uint64) *hashEntriesList
func NewUniformHashStoreCreatorAndPreloader ¶ added in v0.0.12
func NewUniformHashStoreCreatorAndPreloader( folder string, name string, hashCountEstimate int64, digitsPerFolder int, gigabytesMem int64) (HashStoreCreator, *MultipassPreloader)
func NewUniformHashStoreCreatorAndPreloaderFromFile ¶ added in v0.0.12
func NewUniformHashStoreCreatorAndPreloaderFromFile( folder string, name string, gigabytesMem int64) (*UniformHashStoreCreator, *MultipassPreloader, error)
Types ¶
type BasicHashStore ¶
type BasicHashStore struct {
// contains filtered or unexported fields
}
func NewBasicHashStore ¶
func NewBasicHashStore(hashFile *wordfile.HashFile) *BasicHashStore
func (*BasicHashStore) AppendHash ¶
func (bhs *BasicHashStore) AppendHash(hash *Sha256) (int64, error)
func (*BasicHashStore) Close ¶
func (bhs *BasicHashStore) Close() error
func (*BasicHashStore) CountHashes ¶
func (bhs *BasicHashStore) CountHashes() (int64, error)
func (*BasicHashStore) GetHashAtIndex ¶
func (bhs *BasicHashStore) GetHashAtIndex(index int64, hash *Sha256) error
func (*BasicHashStore) IndexOfHash ¶ added in v0.0.7
func (bhs *BasicHashStore) IndexOfHash(hash *Sha256) (int64, error)
IndexOfHash This is a very slow naive implementation, and should only be used for testing
func (*BasicHashStore) Sync ¶
func (bhs *BasicHashStore) Sync() error
type ConcreteHashStoreCreator ¶
type ConcreteHashStoreCreator struct {
// contains filtered or unexported fields
}
func (*ConcreteHashStoreCreator) CreateHashStore ¶
func (hsc *ConcreteHashStoreCreator) CreateHashStore() error
func (*ConcreteHashStoreCreator) HashStoreExists ¶
func (hsc *ConcreteHashStoreCreator) HashStoreExists() bool
func (*ConcreteHashStoreCreator) OpenHashStore ¶
func (hsc *ConcreteHashStoreCreator) OpenHashStore() (HashReadWriter, error)
func (*ConcreteHashStoreCreator) OpenHashStoreReadOnly ¶
func (hsc *ConcreteHashStoreCreator) OpenHashStoreReadOnly() (HashReader, error)
type ConcreteHashStoreCreatorMemory ¶ added in v0.0.12
type ConcreteHashStoreCreatorMemory struct {
// contains filtered or unexported fields
}
func NewConcreteHashStoreCreatorMemory ¶ added in v0.0.12
func NewConcreteHashStoreCreatorMemory(name string, folder string) (*ConcreteHashStoreCreatorMemory, error)
func (*ConcreteHashStoreCreatorMemory) CreateHashStore ¶ added in v0.0.12
func (hsc *ConcreteHashStoreCreatorMemory) CreateHashStore() error
func (*ConcreteHashStoreCreatorMemory) HashStoreExists ¶ added in v0.0.12
func (hsc *ConcreteHashStoreCreatorMemory) HashStoreExists() bool
func (*ConcreteHashStoreCreatorMemory) OpenHashStore ¶ added in v0.0.12
func (hsc *ConcreteHashStoreCreatorMemory) OpenHashStore() (HashReadWriter, error)
func (*ConcreteHashStoreCreatorMemory) OpenHashStoreReadOnly ¶ added in v0.0.12
func (hsc *ConcreteHashStoreCreatorMemory) OpenHashStoreReadOnly() (HashReader, error)
type HashReadWriter ¶
type HashReadWriter interface { HashReader AppendHash(hash *Sha256) (int64, error) Sync() error }
type HashReader ¶
type HashStore ¶
type HashStore struct {
// contains filtered or unexported fields
}
func NewHashStore ¶
func NewHashStore(partialHashBitCount int64, entryByteCount int64, collisionsPerChunk int64, hashesFile *BasicHashStore, lookupsFile memfile.SparseLookupFile, collisionsFile *os.File) *HashStore
func (*HashStore) CountHashes ¶
func (*HashStore) GetHashAtIndex ¶
func (*HashStore) IndexOfHash ¶
IndexOfHash -1 indicates "Not Present" but error will be nil if that's all that is wrong
type HashStoreCreator ¶
type HashStoreCreator interface { HashStoreExists() bool CreateHashStore() error OpenHashStore() (HashReadWriter, error) OpenHashStoreReadOnly() (HashReader, error) }
type MemoryIndexedHashes ¶ added in v0.0.12
type MemoryIndexedHashes struct {
// contains filtered or unexported fields
}
func NewMemoryIndexedHashes ¶ added in v0.0.12
func NewMemoryIndexedHashes(hashFile *wordfile.HashFile) *MemoryIndexedHashes
func (*MemoryIndexedHashes) AppendHash ¶ added in v0.0.12
func (mih *MemoryIndexedHashes) AppendHash(hash *Sha256) (int64, error)
func (*MemoryIndexedHashes) Close ¶ added in v0.0.12
func (mih *MemoryIndexedHashes) Close() error
func (*MemoryIndexedHashes) CountHashes ¶ added in v0.0.12
func (mih *MemoryIndexedHashes) CountHashes() (int64, error)
func (*MemoryIndexedHashes) GetHashAtIndex ¶ added in v0.0.12
func (mih *MemoryIndexedHashes) GetHashAtIndex(index int64, hash *Sha256) error
func (*MemoryIndexedHashes) IndexOfHash ¶ added in v0.0.12
func (mih *MemoryIndexedHashes) IndexOfHash(hash *Sha256) (int64, error)
func (*MemoryIndexedHashes) Sync ¶ added in v0.0.12
func (mih *MemoryIndexedHashes) Sync() error
type MultipassPreloader ¶ added in v0.0.12
type MultipassPreloader struct {
// contains filtered or unexported fields
}
MultipassPreloader is a system that preloads a UniformHashStore fileset. To minimize memory usage, it reads the hashes file multiple times, each time concentrating on a different set of address bins (the set is known as a dumpster)
func NewMultipassPreloader ¶ added in v0.0.12
func NewMultipassPreloader(creator *UniformHashStoreCreator, bytesPerPass int64) *MultipassPreloader
func (*MultipassPreloader) CreateInitialFiles ¶ added in v0.0.12
func (mp *MultipassPreloader) CreateInitialFiles() error
func (*MultipassPreloader) IndexTheHashes ¶ added in v0.0.12
func (mp *MultipassPreloader) IndexTheHashes() error
type ReadWriteSeekCloser ¶
type ReadWriteSeekCloser interface { io.ReadWriteSeeker io.Closer }
type SinglePassDetails ¶ added in v0.0.12
type SinglePassDetails struct {
// contains filtered or unexported fields
}
SinglePassDetails holds details of one of the multiple passes
func NewSinglePassDetails ¶ added in v0.0.12
func NewSinglePassDetails(firstAddress int64, addressCount int64) *SinglePassDetails
func (*SinglePassDetails) ReadIn ¶ added in v0.0.12
func (spd *SinglePassDetails) ReadIn(mp *MultipassPreloader) error
type UniformHashPreLoader ¶ added in v0.0.12
type UniformHashPreLoader struct {
// contains filtered or unexported fields
}
func NewUniformHashPreLoader ¶ added in v0.0.12
func NewUniformHashPreLoader(us *UniformHashStore, blocker *memblocker.MemBlocker) *UniformHashPreLoader
type UniformHashStore ¶ added in v0.0.12
type UniformHashStore struct {
// contains filtered or unexported fields
}
func (*UniformHashStore) AppendHash ¶ added in v0.0.12
func (us *UniformHashStore) AppendHash(hash *Sha256) (int64, error)
func (*UniformHashStore) Close ¶ added in v0.0.12
func (us *UniformHashStore) Close() error
func (*UniformHashStore) CountHashes ¶ added in v0.0.12
func (us *UniformHashStore) CountHashes() (int64, error)
func (*UniformHashStore) GetHashAtIndex ¶ added in v0.0.12
func (us *UniformHashStore) GetHashAtIndex(index int64, hash *Sha256) error
func (*UniformHashStore) IndexOfHash ¶ added in v0.0.12
func (us *UniformHashStore) IndexOfHash(hash *Sha256) (int64, error)
func (*UniformHashStore) Sync ¶ added in v0.0.12
func (us *UniformHashStore) Sync() error
func (*UniformHashStore) Test ¶ added in v0.0.12
func (us *UniformHashStore) Test() (bool, error)
type UniformHashStoreCreator ¶ added in v0.0.12
type UniformHashStoreCreator struct {
// contains filtered or unexported fields
}
func NewUniformHashStoreCreatorPrivate ¶ added in v0.0.12
func NewUniformHashStoreCreatorPrivate(hashCountEstimate int64, folder string, name string, digitsPerFolder int) *UniformHashStoreCreator
func (*UniformHashStoreCreator) CreateHashStore ¶ added in v0.0.12
func (uc *UniformHashStoreCreator) CreateHashStore() error
func (*UniformHashStoreCreator) HashStoreExists ¶ added in v0.0.12
func (uc *UniformHashStoreCreator) HashStoreExists() bool
func (*UniformHashStoreCreator) OpenHashStore ¶ added in v0.0.12
func (uc *UniformHashStoreCreator) OpenHashStore() (HashReadWriter, error)
func (*UniformHashStoreCreator) OpenHashStoreReadOnly ¶ added in v0.0.12
func (uc *UniformHashStoreCreator) OpenHashStoreReadOnly() (HashReader, error)
type UniformHashStoreParams ¶ added in v0.0.12
Click to show internal directories.
Click to hide internal directories.