001
014
015 package com.liferay.portal.kernel.nio.intraband.messaging;
016
017 import com.liferay.portal.kernel.io.Serializer;
018 import com.liferay.portal.kernel.messaging.Message;
019 import com.liferay.portal.kernel.messaging.MessageListener;
020 import com.liferay.portal.kernel.nio.intraband.Datagram;
021 import com.liferay.portal.kernel.nio.intraband.IntraBand;
022 import com.liferay.portal.kernel.nio.intraband.RegistrationReference;
023 import com.liferay.portal.kernel.nio.intraband.SystemDataType;
024
025
028 public class IntraBandBridgeMessageListener implements MessageListener {
029
030 public IntraBandBridgeMessageListener(
031 RegistrationReference registrationReference) {
032
033 _registrationReference = registrationReference;
034
035 _intraBand = registrationReference.getIntraBand();
036
037 SystemDataType systemDataType = SystemDataType.MESSAGE;
038
039 _messageType = systemDataType.getValue();
040 }
041
042 public void receive(Message message) {
043 Serializer serializer = new Serializer();
044
045 serializer.writeObject(message);
046
047 _intraBand.sendDatagram(
048 _registrationReference,
049 Datagram.createRequestDatagram(
050 _messageType, serializer.toByteBuffer()));
051 }
052
053 private final IntraBand _intraBand;
054 private final byte _messageType;
055 private final RegistrationReference _registrationReference;
056
057 }