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();
|
|
|
|
|
}
|
|
|
|
|
}
|