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

Download history 57/week @ 2024-03-13 125/week @ 2024-03-20 171/week @ 2024-03-27 71/week @ 2024-04-03 200/week @ 2024-04-10 169/week @ 2024-04-17 111/week @ 2024-04-24 118/week @ 2024-05-01 150/week @ 2024-05-08 87/week @ 2024-05-15 275/week @ 2024-05-22 100/week @ 2024-05-29 127/week @ 2024-06-05 4/week @ 2024-06-12 146/week @ 2024-06-19 206/week @ 2024-06-26

每月下载量 488
用于 tibco_ems

Apache-2.0

41KB
636 行代码(不包括注释)

tibco_ems-sys

Latest Version

Rust 对 Tibco EMS C 库的绑定。

通过 tibco_ems 包提供高级 API。

Latest Version

许可证

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);
  }
}

依赖项