Skip to main content

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§