Files
go-honeybee/honeybee.go
T

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
)