/** * Thread-Safe Memory Manager for S7 Server * Handles memory area registration, locking, and data access */ import { EventEmitter } from 'events'; import { Buffer } from 'buffer'; import { S7Area } from '../types/s7-types'; export interface MemoryArea { buffer: Buffer; size: number; locked: boolean; lockCount: number; lastAccess: Date; } export interface MemoryStatistics { totalAreas: number; totalSize: number; lockedAreas: number; lastAccess: Date; } export declare class MemoryManager extends EventEmitter { private areas; private locks; private lockQueue; constructor(); /** * Register a memory area */ registerArea(area: S7Area, index: number, buffer: Buffer): Promise; /** * Unregister a memory area */ unregisterArea(area: S7Area, index: number): Promise; /** * Read data from memory area */ readArea(area: S7Area, index: number, start: number, length: number): Promise; /** * Write data to memory area */ writeArea(area: S7Area, index: number, start: number, data: Buffer): Promise; /** * Lock a memory area */ lockArea(area: S7Area, index: number): Promise; /** * Unlock a memory area */ unlockArea(area: S7Area, index: number): Promise; /** * Get area content (copy) */ getArea(area: S7Area, index: number): Promise; /** * Set area content */ setArea(area: S7Area, index: number, buffer: Buffer): Promise; /** * Check if area exists */ hasArea(area: S7Area, index: number): boolean; /** * Get area size */ getAreaSize(area: S7Area, index: number): number; /** * Get memory statistics */ getStatistics(): MemoryStatistics; /** * Get all registered areas */ getAllAreas(): Array<{ area: S7Area; index: number; size: number; locked: boolean; }>; /** * Clear all areas */ clearAllAreas(): Promise; /** * Get memory area (internal) */ private getMemoryArea; /** * Validate bounds */ private validateBounds; /** * Get lock key */ private getLockKey; /** * Wait for lock */ private waitForLock; /** * Release lock */ private releaseLock; } //# sourceMappingURL=memory-manager.d.ts.map