use anyhow::{Result, anyhow};
use nixl_sys::{Agent as NixlAgent, XferRequest};
use super::CompletionChecker;
pub struct NixlStatusChecker {
agent: NixlAgent,
xfer_req: XferRequest,
}
impl NixlStatusChecker {
pub fn new(agent: NixlAgent, xfer_req: XferRequest) -> Self {
Self { agent, xfer_req }
}
}
impl CompletionChecker for NixlStatusChecker {
fn is_complete(&self) -> Result<bool> {
match self.agent.get_xfer_status(&self.xfer_req) {
Ok(status) => Ok(status.is_success()),
Err(e) => Err(anyhow!("NIXL transfer status check failed: {}", e)),
}
}
}