|
@@ -16,30 +16,18 @@ import (
|
|
|
)
|
|
|
|
|
|
type Manager struct {
|
|
|
- uploadTemp atomic.Int64
|
|
|
- downloadTemp atomic.Int64
|
|
|
- uploadBlip atomic.Int64
|
|
|
- downloadBlip atomic.Int64
|
|
|
uploadTotal atomic.Int64
|
|
|
downloadTotal atomic.Int64
|
|
|
|
|
|
connections compatible.Map[uuid.UUID, Tracker]
|
|
|
closedConnectionsAccess sync.Mutex
|
|
|
closedConnections list.List[TrackerMetadata]
|
|
|
- ticker *time.Ticker
|
|
|
- done chan struct{}
|
|
|
// process *process.Process
|
|
|
memory uint64
|
|
|
}
|
|
|
|
|
|
func NewManager() *Manager {
|
|
|
- manager := &Manager{
|
|
|
- ticker: time.NewTicker(time.Second),
|
|
|
- done: make(chan struct{}),
|
|
|
- // process: &process.Process{Pid: int32(os.Getpid())},
|
|
|
- }
|
|
|
- go manager.handle()
|
|
|
- return manager
|
|
|
+ return &Manager{}
|
|
|
}
|
|
|
|
|
|
func (m *Manager) Join(c Tracker) {
|
|
@@ -61,19 +49,13 @@ func (m *Manager) Leave(c Tracker) {
|
|
|
}
|
|
|
|
|
|
func (m *Manager) PushUploaded(size int64) {
|
|
|
- m.uploadTemp.Add(size)
|
|
|
m.uploadTotal.Add(size)
|
|
|
}
|
|
|
|
|
|
func (m *Manager) PushDownloaded(size int64) {
|
|
|
- m.downloadTemp.Add(size)
|
|
|
m.downloadTotal.Add(size)
|
|
|
}
|
|
|
|
|
|
-func (m *Manager) Now() (up int64, down int64) {
|
|
|
- return m.uploadBlip.Load(), m.downloadBlip.Load()
|
|
|
-}
|
|
|
-
|
|
|
func (m *Manager) Total() (up int64, down int64) {
|
|
|
return m.uploadTotal.Load(), m.downloadTotal.Load()
|
|
|
}
|
|
@@ -127,36 +109,10 @@ func (m *Manager) Snapshot() *Snapshot {
|
|
|
}
|
|
|
|
|
|
func (m *Manager) ResetStatistic() {
|
|
|
- m.uploadTemp.Store(0)
|
|
|
- m.uploadBlip.Store(0)
|
|
|
m.uploadTotal.Store(0)
|
|
|
- m.downloadTemp.Store(0)
|
|
|
- m.downloadBlip.Store(0)
|
|
|
m.downloadTotal.Store(0)
|
|
|
}
|
|
|
|
|
|
-func (m *Manager) handle() {
|
|
|
- var uploadTemp int64
|
|
|
- var downloadTemp int64
|
|
|
- for {
|
|
|
- select {
|
|
|
- case <-m.done:
|
|
|
- return
|
|
|
- case <-m.ticker.C:
|
|
|
- }
|
|
|
- uploadTemp = m.uploadTemp.Swap(0)
|
|
|
- downloadTemp = m.downloadTemp.Swap(0)
|
|
|
- m.uploadBlip.Store(uploadTemp)
|
|
|
- m.downloadBlip.Store(downloadTemp)
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func (m *Manager) Close() error {
|
|
|
- m.ticker.Stop()
|
|
|
- close(m.done)
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
type Snapshot struct {
|
|
|
Download int64
|
|
|
Upload int64
|