// Apache Thrift Memory Transport in Java
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import org.apache.thrift.transport.TMemoryBuffer;
import org.apache.thrift.transport.TTransportException;
public class MemTrans {
static private class Trade implements Serializable {
public String symbol;
public double price;
public int size;
};
public static void main(String[] args)
throws IOException, TTransportException, ClassNotFoundException {
TMemoryBuffer transport = new TMemoryBuffer(4096);
Trade trade = new Trade();
trade.symbol = "F";
trade.price = 13.10;
trade.size = 2500;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(trade);
transport.write(baos.toByteArray());
byte[] buf = new byte[128];
int bytes_read = transport.read(buf, 0, buf.length);
ByteArrayInputStream bais = new ByteArrayInputStream(buf);
ObjectInputStream ois = new ObjectInputStream(bais);
Trade trade_read = (Trade) ois.readObject();
System.out.println("Trade(" + bytes_read + "): " + trade_read.symbol
+ " " + trade_read.size + " @ " + trade_read.price);
}
}