package writecache

func (c *cache) estimateCacheSize() (uint64, uint64) {
	count, size := c.counter.CountSize()
	c.metrics.SetEstimateSize(size)
	c.metrics.SetActualCounters(count)
	return count, size
}

func (c *cache) hasEnoughSpaceFS() bool {
	return c.hasEnoughSpace(c.maxObjectSize)
}

func (c *cache) hasEnoughSpace(objectSize uint64) bool {
	count, size := c.estimateCacheSize()
	if c.maxCacheCount > 0 && count+1 > c.maxCacheCount {
		return false
	}
	return c.maxCacheSize >= size+objectSize
}

func (c *cache) initCounters() error {
	c.estimateCacheSize()
	return nil
}