Skip to main content

ClientAssociation

Struct ClientAssociation 

Source
pub struct ClientAssociation<S> { /* private fields */ }
Expand description

A DICOM upper level association from the perspective of a requesting application entity.

The most common operations of an established association are send and receive. Sending large P-Data fragments may be easier through the P-Data sender abstraction (see send_pdata).

Call release at the end to perform a standard C-RELEASE message exchange and shut down the underlying TCP connection. Not calling this method will only close the socket without gracefully releasing the association.

Implementations§

Source§

impl<S> ClientAssociation<S>
where S: CloseSocket + Read + Write,

Source

pub fn read_timeout(&self) -> Option<Duration>

Retrieve read timeout for the association

Source

pub fn write_timeout(&self) -> Option<Duration>

Retrieve write timeout for the association

Source

pub fn acceptor_max_pdu_length(&self) -> u32

Retrieve the maximum PDU length that the association acceptor is expecting to receive.

Source

pub fn requestor_max_pdu_length(&self) -> u32

Retrieve the maximum PDU length that the association requestor is expecting to receive.

Source

pub fn user_variables(&self) -> &[UserVariableItem]

Retrieve the user variables that were taken from the server.

It usually contains the maximum PDU length, the implementation class UID, and the implementation version name.

Source

pub fn presentation_contexts(&self) -> &[PresentationContextNegotiated]

Retrieve the list of negotiated presentation contexts.

Source§

impl<S> ClientAssociation<S>
where S: CloseSocket + Read + Write,

Source

pub fn send(&mut self, pdu: &Pdu) -> Result<(), Error>

Send a PDU message to the other intervenient.

Source

pub fn receive(&mut self) -> Result<Pdu, Error>

Read a PDU message from the other intervenient.

Source

pub fn send_pdata(&mut self, presentation_context_id: u8) -> PDataWriter<&mut S>

Prepare a P-Data writer for sending one or more data item PDUs.

Returns a writer which automatically splits the inner data into separate PDUs if necessary.

Source

pub fn release(self) -> Result<(), Error>

Iniate a graceful release of the association.

A DIMSE A-RELEASE transaction is initiated by this application entity, and the underlying socket is closed once settled.

Note that as of version 0.9.1, ClientAssociation no longer calls this method on Drop, so remember to call release explicitly at the end of all DIMSE transactions.

Source

pub fn abort(self) -> Result<(), Error>

Send a provider initiated abort message and shut down the TCP connection, terminating the association.

Source

pub fn receive_pdata(&mut self) -> PDataReader<'_, &mut S>

Prepare a P-Data reader for receiving one or more data item PDUs.

Returns a reader which automatically receives more data PDUs once the bytes collected are consumed.

Source

pub fn inner_stream(&mut self) -> &mut S

Obtain access to the inner stream connected to the association acceptor.

This can be used to send the PDU in semantic fragments of the message, thus using less memory.

Note: reading and writing should be done with care to avoid inconsistencies in the association state. Do not call send and receive while not in a PDU boundary.

Trait Implementations§

Source§

impl Release for ClientAssociation<TcpStream>

Source§

fn release(&mut self) -> Result<(), Error>

👎Deprecated since 0.9.1: Call SyncAssociation::release instead
Source§

impl<S> Association for ClientAssociation<S>
where S: CloseSocket + Read + Write,

Source§

fn acceptor_max_pdu_length(&self) -> u32

Retrieve the maximum PDU length that the association acceptor is expecting to receive.

Source§

fn requestor_max_pdu_length(&self) -> u32

Retrieve the maximum PDU length that the association requestor is expecting to receive.

Source§

fn local_max_pdu_length(&self) -> u32

Retrieve the maximum PDU length that this application entity (the association requestor) is expecting to receive.

Source§

fn peer_max_pdu_length(&self) -> u32

Retrieve the maximum PDU length that the peer application entity (the association acceptor) is expecting to receive.

Source§

fn peer_ae_title(&self) -> &str

Obtain the remote DICOM node’s application entity title.
Source§

fn presentation_contexts(&self) -> &[PresentationContextNegotiated]

Obtain a view of the negotiated presentation contexts.
Source§

fn user_variables(&self) -> &[UserVariableItem]

Retrieve the user variables that were taken from the server. Read more
Source§

impl<S: Debug> Debug for ClientAssociation<S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<S> SyncAssociation<S> for ClientAssociation<S>
where S: CloseSocket + Read + Write,

Source§

fn inner_stream(&mut self) -> &mut S

Obtain access to the inner stream connected to the association acceptor. Read more
Source§

fn get_mut(&mut self) -> (&mut S, &mut BytesMut)

Obtain mutable access to the inner stream and read buffer
Source§

fn send(&mut self, pdu: &Pdu) -> Result<(), Error>

Send a PDU message to the other intervenient.
Source§

fn receive(&mut self) -> Result<Pdu, Error>

Read a PDU message from the other intervenient.
Source§

fn abort(self) -> Result<(), Error>
where Self: Sized,

Send a provider initiated abort message and shut down the TCP connection, terminating the association.
Source§

fn release(self) -> Result<(), Error>
where Self: Sized,

Iniate a graceful release of the association. Read more
Source§

fn send_pdata(&mut self, presentation_context_id: u8) -> PDataWriter<&mut S>

Prepare a P-Data writer for sending one or more data item PDUs. Read more
Source§

fn receive_pdata(&mut self) -> PDataReader<'_, &mut S>

Prepare a P-Data reader for receiving one or more data item PDUs. Read more

Auto Trait Implementations§

§

impl<S> Freeze for ClientAssociation<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for ClientAssociation<S>
where S: RefUnwindSafe,

§

impl<S> Send for ClientAssociation<S>
where S: Send,

§

impl<S> Sync for ClientAssociation<S>
where S: Sync,

§

impl<S> Unpin for ClientAssociation<S>
where S: Unpin,

§

impl<S> UnsafeUnpin for ClientAssociation<S>
where S: UnsafeUnpin,

§

impl<S> UnwindSafe for ClientAssociation<S>
where S: UnwindSafe,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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