/
githubmirror
/
ydb-go-sdk
Обзор
Документация
Войти
/
githubmirror
/
ydb-go-sdk
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
internal/topic/topicreadercommon/raw_topicreader_stream.go
45 строк
880 B
Timofey Koolin
move sync topic reader
04 сен 2024, 23:51
04 сен 2024, 23:51
58e12e1
Код
Авторство
О чём код?
package topicreadercommon import ( "sync" "github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawtopic/rawtopicreader" ) type RawTopicReaderStream interface { Recv() (rawtopicreader.ServerMessage, error) Send(msg rawtopicreader.ClientMessage) error CloseSend() error } var _ RawTopicReaderStream = &SyncedStream{} type SyncedStream struct { m sync.Mutex stream RawTopicReaderStream } func NewSyncedStream(stream RawTopicReaderStream) *SyncedStream { return &SyncedStream{ stream: stream, } } func (s *SyncedStream) Recv() (rawtopicreader.ServerMessage, error) { // not need synced return s.stream.Recv() } func (s *SyncedStream) Send(msg rawtopicreader.ClientMessage) error { s.m.Lock() defer s.m.Unlock() return s.stream.Send(msg) } func (s *SyncedStream) CloseSend() error { s.m.Lock() defer s.m.Unlock() return s.stream.CloseSend() }