/** * IPC Handler Registration * 统一注册所有 IPC 处理器 */ import type { SSHService } from '../services/ssh-service' import type { DatabaseService } from '../services/database-service' import type { ZmodemService } from '../services/zmodem-service' import type { BrowserWindow } from 'electron' import { createLogger } from '../utils/logger' const logger = createLogger('IPC') import { registerSSHIPCHandlers } from './ssh.ipc' import { registerSFTPIPCHandlers } from './sftp.ipc' import { registerSessionIPCHandlers } from './session.ipc' import { registerSettingsIPCHandlers } from './settings.ipc' import { registerDialogIPCHandlers } from './dialog.ipc' import { registerFileIPCHandlers } from './file.ipc' import { registerZmodemIPCHandlers } from './zmodem.ipc' import { registerAppIPCHandlers } from './app.ipc' export interface IPCOptions { sshService: SSHService databaseService: DatabaseService zmodemService: ZmodemService mainWindowGetter: () => BrowserWindow | null } export function registerAllIPCHandlers(options: IPCOptions): void { const { sshService, databaseService, zmodemService, mainWindowGetter } = options // SSH handlers registerSSHIPCHandlers({ sshService, zmodemService, mainWindowGetter }) // SFTP handlers registerSFTPIPCHandlers({ sshService, mainWindowGetter }) // Session handlers registerSessionIPCHandlers({ dbService: databaseService }) // Settings handlers registerSettingsIPCHandlers({ dbService: databaseService }) // Dialog handlers registerDialogIPCHandlers({ mainWindowGetter }) // File handlers registerFileIPCHandlers() // Zmodem handlers registerZmodemIPCHandlers({ sshService, zmodemService, mainWindowGetter }) // App handlers registerAppIPCHandlers() logger.info('[IPC] All handlers registered') } // Re-export channel constants for external use export { SSH_CHANNELS } from './ssh.ipc' export { SFTP_CHANNELS } from './sftp.ipc' export { SESSION_CHANNELS } from './session.ipc' export { SETTINGS_CHANNELS } from './settings.ipc' export { DIALOG_CHANNELS } from './dialog.ipc' export { FILE_CHANNELS } from './file.ipc' export { ZMODEM_CHANNELS } from './zmodem.ipc' export { APP_CHANNELS } from './app.ipc'