Files
consensus/networking/timeout/manager.go
T
zeekay 4aac78700d Refactor: remove dead code, add thread safety, improve test coverage
- Remove unused packages: engine/dag/{getter,bootstrap,vertex/vertexmock},
  engine/pq/{bootstrap,block}, core/{tracker,verify}
- Add sync.RWMutex to protocol/wave for thread-safe map access
- Increase engine/dag test coverage from 11.7% to 98.3%
- Add comprehensive tests for DAG consensus, vertex, and engine
- All 27 packages pass tests, 16 at 100% coverage
2025-12-13 07:42:01 +00:00

75 lines
1.9 KiB
Go

package timeout
import (
"context"
"time"
"github.com/luxfi/consensus/core/router"
"github.com/luxfi/ids"
)
// Manager manages timeouts
type Manager interface {
// RegisterTimeout registers a timeout
RegisterTimeout(time.Duration) func(context.Context, ids.ID) error
// RegisterRequest registers a request
RegisterRequest(ids.NodeID, ids.ID, bool, uint32, func())
// RegisterResponse registers a response
RegisterResponse(ids.NodeID, ids.ID, uint32, Op) (bool, func())
// TimeoutDuration returns timeout duration
TimeoutDuration() time.Duration
}
// Op re-exports from core/router for consistency
type Op = router.Op
// Op constants re-exported from core/router
const (
GetAcceptedFrontier = router.GetAcceptedFrontier
AcceptedFrontier = router.AcceptedFrontier
GetAccepted = router.GetAccepted
Accepted = router.Accepted
Get = router.Get
Put = router.Put
PushQuery = router.PushQuery
PullQuery = router.PullQuery
Chits = router.Chits
)
// manager implementation
type manager struct {
duration time.Duration
}
// NewManager creates a new timeout manager
func NewManager(duration time.Duration) Manager {
return &manager{
duration: duration,
}
}
// RegisterTimeout registers a timeout
func (m *manager) RegisterTimeout(duration time.Duration) func(context.Context, ids.ID) error {
return func(ctx context.Context, id ids.ID) error {
return nil
}
}
// RegisterRequest registers a request
func (m *manager) RegisterRequest(nodeID ids.NodeID, requestID ids.ID, critical bool, uniqueRequestID uint32, callback func()) {
// Implementation
}
// RegisterResponse registers a response
func (m *manager) RegisterResponse(nodeID ids.NodeID, requestID ids.ID, uniqueRequestID uint32, op Op) (bool, func()) {
return false, func() {}
}
// TimeoutDuration returns timeout duration
func (m *manager) TimeoutDuration() time.Duration {
return m.duration
}