pub struct AgentServiceImpl { /* private fields */ }Expand description
Implementation of the Agent service
Implementations§
Source§impl AgentServiceImpl
impl AgentServiceImpl
pub fn new( connectome_manager: Arc<RwLock<ConnectomeManager>>, agent_registry: Arc<RwLock<AgentRegistry>>, ) -> Self
Sourcepub fn new_with_runtime(
connectome_manager: Arc<RwLock<ConnectomeManager>>,
agent_registry: Arc<RwLock<AgentRegistry>>,
runtime_service: Arc<dyn RuntimeServiceTrait + Send + Sync>,
) -> Self
pub fn new_with_runtime( connectome_manager: Arc<RwLock<ConnectomeManager>>, agent_registry: Arc<RwLock<AgentRegistry>>, runtime_service: Arc<dyn RuntimeServiceTrait + Send + Sync>, ) -> Self
Create AgentServiceImpl with runtime service
Sourcepub fn set_registration_handler(
&mut self,
handler: Arc<dyn RegistrationHandlerTrait>,
)
pub fn set_registration_handler( &mut self, handler: Arc<dyn RegistrationHandlerTrait>, )
Set the PNS registration handler for full transport negotiation Set registration handler (accepts trait object to break circular dependency)
Sourcepub fn set_runtime_service(
&self,
runtime_service: Arc<dyn RuntimeServiceTrait + Send + Sync>,
)
pub fn set_runtime_service( &self, runtime_service: Arc<dyn RuntimeServiceTrait + Send + Sync>, )
Set the runtime service for sensory injection (thread-safe, can be called after Arc wrapping)
Trait Implementations§
Source§impl AgentService for AgentServiceImpl
impl AgentService for AgentServiceImpl
Source§fn register_agent<'life0, 'async_trait>(
&'life0 self,
registration: AgentRegistration,
) -> Pin<Box<dyn Future<Output = AgentResult<AgentRegistrationResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn register_agent<'life0, 'async_trait>(
&'life0 self,
registration: AgentRegistration,
) -> Pin<Box<dyn Future<Output = AgentResult<AgentRegistrationResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Register a new agent
Source§fn heartbeat<'life0, 'async_trait>(
&'life0 self,
request: HeartbeatRequest,
) -> Pin<Box<dyn Future<Output = AgentResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn heartbeat<'life0, 'async_trait>(
&'life0 self,
request: HeartbeatRequest,
) -> Pin<Box<dyn Future<Output = AgentResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Record a heartbeat for an agent
Source§fn list_agents<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = AgentResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_agents<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = AgentResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List all registered agents
Source§fn get_agent_properties<'life0, 'life1, 'async_trait>(
&'life0 self,
agent_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = AgentResult<AgentProperties>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_agent_properties<'life0, 'life1, 'async_trait>(
&'life0 self,
agent_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = AgentResult<AgentProperties>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get properties for a specific agent
Get shared memory information for all agents
Source§fn deregister_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
agent_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = AgentResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn deregister_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
agent_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = AgentResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deregister an agent
Source§fn manual_stimulation<'life0, 'async_trait>(
&'life0 self,
stimulation_payload: HashMap<String, Vec<Vec<i32>>>,
mode: ManualStimulationMode,
) -> Pin<Box<dyn Future<Output = AgentResult<HashMap<String, Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn manual_stimulation<'life0, 'async_trait>(
&'life0 self,
stimulation_payload: HashMap<String, Vec<Vec<i32>>>,
mode: ManualStimulationMode,
) -> Pin<Box<dyn Future<Output = AgentResult<HashMap<String, Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Trigger manual stimulation for specific cortical areas
Source§fn try_set_runtime_service(
&self,
runtime_service: Arc<dyn RuntimeServiceTrait + Send + Sync>,
)
fn try_set_runtime_service( &self, runtime_service: Arc<dyn RuntimeServiceTrait + Send + Sync>, )
Set runtime service for sensory injection (optional, implementations can ignore if not needed)
This allows runtime service to be connected after AgentService is wrapped in Arc
Auto Trait Implementations§
impl Freeze for AgentServiceImpl
impl !RefUnwindSafe for AgentServiceImpl
impl Send for AgentServiceImpl
impl Sync for AgentServiceImpl
impl Unpin for AgentServiceImpl
impl UnsafeUnpin for AgentServiceImpl
impl !UnwindSafe for AgentServiceImpl
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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