github.com/Cloud-Foundations/Dominator@v0.3.4/lib/objectcache/api.go (about) 1 package objectcache 2 3 import ( 4 "io" 5 6 "github.com/Cloud-Foundations/Dominator/lib/hash" 7 ) 8 9 type ObjectCache []hash.Hash 10 11 func ScanObjectCache(cacheDirectoryName string) (ObjectCache, error) { 12 objectCache := make(ObjectCache, 0, 16) 13 return scanObjectCache(cacheDirectoryName, "", objectCache) 14 } 15 16 func Decode(reader io.Reader) (ObjectCache, error) { 17 return decode(reader) 18 } 19 20 func (objectCache ObjectCache) Encode(writer io.Writer) error { 21 return objectCache.encode(writer) 22 } 23 24 func CompareObjects(left, right ObjectCache, logWriter io.Writer) bool { 25 return compareObjects(left, right, logWriter) 26 } 27 28 func FilenameToHash(fileName string) (hash.Hash, error) { 29 return filenameToHash(fileName) 30 } 31 32 func HashToFilename(hash hash.Hash) string { 33 return hashToFilename(hash) 34 } 35 36 func ObjectMapToCache(objectMap map[hash.Hash]uint64) ObjectCache { 37 return objectMapToCache(objectMap) 38 } 39 40 func ReadObject(reader io.Reader, length uint64, expectedHash *hash.Hash) ( 41 hash.Hash, []byte, error) { 42 return readObject(reader, length, expectedHash) 43 }