updateConfig method

  1. @override
Future<void> updateConfig(
  1. Map<String, dynamic> newConfig
)

更新打印器的配置

newConfig 是新的配置信息 返回一个 Future 表示配置更新操作的完成

Implementation

@override
Future<void> updateConfig(Map<String, dynamic> newConfig) async {
  await _lock.synchronized(() async {
    bool needsReinitialization = false;

    // 检查是否需要重新初始化
    if (newConfig.containsKey('logDirectory') ||
        newConfig.containsKey('baseFileName')) {
      needsReinitialization = true;
    }

    // 如果需要重新初始化
    if (needsReinitialization) {
      await close();

      // 更新路径配置
      logDirectory = newConfig['logDirectory'] as String? ?? logDirectory;
      baseFileName = newConfig['baseFileName'] as String? ?? baseFileName;

      _isInitialized = false;
      await init();
    }

    // 更新其他配置
    if (newConfig.containsKey('maxQueueSize')) {
      // 这些配置的更新需要在 AsyncOutputer 中实现
      // 暂时不处理
    }
  });
}