blob: ed9e17d280c9f6feca5e72c732d25e23bb03785f [file] [log] [blame]
package org.eclipse.osee.ote.internal;
import java.net.InetSocketAddress;
import org.eclipse.osee.ote.message.event.OteEventMessageUtil;
import org.eclipse.osee.ote.message.interfaces.IRemoteMessageService;
import org.eclipse.osee.ote.remote.messages.GET_INET_ADDRESS_REQ;
import org.eclipse.osee.ote.remote.messages.GET_INET_ADDRESS_RESP;
import org.eclipse.osee.ote.remote.messages.SOCKET_ID;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
import org.osgi.service.event.EventHandler;
public class AddressResponseListener implements EventHandler {
private final EventAdmin eventAdmin;
private final IRemoteMessageService messageService;
private final GET_INET_ADDRESS_RESP resp;
private final GET_INET_ADDRESS_REQ req;
public AddressResponseListener(EventAdmin eventAdmin, IRemoteMessageService messageService) {
this.eventAdmin = eventAdmin;
this.messageService = messageService;
resp = new GET_INET_ADDRESS_RESP();
req = new GET_INET_ADDRESS_REQ();
}
@Override
public void handleEvent(Event event) {
OteEventMessageUtil.putBytes(event, req);
InetSocketAddress address;
resp.getHeader().RESPONSE_ID.setValue(req.getHeader().MESSAGE_SEQUENCE_NUMBER.getValue());
if(req.SOCKET_ID.getValue() == SOCKET_ID.MSG_UPDATES){
address = messageService.getMsgUpdateSocketAddress();
} else {
address = messageService.getRecorderSocketAddress();
}
resp.SOCKET_ID.setValue(req.SOCKET_ID.getValue());
resp.ADDRESS.setAddress(address.getAddress());
resp.ADDRESS.setPort(address.getPort());
OteEventMessageUtil.postEvent(resp, eventAdmin);
}
}