86 lines
2.4 KiB
Go
86 lines
2.4 KiB
Go
package honeybee
|
|
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
|
|
"git.wisehodl.dev/jay/go-honeybee/initiatorpool"
|
|
"git.wisehodl.dev/jay/go-honeybee/transport"
|
|
)
|
|
|
|
// Connection types
|
|
|
|
type Connection = transport.Connection
|
|
type ConnectionConfig = transport.ConnectionConfig
|
|
type RetryConfig = transport.RetryConfig
|
|
type ConnectionOption = transport.ConnectionOption
|
|
|
|
// Initator Pool types
|
|
|
|
type InitiatorPool = initiatorpool.Pool
|
|
type InitiatorPoolConfig = initiatorpool.PoolConfig
|
|
type InitiatorPoolOption = initiatorpool.PoolOption
|
|
type InitiatorWorkerConfig = initiatorpool.WorkerConfig
|
|
type InitiatorWorkerOption = initiatorpool.WorkerOption
|
|
type InitiatorInboxMessage = initiatorpool.InboxMessage
|
|
type InitiatorPoolEvent = initiatorpool.PoolEvent
|
|
type InitiatorPoolEventKind = initiatorpool.PoolEventKind
|
|
|
|
// Pool event constants
|
|
|
|
const (
|
|
EventConnected = initiatorpool.EventConnected
|
|
EventDisconnected = initiatorpool.EventDisconnected
|
|
)
|
|
|
|
// Connection constructors
|
|
|
|
func NewConnection(url string, config *ConnectionConfig, logger *slog.Logger) (*Connection, error) {
|
|
return transport.NewConnection(url, config, logger)
|
|
}
|
|
|
|
func NewConnectionConfig(opts ...ConnectionOption) (*ConnectionConfig, error) {
|
|
return transport.NewConnectionConfig(opts...)
|
|
}
|
|
|
|
// Connection options
|
|
|
|
var (
|
|
WithoutRetry = transport.WithoutRetry
|
|
WithRetryMaxRetries = transport.WithRetryMaxRetries
|
|
WithRetryInitialDelay = transport.WithRetryInitialDelay
|
|
WithRetryMaxDelay = transport.WithRetryMaxDelay
|
|
WithRetryJitterFactor = transport.WithRetryJitterFactor
|
|
WithWriteTimeout = transport.WithWriteTimeout
|
|
WithCloseHandler = transport.WithCloseHandler
|
|
)
|
|
|
|
// Initiator Pool constructors
|
|
|
|
func NewInitiatorPool(ctx context.Context, config *InitiatorPoolConfig, logger *slog.Logger) (*InitiatorPool, error) {
|
|
return initiatorpool.NewPool(ctx, config, logger)
|
|
}
|
|
|
|
func NewInitiatorPoolConfig(opts ...InitiatorPoolOption) (*InitiatorPoolConfig, error) {
|
|
return initiatorpool.NewPoolConfig(opts...)
|
|
}
|
|
|
|
func NewInitiatorWorkerConfig(opts ...InitiatorWorkerOption) (*InitiatorWorkerConfig, error) {
|
|
return initiatorpool.NewWorkerConfig(opts...)
|
|
}
|
|
|
|
// Initiator Pool options
|
|
|
|
var (
|
|
WithConnectionConfig = initiatorpool.WithConnectionConfig
|
|
WithWorkerConfig = initiatorpool.WithWorkerConfig
|
|
WithWorkerFactory = initiatorpool.WithWorkerFactory
|
|
)
|
|
|
|
// Initiator Worker options
|
|
|
|
var (
|
|
WithKeepaliveTimeout = initiatorpool.WithKeepaliveTimeout
|
|
WithMaxQueueSize = initiatorpool.WithMaxQueueSize
|
|
)
|