blob: 4be9444e4b9fbf3b73682f492a065813873f582e [file] [log] [blame]
/*
* Copyright 2011 Alibaba.com All right reserved. This software is the
* confidential and proprietary information of Alibaba.com ("Confidential
* Information"). You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license agreement you entered
* into with Alibaba.com.
*/
package com.dubbo.serialize.benchmark;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import com.alibaba.dubbo.common.io.UnsafeByteArrayInputStream;
import com.alibaba.dubbo.common.io.UnsafeByteArrayOutputStream;
import com.alibaba.dubbo.common.serialize.support.dubbo.GenericObjectInput;
import com.alibaba.dubbo.common.serialize.support.dubbo.GenericObjectOutput;
import com.caucho.hessian.io.Hessian2StreamingInput;
import com.caucho.hessian.io.Hessian2StreamingOutput;
import data.media.MediaContent;
/**
* 类Dubbo.java的实现描述:Dubbo Seriazition Benchmark
*
* @author tony.chenl 2011-9-30 上午10:17:21
*/
public class Dubbo {
public static void register(TestGroups groups) {
groups.media.add(JavaBuiltIn.MediaTransformer, Dubbo.<MediaContent>GenericSerializer());
}
public static <T> Serializer<T> GenericSerializer()
{
@SuppressWarnings("unchecked")
Serializer<T> s = (Serializer<T>) GenericSerializer;
return s;
}
// ------------------------------------------------------------
// Serializer (just one)
public static Serializer<Object> GenericSerializer = new Serializer<Object>()
{
public Object deserialize(byte[] array) throws Exception
{
GenericObjectInput objectInput = new GenericObjectInput(new ByteArrayInputStream(array));
return objectInput.readObject();
}
public byte[] serialize(Object data) throws java.io.IOException
{
UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream(10240);
GenericObjectOutput objectOutput = new GenericObjectOutput(os);
objectOutput.writeObject(data);
objectOutput.flushBuffer();
return os.toByteArray();
}
public String getName()
{
return "dubbo";
}
};
}