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  }