xc-mcp
Version:
MCP server that wraps Xcode command-line tools for iOS/macOS development workflows
87 lines • 2.46 kB
TypeScript
/**
* Enhanced Simulator Lifecycle State Management
*
* Tracks state transitions and prevents race conditions in concurrent operations
*/
export declare enum SimulatorState {
Unknown = "Unknown",
Creating = "Creating",
Booting = "Booting",
Booted = "Booted",
Shutting = "Shutting",
Shutdown = "Shutdown",
Erasing = "Erasing",
Erased = "Erased"
}
export interface SimulatorStateTransition {
fromState: SimulatorState;
toState: SimulatorState;
operation: string;
timestamp: number;
duration?: number;
success?: boolean;
error?: string;
}
export interface PendingOperation {
operationId: string;
operation: string;
startTime: number;
simulator: string;
}
export declare class EnhancedSimulatorLifecycle {
private simulatorStates;
private stateTransitions;
private operationQueues;
private bootingPromises;
private transitionLocks;
/**
* Get current simulator state
*/
getState(udid: string): SimulatorState;
/**
* Record a state transition
*/
recordTransition(udid: string, from: SimulatorState, to: SimulatorState, operation: string, success: boolean, error?: string): void;
/**
* Get state transition history
*/
getTransitionHistory(udid: string): SimulatorStateTransition[];
/**
* Queue an operation for a simulator
*/
queueOperation(udid: string, operationId: string, operation: string): void;
/**
* Get pending operations for simulator
*/
getPendingOperations(udid: string): PendingOperation[];
/**
* Clear pending operations
*/
clearPendingOperations(udid: string): void;
/**
* Wait for boot to complete
*/
waitForBoot(udid: string): Promise<void>;
/**
* Prevent concurrent operations of same type on same simulator
*/
acquireLock(udid: string): boolean;
/**
* Release lock
*/
releaseLock(udid: string): void;
/**
* Get lifecycle summary
*/
getSummary(udid: string): {
udid: string;
currentState: SimulatorState | undefined;
transitionCount: number;
lastTransition: SimulatorStateTransition | undefined;
pendingOperations: number;
operations: PendingOperation[];
isLocked: boolean;
};
}
export declare const enhancedSimulatorLifecycle: EnhancedSimulatorLifecycle;
//# sourceMappingURL=simulator-lifecycle-enhanced.d.ts.map