[][src]Trait lib3h_zombie_actor::GhostCanTrack

pub trait GhostCanTrack<UserData, RequestToOther: 'static, RequestToOtherResponse: 'static, RequestToSelf: 'static, RequestToSelfResponse: 'static, Error: 'static + Debug> {
    fn publish(
        &mut self,
        span: Span,
        payload: RequestToOther
    ) -> GhostResult<()>;
fn request(
        &mut self,
        span: Span,
        payload: RequestToOther,
        cb: GhostCallback<UserData, RequestToOtherResponse, Error>
    ) -> GhostResult<()>;
fn request_options(
        &mut self,
        span: Span,
        payload: RequestToOther,
        cb: GhostCallback<UserData, RequestToOtherResponse, Error>,
        options: GhostTrackRequestOptions
    ) -> GhostResult<()>;
fn drain_messages(
        &mut self
    ) -> Vec<GhostMessage<RequestToSelf, RequestToOther, RequestToSelfResponse, Error>>;
fn process(&mut self, user_data: &mut UserData) -> GhostResult<WorkWasDone>; }

indicates this type is able to make callback requests && respond to requests

Required methods

fn publish(&mut self, span: Span, payload: RequestToOther) -> GhostResult<()>

publish an event to the remote side, not expecting a response

fn request(
    &mut self,
    span: Span,
    payload: RequestToOther,
    cb: GhostCallback<UserData, RequestToOtherResponse, Error>
) -> GhostResult<()>

make a request of the other side. When a response is sent back to us the callback will be invoked.

fn request_options(
    &mut self,
    span: Span,
    payload: RequestToOther,
    cb: GhostCallback<UserData, RequestToOtherResponse, Error>,
    options: GhostTrackRequestOptions
) -> GhostResult<()>

make a request of the other side. When a response is sent back to us the callback will be invoked, override the default timeout.

fn drain_messages(
    &mut self
) -> Vec<GhostMessage<RequestToSelf, RequestToOther, RequestToSelfResponse, Error>>

fetch any messages (requests or events) sent to us from the other side

fn process(&mut self, user_data: &mut UserData) -> GhostResult<WorkWasDone>

check for pending responses timeouts or incoming messages

Loading content...

Implementors

impl<UserData, RequestToOther: 'static, RequestToOtherResponse: 'static, RequestToSelf: 'static, RequestToSelfResponse: 'static, Error: 'static + Debug> GhostCanTrack<UserData, RequestToOther, RequestToOtherResponse, RequestToSelf, RequestToSelfResponse, Error> for GhostContextEndpoint<UserData, RequestToOther, RequestToOtherResponse, RequestToSelf, RequestToSelfResponse, Error>[src]

fn publish(&mut self, span: Span, payload: RequestToOther) -> GhostResult<()>[src]

publish an event to the remote side, not expecting a response

fn request(
    &mut self,
    span: Span,
    payload: RequestToOther,
    cb: GhostCallback<UserData, RequestToOtherResponse, Error>
) -> GhostResult<()>
[src]

make a request of the other side. When a response is sent back to us the callback will be invoked.

fn request_options(
    &mut self,
    span: Span,
    payload: RequestToOther,
    cb: GhostCallback<UserData, RequestToOtherResponse, Error>,
    options: GhostTrackRequestOptions
) -> GhostResult<()>
[src]

make a request of the other side. When a response is sent back to us the callback will be invoked, override the default timeout.

fn drain_messages(
    &mut self
) -> Vec<GhostMessage<RequestToSelf, RequestToOther, RequestToSelfResponse, Error>>
[src]

fetch any messages (requests or events) sent to us from the other side

fn process(&mut self, user_data: &mut UserData) -> GhostResult<WorkWasDone>[src]

check for pending responses timeouts or incoming messages

impl<UserData, RequestToParent: 'static, RequestToParentResponse: 'static, RequestToChild: 'static, RequestToChildResponse: 'static, Error: 'static + Debug> GhostCanTrack<UserData, RequestToChild, RequestToChildResponse, RequestToParent, RequestToParentResponse, Error> for GhostParentWrapperDyn<UserData, RequestToParent, RequestToParentResponse, RequestToChild, RequestToChildResponse, Error>[src]

fn publish(&mut self, span: Span, payload: RequestToChild) -> GhostResult<()>[src]

see GhostContextEndpoint::publish

fn request(
    &mut self,
    span: Span,
    payload: RequestToChild,
    cb: GhostCallback<UserData, RequestToChildResponse, Error>
) -> GhostResult<()>
[src]

see GhostContextEndpoint::request

fn drain_messages(
    &mut self
) -> Vec<GhostMessage<RequestToParent, RequestToChild, RequestToParentResponse, Error>>
[src]

see GhostContextEndpoint::drain_messages

fn process(&mut self, user_data: &mut UserData) -> GhostResult<WorkWasDone>[src]

see GhostContextEndpoint::process and GhostActor::process

impl<UserData, RequestToParent: 'static, RequestToParentResponse: 'static, RequestToChild: 'static, RequestToChildResponse: 'static, Error: 'static + Debug, Actor: GhostActor<RequestToParent, RequestToParentResponse, RequestToChild, RequestToChildResponse, Error>> GhostCanTrack<UserData, RequestToChild, RequestToChildResponse, RequestToParent, RequestToParentResponse, Error> for GhostParentWrapper<UserData, RequestToParent, RequestToParentResponse, RequestToChild, RequestToChildResponse, Error, Actor>[src]

fn publish(&mut self, span: Span, payload: RequestToChild) -> GhostResult<()>[src]

see GhostContextEndpoint::publish

fn request(
    &mut self,
    span: Span,
    payload: RequestToChild,
    cb: GhostCallback<UserData, RequestToChildResponse, Error>
) -> GhostResult<()>
[src]

see GhostContextEndpoint::request

fn request_options(
    &mut self,
    span: Span,
    payload: RequestToChild,
    cb: GhostCallback<UserData, RequestToChildResponse, Error>,
    options: GhostTrackRequestOptions
) -> GhostResult<()>
[src]

see GhostContextEndpoint::request

fn drain_messages(
    &mut self
) -> Vec<GhostMessage<RequestToParent, RequestToChild, RequestToParentResponse, Error>>
[src]

see GhostContextEndpoint::drain_messages

fn process(&mut self, user_data: &mut UserData) -> GhostResult<WorkWasDone>[src]

see GhostContextEndpoint::process and GhostActor::process

Loading content...