pub struct Session { /* private fields */ }
Expand description

An encrypted and authenticated RPC session.

Implementations§

source§

impl Session

source

pub async fn process_data<W: Write>( &mut self, data: Vec<u8>, writer: W ) -> Result<Option<Message>>

Process incoming data.

In case the session is in transport mode the returned result will contained a parsed message. The writer will be used in case any protocol replies need to be generated.

source

pub fn write_message<W: Write>(&mut self, msg: Message, writer: W) -> Result<()>

Write message to session.

The writer will be used for protocol message output which should be transmitted to the remote session counterpart.

source

pub fn close(&mut self)

Mark the session as closed.

After the session is closed it can no longer be used to transmit or receive messages and any such use will result in an error.

source

pub fn session_info(&self) -> Option<Arc<SessionInfo>>

Session information.

source

pub fn is_connected(&self) -> bool

Whether the session handshake has completed and the session is in transport mode.

source

pub fn is_connected_to(&self, nodes: &Vec<PublicKey>) -> bool

Whether the session is connected to one of the given nodes.

source

pub fn is_closed(&self) -> bool

Whether the session is in closed state.

source

pub fn is_unauthenticated(&self) -> bool

Whether the session is in unauthenticated transport state. In this state the session can only be used to transmit a close notification.

source

pub fn get_node(&self) -> Result<PublicKey>

Return remote node identifier.

source

pub fn set_remote_node(&mut self, node: PublicKey) -> Result<()>

Set the remote node identifier.

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

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, 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V