@@ -13,12 +13,16 @@ module HStream.Server.Handler.ShardReader
1313 , readShardHandler
1414 , listShardReadersHandler
1515 , readShardStreamHandler
16+ , readStreamHandler
17+ , readSingleShardStreamHandler
1618 -- * For hs-grpc-server
1719 , handleListShardReaders
1820 , handleCreateShardReader
1921 , handleDeleteShardReader
2022 , handleReadShard
2123 , handleReadShardStream
24+ , handleReadStream
25+ , handleReadSingleShardStream
2226 )
2327where
2428
@@ -122,3 +126,41 @@ handleReadShardStream
122126handleReadShardStream sc _ req stream = catchDefaultEx $ do
123127 Log. debug $ " Receive read shard stream Request: " <> Log. build (show req)
124128 C. readShardStream sc req (G. streamWrite stream . Just )
129+
130+ readStreamHandler
131+ :: ServerContext
132+ -> ServerRequest 'ServerStreaming ReadStreamRequest ReadStreamResponse
133+ -> IO (ServerResponse 'ServerStreaming ReadStreamResponse )
134+ readStreamHandler sc (ServerWriterRequest _meta req streamSend) =
135+ defaultServerStreamExceptionHandle $ do
136+ Log. debug $ " Receive read shard stream Request: " <> Log. build (show req)
137+ C. readStream sc req streamWrite
138+ return $ ServerWriterResponse mempty StatusUnknown " should not reach here"
139+ where
140+ streamWrite x = first show <$> streamSend x
141+
142+ handleReadStream
143+ :: ServerContext
144+ -> G. ServerStreamHandler ReadStreamRequest ReadStreamResponse ()
145+ handleReadStream sc _ req stream = catchDefaultEx $ do
146+ Log. debug $ " Receive read shard stream Request: " <> Log. build (show req)
147+ C. readStream sc req (G. streamWrite stream . Just )
148+
149+ readSingleShardStreamHandler
150+ :: ServerContext
151+ -> ServerRequest 'ServerStreaming ReadSingleShardStreamRequest ReadSingleShardStreamResponse
152+ -> IO (ServerResponse 'ServerStreaming ReadSingleShardStreamResponse )
153+ readSingleShardStreamHandler sc (ServerWriterRequest _meta req streamSend) =
154+ defaultServerStreamExceptionHandle $ do
155+ Log. debug $ " Receive read single shard stream Request: " <> Log. build (show req)
156+ C. readSingleShardStream sc req streamWrite
157+ return $ ServerWriterResponse mempty StatusUnknown " should not reach here"
158+ where
159+ streamWrite x = first show <$> streamSend x
160+
161+ handleReadSingleShardStream
162+ :: ServerContext
163+ -> G. ServerStreamHandler ReadSingleShardStreamRequest ReadSingleShardStreamResponse ()
164+ handleReadSingleShardStream sc _ req stream = catchDefaultEx $ do
165+ Log. debug $ " Receive read single shard stream Request: " <> Log. build (show req)
166+ C. readSingleShardStream sc req (G. streamWrite stream . Just )
0 commit comments