package blobstor

import "time"

type Metrics interface {
	SetParentID(parentID string)
	SetMode(readOnly bool)
	Close()

	Delete(d time.Duration, success, withStorageID bool)
	Exists(d time.Duration, success, withStorageID bool)
	GetRange(d time.Duration, size int, success, withStorageID bool)
	Get(d time.Duration, size int, success, withStorageID bool)
	Iterate(d time.Duration, success bool)
	Put(d time.Duration, size int, success bool)
	ObjectsCount(d time.Duration, success bool)
}

type noopMetrics struct{}

func (m *noopMetrics) SetParentID(string)                      {}
func (m *noopMetrics) SetMode(bool)                            {}
func (m *noopMetrics) Close()                                  {}
func (m *noopMetrics) Delete(time.Duration, bool, bool)        {}
func (m *noopMetrics) Exists(time.Duration, bool, bool)        {}
func (m *noopMetrics) GetRange(time.Duration, int, bool, bool) {}
func (m *noopMetrics) Get(time.Duration, int, bool, bool)      {}
func (m *noopMetrics) Iterate(time.Duration, bool)             {}
func (m *noopMetrics) Put(time.Duration, int, bool)            {}
func (m *noopMetrics) ObjectsCount(time.Duration, bool)        {}