@sailboat-computer/data-storage
Version:
Shared data storage library for sailboat computer v3
74 lines (73 loc) • 1.73 kB
TypeScript
/**
* Batch manager implementation
*/
import { BatchManager, BatchConfig, BatchPriorityType, BatchStatus, DataMetadata, StorageProvider } from '../types';
/**
* Batch manager implementation
*/
export declare class BatchManagerImpl implements BatchManager {
private provider;
private config;
private batches;
private flushTimer?;
private initialized;
private stopped;
private stats;
/**
* Create a new batch manager
*
* @param provider - Storage provider
*/
constructor(provider: StorageProvider);
/**
* Initialize the batch manager
*
* @param config - Batch configuration
*/
initialize(config: BatchConfig): void;
/**
* Add data to batch
*
* @param data - Data to add
* @param metadata - Data metadata
* @param priority - Batch priority
*/
addToBatch(data: any, metadata: DataMetadata, priority?: BatchPriorityType): void;
/**
* Flush all batches
*/
flush(): Promise<void>;
/**
* Get batch status
*
* @returns Batch status
*/
getBatchStatus(): BatchStatus;
/**
* Stop the batch manager
*/
stop(): void;
/**
* Start timed flush
*/
private startTimedFlush;
/**
* Flush a specific category
*
* @param category - Category to flush
*/
private flushCategory;
/**
* Ensure batch manager is initialized
*
* @throws StorageError if not initialized
*/
private ensureInitialized;
}
/**
* Create a new batch manager
*
* @param provider - Storage provider
* @returns Batch manager
*/
export declare function createBatchManager(provider: StorageProvider): BatchManager;