[jbosscache-commits] JBoss Cache SVN: r5038 - core/trunk/src/main/java/org/jboss/cache/marshall.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Mon Jan 7 12:04:24 EST 2008
Author: manik.surtani at jboss.com
Date: 2008-01-07 12:04:24 -0500 (Mon, 07 Jan 2008)
New Revision: 5038
Modified:
core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java
Log:
reverting back to this for now
Modified: core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java 2008-01-07 15:37:50 UTC (rev 5037)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java 2008-01-07 17:04:24 UTC (rev 5038)
@@ -117,7 +117,7 @@
{
// not region based!
if (trace) log.trace("Marshalling object " + o);
- ReferencesMap refMap = new ReferencesMap();
+ Map<Object, Integer> refMap = new HashMap<Object, Integer>();
marshallObject(o, out, refMap);
}
}
@@ -140,7 +140,7 @@
public void objectToObjectStream(Object o, ObjectOutputStream out, Fqn region) throws Exception
{
if (trace) log.trace("Marshalling object " + o);
- ReferencesMap refMap = new ReferencesMap();
+ Map<Object, Integer> refMap = new HashMap<Object, Integer>();
if (useRegionBasedMarshalling) // got to check again in case this meth is called directly
{
log.trace("Writing region " + region + " to stream");
@@ -257,18 +257,16 @@
}
// --------- Marshalling methods
- private void marshallObject(Object o, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallObject(Object o, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
{
- int reference;
-
if (o == null)
{
out.writeByte(MAGICNUMBER_NULL);
}
- else if ((reference = refMap.getReference(o)) > -1)// see if this object has been marshalled before.
+ else if (refMap.containsKey(o))// see if this object has been marshalled before.
{
out.writeByte(MAGICNUMBER_REF);
- writeReference(out, reference);
+ writeReference(out, refMap.get(o));
}
else if (o instanceof MethodCall)
{
@@ -404,7 +402,7 @@
}
}
- private void marshallGravitateResult(GravitateResult gravitateResult, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallGravitateResult(GravitateResult gravitateResult, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
{
marshallObject(gravitateResult.isDataFound(), out, refMap);
if (gravitateResult.isDataFound())
@@ -415,19 +413,20 @@
}
- private int createReference(Object o, ReferencesMap refMap)
+ private int createReference(Object o, Map<Object, Integer> refMap)
{
- int reference = refMap.nextAvailableReference();
- refMap.put(reference, o);
+ int reference = refMap.size();
+ refMap.put(o, reference);
return reference;
}
private void marshallString(String s, ObjectOutputStream out) throws Exception
{
+ //StringUtil.saveString(out, s);
out.writeObject(s);
}
- private void marshallMethodCall(MethodCall methodCall, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallMethodCall(MethodCall methodCall, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
{
out.writeShort(methodCall.getMethodId());
Object[] args = methodCall.getArgs();
@@ -440,14 +439,14 @@
}
}
- private void marshallGlobalTransaction(GlobalTransaction globalTransaction, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallGlobalTransaction(GlobalTransaction globalTransaction, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
{
out.writeLong(globalTransaction.getId());
marshallObject(globalTransaction.getAddress(), out, refMap);
}
- private void marshallFqn(Fqn fqn, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallFqn(Fqn fqn, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
{
boolean isRoot = fqn.isRoot();
out.writeBoolean(isRoot);
@@ -466,7 +465,7 @@
ipAddress.writeExternal(out);
}
- private void marshallCollection(Collection c, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallCollection(Collection c, ObjectOutputStream out, Map refMap) throws Exception
{
writeUnsignedInt(out, c.size());
for (Object o : c)
@@ -475,7 +474,7 @@
}
}
- private void marshallMap(Map map, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+ private void marshallMap(Map map, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
{
int mapSize = map.size();
writeUnsignedInt(out, mapSize);
@@ -810,50 +809,3 @@
out.writeLong(i);
}
}
-
-class ReferencesMap
-{
- private ArrayList<Object> referencedObjects = new ArrayList<Object>()
- {
- @Override
- public int indexOf(Object elem)
- {
- if (elem == null)
- {
- for (int i = 0; i < size(); i++)
- {
- if (get(i) == null) return i;
- }
- }
- else
- {
- for (int i = 0; i < size(); i++)
- {
- Object elInList = get(i);
- if (elInList.getClass().equals(elem.getClass()) && elem.equals(elInList)) return i;
- }
- }
- return -1;
- }
- };
-
- void put(int reference, Object object)
- {
- referencedObjects.add(reference, object);
- }
-
- Object get(int reference)
- {
- return referencedObjects.get(reference);
- }
-
- int nextAvailableReference()
- {
- return referencedObjects.size();
- }
-
- int getReference(Object object)
- {
- return referencedObjects.indexOf(object);
- }
-}
More information about the jbosscache-commits
mailing list