22 个版本 (6 个稳定版)
1.0.5 | 2022 年 9 月 15 日 |
---|---|
1.0.4 | 2022 年 5 月 5 日 |
1.0.3 | 2022 年 4 月 26 日 |
1.0.2 | 2021 年 9 月 25 日 |
0.1.5 | 2020 年 11 月 30 日 |
在 文本处理 中排名第 667
每月下载量 488
用于 tibco_ems
41KB
636 行代码(不包括注释)
tibco_ems-sys
Rust 对 Tibco EMS C 库的绑定。
通过 tibco_ems
包提供高级 API。
许可证
tibco_ems 采用 Apache 许可证第 2 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)。
TIBCO 企业消息服务及其所有相关组件均为 TIBCO 软件公司所有,并且不包含在此软件包中。有关详细信息,请参阅您的 TIBCO 许可协议。
构建
要构建此包,TIBCO EMS C 库必须在 LD_LIBRARY_PATH 中,或者可以使用 EMS_HOME 环境变量。
用法
将以下内容放入您的 Cargo.toml
[dependencies]
tibco_ems-sys = "0.1"
示例
向队列发送文本消息。
use tibco_ems::c_binding::*;
use std::ffi::CString;
fn main() {
unsafe{
let factory = tibemsConnectionFactory_Create();
let url = "tcp://127.0.0.1:7222";
let user="admin";
let password="admin";
let status = tibemsConnectionFactory_SetServerURL(factory, CString::new(url).unwrap().as_ptr());
println!("tibemsConnectionFactory_SetServerURL: {:?}",status);
let mut conn: usize = 0;
let status = tibemsConnectionFactory_CreateConnection(factory,&mut conn,CString::new(user).unwrap().as_ptr(),CString::new(password).unwrap().as_ptr());
println!("tibemsConnectionFactory_CreateConnection: {:?}",status);
let mut sess: usize = 0;
let status = tibemsConnection_CreateSession(conn,&mut sess,tibems_bool::TIBEMS_FALSE,tibemsAcknowledgeMode::TIBEMS_AUTO_ACKNOWLEDGE);
println!("tibemsConnection_CreateSession: {:?}",status);
let dest_str = "myqueue";
let mut dest: usize = 0;
let status = tibemsDestination_Create(&mut dest, tibemsDestinationType::TIBEMS_QUEUE, CString::new(dest_str).unwrap().as_ptr());
println!("tibemsDestination_Create: {:?}",status);
let mut producer: usize = 0;
let status = tibemsSession_CreateProducer(sess,&mut producer,dest);
println!("tibemsSession_CreateProducer: {:?}",status);
let mut msg: usize = 0;
let status = tibemsTextMsg_Create(&mut msg);
println!("tibemsTextMsg_Create: {:?}",status);
let content="hallo welt";
let status = tibemsTextMsg_SetText(msg,CString::new(content).unwrap().as_ptr());
println!("tibemsTextMsg_SetText: {:?}",status);
let status = tibemsMsg_SetStringProperty(msg,CString::new("key").unwrap().as_ptr(),CString::new("val").unwrap().as_ptr());
println!("tibemsMsg_SetStringProperty: {:?}",status);
let status = tibemsMsgProducer_Send(producer, msg);
println!("tibemsMsgProducer_Send: {:?}",status);
}
}