[][src]Struct stratum_server::Connection

pub struct Connection<SM: StratumManager> {
    pub id: ID,
    pub write_half: Arc<Mutex<WriteHalf<TcpStream>>>,
    pub read_half: Arc<Mutex<BufReader<ReadHalf<TcpStream>>>>,
    pub authorized: Arc<Mutex<bool>>,
    pub data_provider: Arc<SM::DataProvider>,
    pub block_validator: Arc<SM::BlockValidator>,
    pub auth_manager: Arc<SM::AuthManager>,
    pub session_start: SystemTime,
    pub state: Mutex<State>,
    pub subscribed: Arc<Mutex<bool>>,
    pub subscriber_id: Arc<Mutex<String>>,
    pub miner_info: Arc<RwLock<MinerInfo>>,
    pub difficulty: Arc<Mutex<f64>>,
    pub submissions: Arc<Mutex<u64>>,
    pub last_retarget: Arc<Mutex<SystemTime>>,
    pub next_difficulty: Arc<Mutex<f64>>,
    pub job_stats: Arc<Mutex<JobStats>>,
    pub options: Arc<MinerOptions>,
    pub stats: Arc<Mutex<MinerStats>>,
    pub needs_ban: Arc<Mutex<bool>>,
    pub var_diff: bool,
    pub ban_stats: Arc<Mutex<BanStats>>,
    pub classic: Arc<Mutex<bool>>,
    pub last_message_id: Arc<Mutex<ID>>,
}

Fields

id: IDwrite_half: Arc<Mutex<WriteHalf<TcpStream>>>read_half: Arc<Mutex<BufReader<ReadHalf<TcpStream>>>>authorized: Arc<Mutex<bool>>data_provider: Arc<SM::DataProvider>block_validator: Arc<SM::BlockValidator>auth_manager: Arc<SM::AuthManager>session_start: SystemTimestate: Mutex<State>subscribed: Arc<Mutex<bool>>subscriber_id: Arc<Mutex<String>>miner_info: Arc<RwLock<MinerInfo>>difficulty: Arc<Mutex<f64>>submissions: Arc<Mutex<u64>>last_retarget: Arc<Mutex<SystemTime>>next_difficulty: Arc<Mutex<f64>>job_stats: Arc<Mutex<JobStats>>options: Arc<MinerOptions>stats: Arc<Mutex<MinerStats>>needs_ban: Arc<Mutex<bool>>var_diff: boolban_stats: Arc<Mutex<BanStats>>classic: Arc<Mutex<bool>>last_message_id: Arc<Mutex<ID>>

Methods

impl<SM> Connection<SM> where
    SM: StratumManager
[src]

pub fn new(
    addr: SocketAddr,
    rh: BufReader<ReadHalf<TcpStream>>,
    wh: WriteHalf<TcpStream>,
    data_provider: Arc<SM::DataProvider>,
    auth_manager: Arc<SM::AuthManager>,
    block_validator: Arc<SM::BlockValidator>,
    var_diff: bool,
    initial_difficulty: f64
) -> Self
[src]

pub async fn start<'_>(&'_ self) -> Result<()>[src]

pub async fn handle_requests<'_>(
    &'_ self,
    req: Request<SM::PoolParams, SM::StratumParams>
) -> Result<()>
[src]

pub async fn handle_responses<'_>(
    &'_ self,
    _res: Response<SM::PoolParams>
) -> Result<()>
[src]

pub async fn next_message<'_>(
    &'_ self
) -> Result<StratumPacket<SM::PoolParams, SM::StratumParams>>
[src]

pub async fn shutdown<'_>(&'_ self) -> Result<()>[src]

pub async fn handle_authorize<'_, '_>(
    &'_ self,
    auth: &'_ <SM::PoolParams as PoolParams>::Authorize,
    classic: bool
) -> Result<()>
[src]

pub async fn send_initial_work<'_>(&'_ self) -> Result<()>[src]

pub async fn send_work<'_>(&'_ self) -> Result<()>[src]

pub async fn handle_submit<'_, '_>(
    &'_ self,
    share: &'_ <SM::StratumParams as StratumParams>::Submit
) -> Result<()>
[src]

pub async fn handle_subscribe<'_, '_>(
    &'_ self,
    subscribe: &'_ <SM::PoolParams as PoolParams>::Subscribe
) -> Result<()>
[src]

pub async fn handle_unknown<'_, '_>(&'_ self, _msg: &'_ Value) -> Result<()>[src]

pub async fn disconnect<'_>(&'_ self)[src]

pub async fn ban<'_>(&'_ self)[src]

pub async fn needs_ban<'_>(&'_ self) -> bool[src]

pub async fn get_stats<'_>(&'_ self) -> MinerStats[src]

Trait Implementations

impl<SM: Debug + StratumManager> Debug for Connection<SM> where
    SM::DataProvider: Debug,
    SM::BlockValidator: Debug,
    SM::AuthManager: Debug
[src]

Auto Trait Implementations

impl<SM> !RefUnwindSafe for Connection<SM>

impl<SM> Send for Connection<SM> where
    <SM as StratumManager>::AuthManager: Send + Sync,
    <SM as StratumManager>::BlockValidator: Send + Sync,
    <SM as StratumManager>::DataProvider: Send + Sync

impl<SM> Sync for Connection<SM> where
    <SM as StratumManager>::AuthManager: Send + Sync,
    <SM as StratumManager>::BlockValidator: Send + Sync,
    <SM as StratumManager>::DataProvider: Send + Sync

impl<SM> Unpin for Connection<SM>

impl<SM> !UnwindSafe for Connection<SM>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,