Skip to content

Instantly share code, notes, and snippets.

@benstopford
Created April 12, 2014 11:36
Show Gist options
  • Save benstopford/10531454 to your computer and use it in GitHub Desktop.
Save benstopford/10531454 to your computer and use it in GitHub Desktop.
Example of Pof Internals
package com.benstopford.coherence.bootstrap.morecomplex;
import com.tangosol.io.ReadBuffer;
import com.tangosol.io.pof.*;
import com.tangosol.util.Binary;
import com.tangosol.util.ExternalizableHelper;
import java.io.IOException;
public class PofPrimerGist {
public static void main(String[] args) throws IOException {
SimplePofContext context = new SimplePofContext();
context.registerUserType(1042, PofObject.class, new PortableObjectSerializer(1042));
PofObject object = new PofObject("TheData");
//get the binary & stream
Binary binary = ExternalizableHelper.toBinary(object, context);
ReadBuffer.BufferInput stream = binary.getBufferInput();
System.out.printf("Header btye: %s\n" +
"ClassType is: %s\n" +
"ClassVersion is: %s\n" +
"FieldPofId is: %s\n" +
"Field data type is: %s\n" +
"Field length is: %s\n",
stream.readPackedInt(),
stream.readPackedInt(),
stream.readPackedInt(),
stream.readPackedInt(),
stream.readPackedInt(),
stream.readPackedInt()
);
System.out.printf("Field Value is: %s\n",
binary.toBinary(6, "TheData".length() + 1).getBufferInput().readSafeUTF()
);
}
public static class PofObject implements PortableObject {
private Object data;
PofObject(Object data) {
this.data = data;
}
public void readExternal(PofReader pofReader) throws IOException {
data = pofReader.readObject(1);
}
public void writeExternal(PofWriter pofWriter) throws IOException {
pofWriter.writeObject(1, data);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment