counter

package
v0.0.0-...-794c571 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2026 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type StatReader

type StatReader struct {
	Reader  buf.TimeoutReader
	Storage *TrafficStorage
}

func (*StatReader) Interrupt

func (r *StatReader) Interrupt()

func (*StatReader) ReadMultiBuffer

func (r *StatReader) ReadMultiBuffer() (buf.MultiBuffer, error)

func (*StatReader) ReadMultiBufferTimeout

func (r *StatReader) ReadMultiBufferTimeout(d interface{ Nanoseconds() int64 }) (buf.MultiBuffer, error)

type StatWriter

type StatWriter struct {
	Writer  buf.Writer
	Storage *TrafficStorage
}

func (*StatWriter) Close

func (w *StatWriter) Close() error

func (*StatWriter) Interrupt

func (w *StatWriter) Interrupt()

func (*StatWriter) WriteMultiBuffer

func (w *StatWriter) WriteMultiBuffer(mb buf.MultiBuffer) error

type TrafficCounter

type TrafficCounter struct {
	// contains filtered or unexported fields
}

TrafficCounter holds per-user storage, keyed by email.

func NewTrafficCounter

func NewTrafficCounter() *TrafficCounter

func (*TrafficCounter) Delete

func (c *TrafficCounter) Delete(email string)

func (*TrafficCounter) GetCounter

func (c *TrafficCounter) GetCounter(email string) *TrafficStorage

func (*TrafficCounter) GetDownCount

func (c *TrafficCounter) GetDownCount(email string) int64

func (*TrafficCounter) GetUpCount

func (c *TrafficCounter) GetUpCount(email string) int64

func (*TrafficCounter) Len

func (c *TrafficCounter) Len() int

func (*TrafficCounter) Reset

func (c *TrafficCounter) Reset(email string)

type TrafficStorage

type TrafficStorage struct {
	UpCounter   atomic.Int64
	DownCounter atomic.Int64
}

TrafficStorage holds atomic byte counters for one user.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL