public class org.springframework.messaging.simp.user.UserRegistryMessageHandler extends java.lang.Object implements org.springframework.messaging.MessageHandler, org.springframework.context.ApplicationListener
{
private final org.springframework.messaging.simp.user.MultiServerUserRegistry userRegistry;
private final org.springframework.messaging.simp.SimpMessagingTemplate brokerTemplate;
private final java.lang.String broadcastDestination;
private final org.springframework.scheduling.TaskScheduler scheduler;
private final org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask schedulerTask;
private volatile java.util.concurrent.ScheduledFuture scheduledFuture;
private long registryExpirationPeriod;
public void <init>(org.springframework.messaging.simp.user.MultiServerUserRegistry, org.springframework.messaging.simp.SimpMessagingTemplate, java.lang.String, org.springframework.scheduling.TaskScheduler)
{
org.springframework.messaging.simp.SimpMessagingTemplate v;
org.springframework.messaging.simp.user.MultiServerUserRegistry v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler v;
org.springframework.scheduling.TaskScheduler v;
java.lang.String v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask v;
v := @this: org.springframework.messaging.simp.user.UserRegistryMessageHandler;
v := @parameter: org.springframework.messaging.simp.user.MultiServerUserRegistry;
v := @parameter: org.springframework.messaging.simp.SimpMessagingTemplate;
v := @parameter: java.lang.String;
v := @parameter: org.springframework.scheduling.TaskScheduler;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask;
specialinvoke v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask: void <init>(org.springframework.messaging.simp.user.UserRegistryMessageHandler)>(v);
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask schedulerTask> = v;
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: long registryExpirationPeriod> = 20000L;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "\'userRegistry\' is required");
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "\'brokerTemplate\' is required");
staticinvoke <org.springframework.util.Assert: void hasText(java.lang.String,java.lang.String)>(v, "\'broadcastDestination\' is required");
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "\'scheduler\' is required");
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.messaging.simp.user.MultiServerUserRegistry userRegistry> = v;
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.messaging.simp.SimpMessagingTemplate brokerTemplate> = v;
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: java.lang.String broadcastDestination> = v;
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.scheduling.TaskScheduler scheduler> = v;
return;
}
public java.lang.String getBroadcastDestination()
{
java.lang.String v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler v;
v := @this: org.springframework.messaging.simp.user.UserRegistryMessageHandler;
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: java.lang.String broadcastDestination>;
return v;
}
public void setRegistryExpirationPeriod(long)
{
long v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler v;
v := @this: org.springframework.messaging.simp.user.UserRegistryMessageHandler;
v := @parameter: long;
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: long registryExpirationPeriod> = v;
return;
}
public long getRegistryExpirationPeriod()
{
long v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler v;
v := @this: org.springframework.messaging.simp.user.UserRegistryMessageHandler;
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: long registryExpirationPeriod>;
return v;
}
public void onApplicationEvent(org.springframework.messaging.simp.broker.BrokerAvailabilityEvent)
{
java.util.concurrent.ScheduledFuture v, v;
org.springframework.scheduling.TaskScheduler v;
long v, v;
org.springframework.messaging.simp.broker.BrokerAvailabilityEvent v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler v;
boolean v;
v := @this: org.springframework.messaging.simp.user.UserRegistryMessageHandler;
v := @parameter: org.springframework.messaging.simp.broker.BrokerAvailabilityEvent;
v = virtualinvoke v.<org.springframework.messaging.simp.broker.BrokerAvailabilityEvent: boolean isBrokerAvailable()>();
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: long getRegistryExpirationPeriod()>();
v = v / 2L;
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.scheduling.TaskScheduler scheduler>;
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.messaging.simp.user.UserRegistryMessageHandler$UserRegistryTask schedulerTask>;
v = interfaceinvoke v.<org.springframework.scheduling.TaskScheduler: java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable,long)>(v, v);
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: java.util.concurrent.ScheduledFuture scheduledFuture> = v;
goto label;
label:
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: java.util.concurrent.ScheduledFuture scheduledFuture>;
if v == null goto label;
interfaceinvoke v.<java.util.concurrent.ScheduledFuture: boolean cancel(boolean)>(1);
v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: java.util.concurrent.ScheduledFuture scheduledFuture> = null;
label:
return;
}
public void handleMessage(org.springframework.messaging.Message) throws org.springframework.messaging.MessagingException
{
org.springframework.messaging.simp.SimpMessagingTemplate v;
org.springframework.messaging.simp.user.MultiServerUserRegistry v;
org.springframework.messaging.simp.user.UserRegistryMessageHandler v;
org.springframework.messaging.converter.MessageConverter v;
long v;
org.springframework.messaging.Message v;
v := @this: org.springframework.messaging.simp.user.UserRegistryMessageHandler;
v := @parameter: org.springframework.messaging.Message;
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.messaging.simp.SimpMessagingTemplate brokerTemplate>;
v = virtualinvoke v.<org.springframework.messaging.simp.SimpMessagingTemplate: org.springframework.messaging.converter.MessageConverter getMessageConverter()>();
v = v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: org.springframework.messaging.simp.user.MultiServerUserRegistry userRegistry>;
v = virtualinvoke v.<org.springframework.messaging.simp.user.UserRegistryMessageHandler: long getRegistryExpirationPeriod()>();
virtualinvoke v.<org.springframework.messaging.simp.user.MultiServerUserRegistry: void addRemoteRegistryDto(org.springframework.messaging.Message,org.springframework.messaging.converter.MessageConverter,long)>(v, v, v);
return;
}
}