UNPKG

signalk-server

Version:

An implementation of a [Signal K](http://signalk.org) server for boats.

100 lines 2.72 kB
/** * WASM Plugin Delta Subscription Management * * Manages delta subscriptions for WASM plugins, including: * - Subscription pattern matching * - Buffering during hot-reload * - Subscription state preservation across reloads */ export interface DeltaSubscription { pluginId: string; pattern: string; callback: (delta: any) => void; } export interface Delta { context: string; updates: Array<{ source: any; timestamp: string; values: Array<{ path: string; value: any; }>; }>; } export declare class WasmSubscriptionManager { private subscriptions; private buffers; private buffering; /** * Register a delta subscription for a plugin */ register(pluginId: string, pattern: string, callback: (delta: any) => void): void; /** * Unregister all subscriptions for a plugin */ unregister(pluginId: string): void; /** * Get all subscriptions for a plugin */ getSubscriptions(pluginId: string): DeltaSubscription[]; /** * Check if a delta path matches a subscription pattern */ private matchesPattern; /** * Route a delta to subscribed plugins */ routeDelta(delta: Delta): void; /** * Start buffering deltas for a plugin (during reload) */ startBuffering(pluginId: string): void; /** * Stop buffering and return buffered deltas */ stopBuffering(pluginId: string): Delta[]; /** * Buffer a delta for a plugin */ private bufferDelta; /** * Redirect delta routing to buffer for a plugin */ redirectToBuffer(pluginId: string): void; /** * Restore normal delta routing for a plugin */ restore(pluginId: string): void; /** * Replay buffered deltas to a plugin's callback */ replayBuffered(pluginId: string, callback: (delta: Delta) => void): void; /** * Get statistics about subscriptions */ getStats(): { totalSubscriptions: number; activePlugins: number; bufferingPlugins: number; bufferedDeltas: number; }; /** * Clear all subscriptions and buffers */ clear(): void; } /** * Get the global subscription manager */ export declare function getSubscriptionManager(): WasmSubscriptionManager; /** * Initialize the subscription manager */ export declare function initializeSubscriptionManager(): WasmSubscriptionManager; /** * Reset the subscription manager singleton (for hotplug support) * This should be called after shutdown to allow re-initialization */ export declare function resetSubscriptionManager(): void; //# sourceMappingURL=wasm-subscriptions.d.ts.map