IgtlConnection

Struct IgtlConnection 

Source
pub struct IgtlConnection { /* private fields */ }
Expand description

Represents an accepted client connection

Provides methods to send and receive OpenIGTLink messages over the connection.

Implementations§

Source§

impl IgtlConnection

Source

pub fn set_verify_crc(&mut self, verify: bool)

Enable or disable CRC verification for received messages

§Arguments
  • verify - true to enable CRC verification (default), false to disable
§Safety

Disabling CRC verification should only be done in trusted environments where data corruption is unlikely (e.g., loopback, local network).

Source

pub fn verify_crc(&self) -> bool

Get current CRC verification setting

§Returns

true if CRC verification is enabled, false otherwise

Source

pub fn send<T: Message>(&mut self, msg: &IgtlMessage<T>) -> Result<()>

Send a message to the connected client

§Arguments
  • msg - Message to send
§Errors
§Examples
use openigtlink_rust::io::IgtlServer;
use openigtlink_rust::protocol::types::StatusMessage;
use openigtlink_rust::protocol::message::IgtlMessage;

let server = IgtlServer::bind("127.0.0.1:18944")?;
let mut conn = server.accept()?;

let status = StatusMessage::ok("Ready");
let msg = IgtlMessage::new(status, "Server")?;
conn.send(&msg)?;
Source

pub fn receive<T: Message>(&mut self) -> Result<IgtlMessage<T>>

Receive a message from the connected client

Blocks until a complete message is received.

§Errors
§Examples
use openigtlink_rust::io::IgtlServer;
use openigtlink_rust::protocol::types::TransformMessage;
use openigtlink_rust::protocol::message::IgtlMessage;

let server = IgtlServer::bind("127.0.0.1:18944")?;
let mut conn = server.accept()?;

let msg: IgtlMessage<TransformMessage> = conn.receive()?;
Source

pub fn receive_any(&mut self) -> Result<AnyMessage>

Receive any message type dynamically

This method receives a message without knowing its type in advance, returning it as an AnyMessage enum that can be pattern matched.

§Errors
§Examples
use openigtlink_rust::io::IgtlServer;
use openigtlink_rust::protocol::AnyMessage;

let server = IgtlServer::bind("127.0.0.1:18944")?;
let mut conn = server.accept()?;

let msg = conn.receive_any()?;
match msg {
    AnyMessage::Transform(_) => println!("Received transform"),
    AnyMessage::Status(_) => println!("Received status"),
    _ => println!("Received other message"),
}
Source

pub fn set_read_timeout(&mut self, timeout: Option<Duration>) -> Result<()>

Set read timeout for the underlying TCP stream

§Arguments
  • timeout - Timeout duration (None for infinite)
Source

pub fn set_write_timeout(&mut self, timeout: Option<Duration>) -> Result<()>

Set write timeout for the underlying TCP stream

§Arguments
  • timeout - Timeout duration (None for infinite)
Source

pub fn set_nodelay(&self, nodelay: bool) -> Result<()>

Enable or disable TCP_NODELAY (Nagle’s algorithm)

Wrapper around std::net::TcpStream::set_nodelay.

Source

pub fn set_recv_buffer_size(&self, size: usize) -> Result<()>

Set the size of the TCP receive buffer (SO_RCVBUF)

Source

pub fn set_send_buffer_size(&self, size: usize) -> Result<()>

Set the size of the TCP send buffer (SO_SNDBUF)

Source

pub fn nodelay(&self) -> Result<bool>

Get the current TCP_NODELAY setting

Source

pub fn peer_addr(&self) -> Result<SocketAddr>

Get the remote peer address

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more