use crate::{Flags, ReturnCode, RmError, XaTransactionId};
pub trait CResourceManager {
fn start(&mut self, id: &XaTransactionId, flag: Flags) -> Result<ReturnCode, RmError>;
fn end(&mut self, id: &XaTransactionId, flag: Flags) -> Result<ReturnCode, RmError>;
fn prepare(&mut self, id: &XaTransactionId) -> Result<ReturnCode, RmError>;
fn commit(&mut self, id: &XaTransactionId, flag: Flags) -> Result<ReturnCode, RmError>;
fn rollback(&mut self, id: &XaTransactionId) -> Result<ReturnCode, RmError>;
fn forget(&mut self, id: &XaTransactionId) -> Result<ReturnCode, RmError>;
fn recover(&mut self, flag: Flags) -> Result<Vec<XaTransactionId>, RmError>;
}