55
55
import com .rabbitmq .stream .StreamException ;
56
56
import com .rabbitmq .stream .compression .Compression ;
57
57
import com .rabbitmq .stream .compression .CompressionCodec ;
58
- import com .rabbitmq .stream .impl .Client .Broker ;
59
- import com .rabbitmq .stream .impl .Client .ChunkListener ;
60
- import com .rabbitmq .stream .impl .Client .MessageListener ;
61
- import com .rabbitmq .stream .impl .Client .OpenResponse ;
62
- import com .rabbitmq .stream .impl .Client .OutstandingRequest ;
63
- import com .rabbitmq .stream .impl .Client .QueryOffsetResponse ;
64
- import com .rabbitmq .stream .impl .Client .QueryPublisherSequenceResponse ;
65
- import com .rabbitmq .stream .impl .Client .Response ;
66
- import com .rabbitmq .stream .impl .Client .SaslAuthenticateResponse ;
58
+ import com .rabbitmq .stream .impl .Client .*;
67
59
import com .rabbitmq .stream .impl .Client .ShutdownContext .ShutdownReason ;
68
- import com .rabbitmq .stream .impl .Client .StreamMetadata ;
69
- import com .rabbitmq .stream .impl .Client .StreamStatsResponse ;
70
- import com .rabbitmq .stream .impl .Client .SubscriptionOffset ;
71
60
import com .rabbitmq .stream .impl .Utils .MutableBoolean ;
72
61
import com .rabbitmq .stream .metrics .MetricsCollector ;
73
62
import io .netty .buffer .ByteBuf ;
@@ -344,8 +333,8 @@ public boolean isInitiatedByServer() {
344
333
static int handleMessage (
345
334
ByteBuf bb ,
346
335
int read ,
347
- boolean filter ,
348
- MutableBoolean messageFiltered ,
336
+ boolean ignore ,
337
+ MutableBoolean messageIgnored ,
349
338
long offset ,
350
339
long offsetLimit ,
351
340
long chunkTimestamp ,
@@ -360,8 +349,8 @@ static int handleMessage(
360
349
bb .readBytes (data );
361
350
read += entrySize ;
362
351
363
- if (filter && Long .compareUnsigned (offset , offsetLimit ) < 0 ) {
364
- messageFiltered .set (true );
352
+ if (ignore && Long .compareUnsigned (offset , offsetLimit ) < 0 ) {
353
+ messageIgnored .set (true );
365
354
} else {
366
355
Message message = codec .decode (data );
367
356
messageListener .handle (
@@ -375,6 +364,7 @@ static int handleDeliverVersion1(
375
364
Client client ,
376
365
ChunkListener chunkListener ,
377
366
MessageListener messageListener ,
367
+ MessageIgnoredListener messageIgnoredListener ,
378
368
Codec codec ,
379
369
List <SubscriptionOffset > subscriptionOffsets ,
380
370
ChunkChecksum chunkChecksum ,
@@ -384,6 +374,7 @@ static int handleDeliverVersion1(
384
374
client ,
385
375
chunkListener ,
386
376
messageListener ,
377
+ messageIgnoredListener ,
387
378
codec ,
388
379
subscriptionOffsets ,
389
380
chunkChecksum ,
@@ -399,6 +390,7 @@ static int handleDeliver(
399
390
Client client ,
400
391
ChunkListener chunkListener ,
401
392
MessageListener messageListener ,
393
+ MessageIgnoredListener messageIgnoredListener ,
402
394
Codec codec ,
403
395
List <SubscriptionOffset > subscriptionOffsets ,
404
396
ChunkChecksum chunkChecksum ,
@@ -465,7 +457,7 @@ static int handleDeliver(
465
457
}
466
458
}
467
459
468
- final boolean filter = offsetLimit != -1 ;
460
+ final boolean ignore = offsetLimit != -1 ;
469
461
470
462
try {
471
463
chunkChecksum .checksum (message , dataLength , crc );
@@ -480,7 +472,7 @@ static int handleDeliver(
480
472
481
473
metricsCollector .chunk (numEntries );
482
474
long messagesRead = 0 ;
483
- MutableBoolean messageFiltered = new MutableBoolean (false );
475
+ MutableBoolean messageIgnored = new MutableBoolean (false );
484
476
485
477
while (numRecords != 0 ) {
486
478
byte entryType = message .readByte ();
@@ -495,8 +487,8 @@ static int handleDeliver(
495
487
handleMessage (
496
488
message ,
497
489
read ,
498
- filter ,
499
- messageFiltered ,
490
+ ignore ,
491
+ messageIgnored ,
500
492
offset ,
501
493
offsetLimit ,
502
494
chunkTimestamp ,
@@ -505,10 +497,10 @@ static int handleDeliver(
505
497
messageListener ,
506
498
subscriptionId ,
507
499
chunkContext );
508
- if (messageFiltered .get ()) {
509
- // TODO add listener and pass chunk context in
510
- // this will be used e.g. to mark messages as "processed"
511
- messageFiltered .set (false );
500
+ if (messageIgnored .get ()) {
501
+ messageIgnoredListener . ignored (
502
+ subscriptionId , offset , chunkTimestamp , committedOffset , chunkContext );
503
+ messageIgnored .set (false );
512
504
} else {
513
505
messagesRead ++;
514
506
}
@@ -564,8 +556,8 @@ static int handleDeliver(
564
556
handleMessage (
565
557
bbToReadFrom ,
566
558
read ,
567
- filter ,
568
- messageFiltered ,
559
+ ignore ,
560
+ messageIgnored ,
569
561
offset ,
570
562
offsetLimit ,
571
563
chunkTimestamp ,
@@ -574,8 +566,10 @@ static int handleDeliver(
574
566
messageListener ,
575
567
subscriptionId ,
576
568
chunkContext );
577
- if (messageFiltered .get ()) {
578
- messageFiltered .set (false );
569
+ if (messageIgnored .get ()) {
570
+ messageIgnoredListener .ignored (
571
+ subscriptionId , offset , chunkTimestamp , committedOffset , chunkContext );
572
+ messageIgnored .set (false );
579
573
} else {
580
574
messagesRead ++;
581
575
}
@@ -601,6 +595,7 @@ int doHandle(Client client, ChannelHandlerContext ctx, ByteBuf message) {
601
595
client ,
602
596
client .chunkListener ,
603
597
client .messageListener ,
598
+ client .messageIgnoredListener ,
604
599
client .codec ,
605
600
client .subscriptionOffsets ,
606
601
client .chunkChecksum ,
@@ -622,6 +617,7 @@ int doHandle(Client client, ChannelHandlerContext ctx, ByteBuf message) {
622
617
client ,
623
618
client .chunkListener ,
624
619
client .messageListener ,
620
+ client .messageIgnoredListener ,
625
621
client .codec ,
626
622
client .subscriptionOffsets ,
627
623
client .chunkChecksum ,
0 commit comments