public class io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster implements io.micronaut.websocket.WebSocketBroadcaster
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster
super_class: java.lang.Object
{
private final io.micronaut.http.netty.websocket.WebSocketMessageEncoder webSocketMessageEncoder;
descriptor: Lio/micronaut/http/netty/websocket/WebSocketMessageEncoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.micronaut.http.netty.websocket.WebSocketSessionRepository webSocketSessionRepository;
descriptor: Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(io.micronaut.http.netty.websocket.WebSocketMessageEncoder, io.micronaut.http.netty.websocket.WebSocketSessionRepository);
descriptor: (Lio/micronaut/http/netty/websocket/WebSocketMessageEncoder;Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.webSocketMessageEncoder:Lio/micronaut/http/netty/websocket/WebSocketMessageEncoder;
2: aload 0
aload 2
putfield io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.webSocketSessionRepository:Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster;
0 4 1 webSocketMessageEncoder Lio/micronaut/http/netty/websocket/WebSocketMessageEncoder;
0 4 2 webSocketSessionRepository Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
MethodParameters:
Name Flags
webSocketMessageEncoder
webSocketSessionRepository
public <T> void broadcastSync(T, io.micronaut.http.MediaType, java.util.function.Predicate<io.micronaut.websocket.WebSocketSession>);
descriptor: (Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.webSocketMessageEncoder:Lio/micronaut/http/netty/websocket/WebSocketMessageEncoder;
aload 1
aload 2
invokevirtual io.micronaut.http.netty.websocket.WebSocketMessageEncoder.encodeMessage:(Ljava/lang/Object;Lio/micronaut/http/MediaType;)Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
astore 4
start local 4 1: aload 0
getfield io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.webSocketSessionRepository:Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
invokeinterface io.micronaut.http.netty.websocket.WebSocketSessionRepository.getChannelGroup:()Lio/netty/channel/group/ChannelGroup;
aload 4
aload 3
invokedynamic matches(Ljava/util/function/Predicate;)Lio/netty/channel/group/ChannelMatcher;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/netty/channel/Channel;)Z
io/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster.lambda$0(Ljava/util/function/Predicate;Lio/netty/channel/Channel;)Z (6)
(Lio/netty/channel/Channel;)Z
invokeinterface io.netty.channel.group.ChannelGroup.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/group/ChannelMatcher;)Lio/netty/channel/group/ChannelGroupFuture;
2: invokeinterface io.netty.channel.group.ChannelGroupFuture.sync:()Lio/netty/channel/group/ChannelGroupFuture;
pop
3: goto 6
StackMap locals: io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster java.lang.Object io.micronaut.http.MediaType java.util.function.Predicate io.netty.handler.codec.http.websocketx.WebSocketFrame
StackMap stack: java.lang.InterruptedException
4: pop
5: new io.micronaut.websocket.exceptions.WebSocketSessionException
dup
ldc "Broadcast Interrupted"
invokespecial io.micronaut.websocket.exceptions.WebSocketSessionException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster;
0 7 1 message TT;
0 7 2 mediaType Lio/micronaut/http/MediaType;
0 7 3 filter Ljava/util/function/Predicate<Lio/micronaut/websocket/WebSocketSession;>;
1 7 4 frame Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
Exception table:
from to target type
1 3 4 Class java.lang.InterruptedException
Signature: <T:Ljava/lang/Object;>(TT;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate<Lio/micronaut/websocket/WebSocketSession;>;)V
MethodParameters:
Name Flags
message
mediaType
filter
public <T> io.reactivex.Flowable<T> broadcast(T, io.micronaut.http.MediaType, java.util.function.Predicate<io.micronaut.websocket.WebSocketSession>);
descriptor: (Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;)Lio/reactivex/Flowable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokedynamic subscribe(Lio/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster;Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;)Lio/reactivex/FlowableOnSubscribe;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/reactivex/FlowableEmitter;)V
io/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster.lambda$1(Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;Lio/reactivex/FlowableEmitter;)V (7)
(Lio/reactivex/FlowableEmitter;)V
1: getstatic io.reactivex.BackpressureStrategy.BUFFER:Lio/reactivex/BackpressureStrategy;
2: invokestatic io.reactivex.Flowable.create:(Lio/reactivex/FlowableOnSubscribe;Lio/reactivex/BackpressureStrategy;)Lio/reactivex/Flowable;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster;
0 3 1 message TT;
0 3 2 mediaType Lio/micronaut/http/MediaType;
0 3 3 filter Ljava/util/function/Predicate<Lio/micronaut/websocket/WebSocketSession;>;
Signature: <T:Ljava/lang/Object;>(TT;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate<Lio/micronaut/websocket/WebSocketSession;>;)Lio/reactivex/Flowable<TT;>;
MethodParameters:
Name Flags
message
mediaType
filter
public org.reactivestreams.Publisher broadcast(java.lang.Object, io.micronaut.http.MediaType, java.util.function.Predicate);
descriptor: (Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;)Lorg/reactivestreams/Publisher;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
checkcast java.lang.Object
aload 2
aload 3
invokevirtual io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.broadcast:(Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;)Lio/reactivex/Flowable;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static boolean lambda$0(java.util.function.Predicate, io.netty.channel.Channel);
descriptor: (Ljava/util/function/Predicate;Lio/netty/channel/Channel;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=2
start local 1 0: aload 1
getstatic io.micronaut.http.netty.websocket.NettyRxWebSocketSession.WEB_SOCKET_SESSION_KEY:Lio/netty/util/AttributeKey;
invokeinterface io.netty.channel.Channel.attr:(Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
astore 2
start local 2 1: aload 2
invokeinterface io.netty.util.Attribute.get:()Ljava/lang/Object;
checkcast io.micronaut.http.netty.websocket.NettyRxWebSocketSession
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.isOpen:()Z
ifeq 3
aload 0
aload 3
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 3
iconst_1
ireturn
StackMap locals: io.netty.util.Attribute io.micronaut.http.netty.websocket.NettyRxWebSocketSession
StackMap stack:
3: iconst_0
ireturn
end local 3 end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 ch Lio/netty/channel/Channel;
1 4 2 attr Lio/netty/util/Attribute<Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;>;
2 4 3 s Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
private void lambda$1(java.lang.Object, io.micronaut.http.MediaType, java.util.function.Predicate, io.reactivex.FlowableEmitter);
descriptor: (Ljava/lang/Object;Lio/micronaut/http/MediaType;Ljava/util/function/Predicate;Lio/reactivex/FlowableEmitter;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 4 0: aload 0
getfield io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.webSocketMessageEncoder:Lio/micronaut/http/netty/websocket/WebSocketMessageEncoder;
aload 1
aload 2
invokevirtual io.micronaut.http.netty.websocket.WebSocketMessageEncoder.encodeMessage:(Ljava/lang/Object;Lio/micronaut/http/MediaType;)Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
astore 5
start local 5 1: aload 0
getfield io.micronaut.http.netty.websocket.NettyServerWebSocketBroadcaster.webSocketSessionRepository:Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;
invokeinterface io.micronaut.http.netty.websocket.WebSocketSessionRepository.getChannelGroup:()Lio/netty/channel/group/ChannelGroup;
aload 5
aload 3
invokedynamic matches(Ljava/util/function/Predicate;)Lio/netty/channel/group/ChannelMatcher;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/netty/channel/Channel;)Z
io/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster.lambda$2(Ljava/util/function/Predicate;Lio/netty/channel/Channel;)Z (6)
(Lio/netty/channel/Channel;)Z
invokeinterface io.netty.channel.group.ChannelGroup.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/group/ChannelMatcher;)Lio/netty/channel/group/ChannelGroupFuture;
2: aload 4
aload 1
invokedynamic operationComplete(Lio/reactivex/FlowableEmitter;Ljava/lang/Object;)Lio/netty/util/concurrent/GenericFutureListener;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/netty/util/concurrent/Future;)V
io/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster.lambda$3(Lio/reactivex/FlowableEmitter;Ljava/lang/Object;Lio/netty/util/concurrent/Future;)V (6)
(Lio/netty/util/concurrent/Future;)V
invokeinterface io.netty.channel.group.ChannelGroupFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/group/ChannelGroupFuture;
pop
end local 5 3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 5
start local 5 5: aload 4
new io.micronaut.websocket.exceptions.WebSocketSessionException
dup
new java.lang.StringBuilder
dup
ldc "Broadcast Failure: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokespecial io.micronaut.websocket.exceptions.WebSocketSessionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
invokeinterface io.reactivex.FlowableEmitter.onError:(Ljava/lang/Throwable;)V
end local 5 6: StackMap locals:
StackMap stack:
return
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/micronaut/http/netty/websocket/NettyServerWebSocketBroadcaster;
0 7 4 emitter Lio/reactivex/FlowableEmitter<TT;>;
1 3 5 frame Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
5 6 5 e Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
Exceptions:
throws java.lang.Exception
private static boolean lambda$2(java.util.function.Predicate, io.netty.channel.Channel);
descriptor: (Ljava/util/function/Predicate;Lio/netty/channel/Channel;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=2
start local 1 0: aload 1
getstatic io.micronaut.http.netty.websocket.NettyRxWebSocketSession.WEB_SOCKET_SESSION_KEY:Lio/netty/util/AttributeKey;
invokeinterface io.netty.channel.Channel.attr:(Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
astore 2
start local 2 1: aload 2
invokeinterface io.netty.util.Attribute.get:()Ljava/lang/Object;
checkcast io.micronaut.http.netty.websocket.NettyRxWebSocketSession
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
invokevirtual io.micronaut.http.netty.websocket.NettyRxWebSocketSession.isOpen:()Z
ifeq 3
aload 0
aload 3
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 3
iconst_1
ireturn
StackMap locals: io.netty.util.Attribute io.micronaut.http.netty.websocket.NettyRxWebSocketSession
StackMap stack:
3: iconst_0
ireturn
end local 3 end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 ch Lio/netty/channel/Channel;
1 4 2 attr Lio/netty/util/Attribute<Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;>;
2 4 3 s Lio/micronaut/http/netty/websocket/NettyRxWebSocketSession;
private static void lambda$3(io.reactivex.FlowableEmitter, java.lang.Object, io.netty.util.concurrent.Future);
descriptor: (Lio/reactivex/FlowableEmitter;Ljava/lang/Object;Lio/netty/util/concurrent/Future;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=6, locals=4, args_size=3
start local 2 0: aload 2
invokeinterface io.netty.util.concurrent.Future.isSuccess:()Z
ifeq 4
1: aload 0
aload 1
invokeinterface io.reactivex.FlowableEmitter.onNext:(Ljava/lang/Object;)V
2: aload 0
invokeinterface io.reactivex.FlowableEmitter.onComplete:()V
3: goto 6
4: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.netty.util.concurrent.Future.cause:()Ljava/lang/Throwable;
astore 3
start local 3 5: aload 0
new io.micronaut.websocket.exceptions.WebSocketSessionException
dup
new java.lang.StringBuilder
dup
ldc "Broadcast Failure: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial io.micronaut.websocket.exceptions.WebSocketSessionException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
invokeinterface io.reactivex.FlowableEmitter.onError:(Ljava/lang/Throwable;)V
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 7 2 future Lio/netty/util/concurrent/Future<-Ljava/lang/Void;>;
5 6 3 cause Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
}
SourceFile: "NettyServerWebSocketBroadcaster.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
RuntimeVisibleAnnotations:
javax.inject.Singleton()
io.micronaut.context.annotation.Requires(beans = {Lio/micronaut/http/netty/websocket/WebSocketSessionRepository;})