pub struct PilotServiceImpl {
atlas: AtlasClient,
provider_id: String,
vlm: VlmClient,
histories: Arc<Mutex<HashMap<String, Arc<Mutex<Vec<Message>>>>>>,
cancels: Arc<Mutex<HashMap<String, Sender<bool>>>>,
}Fields§
§atlas: AtlasClientAtlasClient is cheap to clone (its inner channel is just a handle);
each Stream RPC clones it to discover executor concurrently without
serialising on a single mutex.
provider_id: StringPilot’s own provider_id; passed to atlas as consumer_id on every
ConnectCapability so the channel record reflects who is using
the executor.
vlm: VlmClient§histories: Arc<Mutex<HashMap<String, Arc<Mutex<Vec<Message>>>>>>§cancels: Arc<Mutex<HashMap<String, Sender<bool>>>>Per-session cancellation senders. abort_turn Task signals this
without holding the history lock.
Implementations§
Trait Implementations§
Source§impl RobonixSystemPilot for PilotServiceImpl
impl RobonixSystemPilot for PilotServiceImpl
Source§type SubmitTaskStream = ReceiverStream<Result<PilotEvent, Status>>
type SubmitTaskStream = ReceiverStream<Result<PilotEvent, Status>>
Server streaming response type for the SubmitTask method.
fn submit_task<'life0, 'async_trait>(
&'life0 self,
request: Request<Task>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::SubmitTaskStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !Freeze for PilotServiceImpl
impl !RefUnwindSafe for PilotServiceImpl
impl Send for PilotServiceImpl
impl Sync for PilotServiceImpl
impl Unpin for PilotServiceImpl
impl UnsafeUnpin for PilotServiceImpl
impl !UnwindSafe for PilotServiceImpl
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].