RingKernelHandler

Trait RingKernelHandler 

Source
pub trait RingKernelHandler<M, R>: GpuKernel
where M: RingMessage + Send + Sync, R: RingMessage + Send + Sync,
{ // Required method fn handle<'life0, 'life1, 'async_trait>( &'life0 self, ctx: &'life1 mut RingContext<'_>, msg: M, ) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; // Provided methods fn initialize<'life0, 'life1, 'async_trait>( &'life0 self, _ctx: &'life1 mut RingContext<'_>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn ring_shutdown<'life0, 'life1, 'async_trait>( &'life0 self, _ctx: &'life1 mut RingContext<'_>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, ctx: &'life1 mut SecureRingContext<'life2, 'life3>, msg: M, ) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>> where M: 'async_trait, R: 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait { ... } }
Expand description

Trait for ring (persistent actor) kernels.

Ring kernels are persistent GPU actors with 100-500ns message latency. State resides permanently in GPU memory.

§Enterprise Features (0.3.1)

  • handle_secure() - Handle messages with security context

§Type Parameters

  • M: Request message type
  • R: Response message type

Required Methods§

Source

fn handle<'life0, 'life1, 'async_trait>( &'life0 self, ctx: &'life1 mut RingContext<'_>, msg: M, ) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle an incoming message.

§Arguments
  • ctx - The ring kernel context with GPU intrinsics
  • msg - The incoming message
§Returns

The response message or an error.

Provided Methods§

Source

fn initialize<'life0, 'life1, 'async_trait>( &'life0 self, _ctx: &'life1 mut RingContext<'_>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Initialize the kernel state.

Called once when the kernel is first activated.

Source

fn ring_shutdown<'life0, 'life1, 'async_trait>( &'life0 self, _ctx: &'life1 mut RingContext<'_>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when the kernel is being shut down.

Use this to clean up resources.

Source

fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, ctx: &'life1 mut SecureRingContext<'life2, 'life3>, msg: M, ) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>
where M: 'async_trait, R: 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Handle a message with security context.

Provides authentication and tenant isolation for message handling. Use this for operations that require authorization checks.

§Arguments
  • ctx - Secure ring context with auth info
  • msg - The incoming message
§Returns

The response message or an error.

§Default Implementation

Delegates to handle() ignoring security context. Override to implement authorization checks.

Implementors§