private EventServerSync processEventSyncResponse(String endpointId, int requestHash, String appToken, EventClientSync request, EndpointProfileDto profile) { EventServerSync response = new EventServerSync(); List<EventListenersRequest> requests = request.getEventListenersRequests(); if (requests != null && !requests.isEmpty()) { LOG.debug("[{}] processing {} endpoint listener requests", endpointId, requests.size()); List<EventListenersResponse> responses = new ArrayList<>(requests.size()); for (EventListenersRequest elRequest : requests) { LOG.debug("[{}] processing event listener request {}", endpointId, request); EventListenersResponse elResponse = endpointUserService.findListeners( profile, appToken, elRequest); LOG.debug("[{}] event listener response {}", endpointId, response); responses.add(elResponse); } response.setEventListenersResponses(responses); } else { List<EventListenersResponse> emptyList = Collections.emptyList(); response.setEventListenersResponses(emptyList); } return response; }
private static EventServerSync deepCopy(EventServerSync source) { if (source == null) { return null; } EventServerSync copy = new EventServerSync(); if (source.getEventSequenceNumberResponse() != null) { copy.setEventSequenceNumberResponse(source.getEventSequenceNumberResponse()); } if (source.getEvents() != null) { copy.setEvents(new ArrayList<>(source.getEvents())); } if (source.getEventListenersResponses() != null) { copy.setEventListenersResponses(new ArrayList<>(source.getEventListenersResponses())); } return copy; }
private void processSeqNumber(EventClientSync request, SyncContext responseHolder) { if (request.isSeqNumberRequest()) { EventServerSync response = responseHolder.getResponse().getEventSync(); if (response == null) { response = new EventServerSync(); responseHolder.getResponse().setEventSync(response); } response.setEventSequenceNumberResponse(new EventSequenceNumberResponse( Math.max(state.getEventSeqNumber(), 0))); } }
private void addEventsAndReply(ActorContext context, ChannelMetaData channel, EndpointEventReceiveMessage message) { SyncRequestMessage pendingRequest = channel.getRequestMessage(); SyncContext pendingResponse = channel.getResponseHolder(); EventServerSync eventResponse = pendingResponse.getResponse().getEventSync(); if (eventResponse == null) { eventResponse = new EventServerSync(); pendingResponse.getResponse().setEventSync(eventResponse); } eventResponse.setEvents(message.getEvents()); sendReply(context, pendingRequest, pendingResponse.getResponse()); if (!channel.getType().isAsync()) { state.removeChannel(channel); } }