package com.ubermq.jms.common.datagram.impl;
import com.ubermq.jms.common.datagram.*;
import com.ubermq.kernel.*;
import java.nio.ByteBuffer;
/**
* A datagram factory that uses the optimized
* implementation of IMessageDatagram. The optimized
* version is tailored for use by servers, which perform
* very little modification and examine a message datagram
* for a short, well-defined period of time. <p>
*
* @see com.ubermq.jms.server.datagram.impl.ServerMessageDatagram
*/
public final class ServerDatagramFactory
extends DatagramFactory
{
private static final ServerDatagramFactory theInstance;
private static final ServerMessageDatagram smd;
static {
theInstance = new ServerDatagramFactory();
smd = new ServerMessageDatagram();
}
/**
* singleton pattern. this is a stateless object.
*/
ServerDatagramFactory() {}
private Object readResolve() {return theInstance;}
public static DatagramFactory getInstance() {return theInstance;}
IDatagram createDatagramInstance(int datagramType)
{
if (datagramType == DatagramFactory.DGRAM_MSG)
return smd;
else
return super.createDatagramInstance(datagramType);
}
}
|