use super::*;
pub struct TransactionClient<'a> {
api: &'a MQClientAPIImpl,
}
impl TransactionClient<'_> {
pub async fn end_transaction(
&self,
addr: &CheetahString,
request_header: EndTransactionRequestHeader,
remark: CheetahString,
timeout_millis: u64,
) -> crate::ClientResult<()> {
self.api
.end_transaction_oneway(addr, request_header, remark, timeout_millis)
.await
}
}
impl MQClientAPIImpl {
#[must_use]
pub fn transaction_client(&self) -> TransactionClient<'_> {
TransactionClient { api: self }
}
}
impl MQClientAPIImpl {
pub async fn end_transaction_oneway(
&self,
addr: &CheetahString,
request_header: EndTransactionRequestHeader,
remark: CheetahString,
timeout_millis: u64,
) -> crate::ClientResult<()> {
let request = self
.create_request_command(RequestCode::EndTransaction, request_header)
.set_remark(remark);
self.remoting_client
.invoke_request_oneway(addr, request, timeout_millis)
.await
.map_err(crate::ClientError::from)
}
}