tibco_ems

Crates.iotibco_ems
lib.rstibco_ems
version0.5.2
sourcesrc
created_at2020-11-13 21:07:32.486472
updated_at2024-09-23 09:00:03.787647
descriptionA high level API for the Tibco EMS.
homepage
repositoryhttps://github.com/apimeister/tibco-ems-rs/
max_upload_size
id312109
size250,323
devs (github:apimeister:devs)

documentation

https://docs.rs/tibco_ems

README

tibco-ems-rs

Latest Version codecov
A high-level API for the Tibco EMS C library

Build

To build this crate, the TIBCO EMS C library must either be in the LD_LIBRARY_PATH or alternatively a EMS_HOME environment variable must be set.

Please check the CHANGELOG when upgrading.

Examples

Sending a text message to a queue.

use tibco_ems::Destination;
use tibco_ems::TextMessage;

fn main() {
  let url = "tcp://localhost:7222";
  let user="admin";
  let password="admin";

  let connection = tibco_ems::connect(url,user,password).unwrap();
  let session = connection.session().unwrap();

  let msg = TextMessage{
    body:"hallo welt".to_string(),
    ..Default::default()
  };

  let destination = Destination::Queue("myqueue".to_string());
  
  let _ignore = session.send_message(&destination, msg);
}

Receiving a text message from a queue.

use tibco_ems::Destination;
use tibco_ems::Message;

fn main() {
  let url = "tcp://localhost:7222";
  let user="admin";
  let password="admin";

  let connection = tibco_ems::connect(url,user,password).unwrap();
  let session = connection.session().unwrap();

  let destination = Destination::Queue("myqueue".to_string());
  let consumer = session.queue_consumer(&destination, None).unwrap();
  
  println!("waiting 10 seconds for a message");
  let msg_result = consumer.receive_message(Some(10000));

  match msg_result {
    Ok(result_value) => {
      match result_value {
        Some(message) => {
          match &message {
            Message::TextMessage(text_message) =>{
              println!("received text message");
              println!("content: {}", text_message.body);
            },
            _ => {
              println!("unknown type");
            }
          }    
        },
        None =>{
          println!("no message returned");
        },
      }
    },
    Err(status) => {
      println!("returned status: {:?}",status);
    }
  }
}

More examples can be found in the examples directory.

License

tibco-ems-rs is licensed under Apache License, Version 2.0 LICENSE.
TIBCO Enterprise Messaging Service, and all related components therein are property of TIBCO Software, and are not provided with this software package. Refer to your own TIBCO License terms for details.

Commit count: 167

cargo fmt