app-starlock/lib/talk/startChart/handle/other/talk_data_repository.dart

30 lines
944 B
Dart
Raw Normal View History

2024-12-13 14:30:33 +08:00
import 'dart:async';
import 'package:star_lock/talk/startChart/proto/talk_data.pb.dart';
class TalkDataRepository {
// 创建一个私有的构造函数,防止外部创建实例
TalkDataRepository._();
// 使用 _instance 来保存单例对象
static final TalkDataRepository _instance = TalkDataRepository._();
// 提供一个静态方法来获取单例实例
static TalkDataRepository get instance => _instance;
// 创建一个 StreamController
2024-12-17 09:17:50 +08:00
final StreamController<TalkData> _talkDataStreamController = StreamController<TalkData>.broadcast();
2024-12-13 14:30:33 +08:00
// 提供一个方法来获取 Stream
2024-12-17 09:17:50 +08:00
Stream<TalkData> get talkDataStream => _talkDataStreamController.stream;
2024-12-13 14:30:33 +08:00
// 提供一个方法来添加 TalkData 到 Stream
2024-12-17 09:17:50 +08:00
void addTalkData(TalkData talkData) {
2024-12-13 14:30:33 +08:00
_talkDataStreamController.add(talkData);
}
// 提供一个方法来关闭 StreamController
void dispose() {
_talkDataStreamController.close();
}
}