@@ -50,7 +50,13 @@ export interface IBDQuery {
5050
5151export interface ISocketInstance {
5252 lastActivity : number ;
53- queries : Map < string , { recievedBatches : Set < number > } > ;
53+ queries : Map <
54+ string ,
55+ {
56+ receivedBatches : Set < number > ;
57+ receivedSubBatches : Map < number , Set < number > > ;
58+ }
59+ > ;
5460 send : ( payload : IBDDataQuery ) => void ;
5561 query : ( params : IBDQuery ) => void ;
5662 bumpActivity : ( ) => void ;
@@ -173,7 +179,8 @@ export class BoilingData {
173179 requestId,
174180 } ;
175181 this . socketInstance . queries . set ( requestId , {
176- recievedBatches : new Set ( ) ,
182+ receivedBatches : new Set ( ) ,
183+ receivedSubBatches : new Map ( ) ,
177184 } ) ;
178185 this . socketInstance . queryCallbacks . set ( requestId , {
179186 onData : params . callbacks ?. onData ,
@@ -203,8 +210,18 @@ export class BoilingData {
203210 if ( ! message . requestId || ! message . batchSerial || ! message . totalBatches || message . batchSerial <= 0 ) return ;
204211 const queryInfo = this . socketInstance . queries . get ( message ?. requestId ) ;
205212 if ( ! queryInfo ) return ;
206- queryInfo . recievedBatches . add ( message . batchSerial ) ;
207- if ( queryInfo . recievedBatches . size < message . totalBatches ) return ;
213+ queryInfo . receivedBatches . add ( message . batchSerial ) ;
214+ if ( message . subBatchSerial && message . totalSubBatches ) {
215+ if ( ! queryInfo . receivedSubBatches . has ( message . batchSerial ) ) {
216+ queryInfo . receivedSubBatches . set ( message . batchSerial , new Set ( ) ) ;
217+ }
218+ const receivedSubBatches = queryInfo . receivedSubBatches . get ( message . batchSerial ) ;
219+ if ( receivedSubBatches ) {
220+ receivedSubBatches . add ( message . subBatchSerial ) ;
221+ if ( receivedSubBatches . size < message . totalSubBatches ) return ;
222+ }
223+ }
224+ if ( queryInfo . receivedBatches . size < message . totalBatches ) return ;
208225 this . execEventCallback ( { eventType : EEvent . QUERY_FINISHED , requestId : message . requestId , payload : message } ) ;
209226 }
210227
0 commit comments