pub mod client;
pub mod config;
pub mod connection_state;
pub mod expert_config;
pub mod pool;
pub mod request_manager;
pub mod request_registry;
pub mod server;
pub mod transport;
pub mod transport_server;
pub mod connection_factory;
pub mod context;
pub mod lockfree;
pub mod lockfree_connection;
pub mod memory_pool;
pub mod protocol_adapter;
pub mod session_actor;
pub use client::{
CircuitBreakerConfig, ConnectionOptions, ConnectionPoolConfig, ConnectionPriority,
LoadBalancerConfig, RetryConfig, TransportClient, TransportClientBuilder,
};
pub use context::TransportContext;
pub use server::TransportServerBuilder;
pub use transport::Transport;
pub use transport_server::TransportServer;
pub use config::TransportConfig;
pub use memory_pool::{
BufferSize, MemoryPoolEvent, OptimizedMemoryPool as MemoryPool,
OptimizedMemoryStats as MemoryStats, OptimizedMemoryStatsSnapshot as MemoryStatsSnapshot,
};
pub use protocol_adapter::{
create_test_packet, FlumePoweredProtocolAdapter, LockFreeProtocolStats as ProtocolStats,
PerformanceMetrics, ProtocolEvent, ProtocolStatsSnapshot,
};
pub use pool::{ConnectionPool, ExpansionStrategy, OptimizedPoolStatsSnapshot, PoolDetailedStatus};
pub use expert_config::{ExpertConfig, PerformanceConfig, SmartPoolConfig};
pub use server::{
AcceptorConfig, AuthMiddleware, BackpressureStrategy, LoggingMiddleware, RateLimiterConfig,
ServerMiddleware, ServerOptions,
};
pub use lockfree::{
CounterStats, LockFreeCounter, LockFreeHashMap, LockFreeQueue, LockFreeStats, QueueStats,
};
pub use lockfree_connection::{
LockFreeConnection, LockFreeConnectionCommand, LockFreeConnectionStats,
};
pub use connection_state::{ConnectionState, ConnectionStateManager};
pub use request_registry::{
MarkResult as RequestMarkResult, RequestCountersSnapshot, RequestEntry, RequestKey,
RequestRegistry, RequestState,
};
use crate::packet::CompressionType;
use bytes::Bytes;
use std::time::Duration;
#[derive(Default, Clone, Debug)]
pub struct TransportOptions {
pub timeout: Option<Duration>,
pub compression: Option<CompressionType>,
pub biz_type: Option<u8>,
pub ext_header: Option<Bytes>,
pub message_id: Option<u32>,
}
impl TransportOptions {
pub fn new() -> Self {
Self::default()
}
pub fn with_timeout(mut self, timeout: Duration) -> Self {
self.timeout = Some(timeout);
self
}
pub fn with_compression(mut self, compression: CompressionType) -> Self {
self.compression = Some(compression);
self
}
pub fn with_biz_type(mut self, biz_type: u8) -> Self {
self.biz_type = Some(biz_type);
self
}
pub fn with_ext_header(mut self, ext_header: Bytes) -> Self {
self.ext_header = Some(ext_header);
self
}
pub fn with_message_id(mut self, message_id: u32) -> Self {
self.message_id = Some(message_id);
self
}
}
pub use connection_factory::{
ConnectionConfig, ConnectionFactory, ConnectionMetrics, ConnectionResult,
};
pub use session_actor::{
create_session_actor, ActorMessage, Responder, SessionActor, SessionHandle, SessionHandler,
SessionSender, DEFAULT_ACTOR_BUFFER_SIZE,
};