Documentation
¶
Overview ¶
Package queue. This memory store is for testing purposes only. True production store will be implemented later. So im adding a TODO comment here.
Index ¶
- type Config
- type MemoryXTRequestQueue
- func (q *MemoryXTRequestQueue) Dequeue(context.Context) (*QueuedXTRequest, error)
- func (q *MemoryXTRequestQueue) Enqueue(_ context.Context, request *QueuedXTRequest) error
- func (q *MemoryXTRequestQueue) Peek(context.Context) (*QueuedXTRequest, error)
- func (q *MemoryXTRequestQueue) RemoveExpired(context.Context) (int, error)
- func (q *MemoryXTRequestQueue) RequeueForSlot(_ context.Context, requests []*QueuedXTRequest) error
- func (q *MemoryXTRequestQueue) Size(context.Context) (int, error)
- type PriorityQueue
- type QueuedXTRequest
- type XTRequestQueue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
MaxSize int `mapstructure:"max_size" yaml:"max_size"`
RequestExpiration time.Duration `mapstructure:"request_expiration" yaml:"request_expiration"`
}
Config holds transaction queue configuration
func DefaultConfig ¶
func DefaultConfig() Config
type MemoryXTRequestQueue ¶
type MemoryXTRequestQueue struct {
// contains filtered or unexported fields
}
MemoryXTRequestQueue provides in-memory priority queue for cross-chain transaction requests
func NewMemoryXTRequestQueue ¶
func NewMemoryXTRequestQueue(config Config) *MemoryXTRequestQueue
func (*MemoryXTRequestQueue) Dequeue ¶
func (q *MemoryXTRequestQueue) Dequeue(context.Context) (*QueuedXTRequest, error)
func (*MemoryXTRequestQueue) Enqueue ¶
func (q *MemoryXTRequestQueue) Enqueue(_ context.Context, request *QueuedXTRequest) error
func (*MemoryXTRequestQueue) Peek ¶
func (q *MemoryXTRequestQueue) Peek(context.Context) (*QueuedXTRequest, error)
func (*MemoryXTRequestQueue) RemoveExpired ¶
func (q *MemoryXTRequestQueue) RemoveExpired(context.Context) (int, error)
func (*MemoryXTRequestQueue) RequeueForSlot ¶
func (q *MemoryXTRequestQueue) RequeueForSlot(_ context.Context, requests []*QueuedXTRequest) error
type PriorityQueue ¶
type PriorityQueue []*QueuedXTRequest
PriorityQueue implements a priority queue for QueuedXTRequest
func (PriorityQueue) Len ¶
func (pq PriorityQueue) Len() int
func (PriorityQueue) Less ¶
func (pq PriorityQueue) Less(i, j int) bool
func (*PriorityQueue) Pop ¶
func (pq *PriorityQueue) Pop() interface{}
func (*PriorityQueue) Push ¶
func (pq *PriorityQueue) Push(x interface{})
func (PriorityQueue) Swap ¶
func (pq PriorityQueue) Swap(i, j int)
type QueuedXTRequest ¶
type XTRequestQueue ¶
type XTRequestQueue interface {
Enqueue(ctx context.Context, request *QueuedXTRequest) error
Dequeue(ctx context.Context) (*QueuedXTRequest, error)
Peek(ctx context.Context) (*QueuedXTRequest, error)
Size(ctx context.Context) (int, error)
RemoveExpired(ctx context.Context) (int, error)
RequeueForSlot(ctx context.Context, requests []*QueuedXTRequest) error
}
Click to show internal directories.
Click to hide internal directories.