mirror of
https://github.com/luxfi/consensus.git
synced 2026-09-24 00:26:58 +00:00
- 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
75 lines
1.9 KiB
Go
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
|
|
}
|