001
014
015 package com.liferay.portal.kernel.nio.intraband.mailbox;
016
017 import com.liferay.portal.kernel.io.BigEndianCodec;
018 import com.liferay.portal.kernel.nio.intraband.BaseAsyncDatagramReceiveHandler;
019 import com.liferay.portal.kernel.nio.intraband.Datagram;
020 import com.liferay.portal.kernel.nio.intraband.Intraband;
021 import com.liferay.portal.kernel.nio.intraband.RegistrationReference;
022
023 import java.nio.ByteBuffer;
024
025
028 public class MailboxDatagramReceiveHandler
029 extends BaseAsyncDatagramReceiveHandler {
030
031 @Override
032 protected void doReceive(
033 RegistrationReference registrationReference, Datagram datagram) {
034
035 long receipt = MailboxUtil.depositMail(datagram.getDataByteBuffer());
036
037 byte[] data = new byte[8];
038
039 BigEndianCodec.putLong(data, 0, receipt);
040
041 Intraband intraband = registrationReference.getIntraband();
042
043 intraband.sendDatagram(
044 registrationReference,
045 Datagram.createResponseDatagram(datagram, ByteBuffer.wrap(data)));
046 }
047
048 }