use std::rc::Rc;
use anyhow::Context;
use dlopen2::wrapper::Container;
use mqi::{
connection::ThreadNone,
prelude::*,
types::{ApplName, QueueName},
};
const APP_NAME: ApplName = ApplName(mqstr!("dlopen2_example"));
fn main() -> anyhow::Result<()> {
let mq_lib = Rc::new(unsafe { Container::load_mqm_default().context("Loading the mqm library") }?);
let qm = mqi::connect_lib::<ThreadNone, _>(mq_lib, &(APP_NAME))
.warn_as_error()
.context("Connecting to the QM")?;
qm.put_message(&QueueName(mqstr!("TEST")), &(), "test")
.warn_as_error()
.context("Put a message to a queue")?;
qm.disconnect().discard_warning().context("QM disconnect")?;
Ok(())
}