summaryrefslogtreecommitdiff
path: root/qpid/java/common/src
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-05-15 17:52:22 +0000
committerRafael H. Schloming <rhs@apache.org>2008-05-15 17:52:22 +0000
commitacd902b4b5aa605cf3aae20280c63db54510abbd (patch)
tree9d03a1eb47d0f9cbfe2f4b36232e3f8feb7ab413 /qpid/java/common/src
parent6695301f20644333b0fdacee073ec88ad4e5c88a (diff)
downloadqpid-python-acd902b4b5aa605cf3aae20280c63db54510abbd.tar.gz
QPID-1062: phase 1 of improvements to 0-10 encode/decode; this inlines the read/write method of structs into generated code resulting in roughly a 2x improvement
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@656760 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common/src')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpidity/transport/Struct.java74
1 files changed, 2 insertions, 72 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpidity/transport/Struct.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/Struct.java
index f901f9e840..9146f41535 100644
--- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/Struct.java
+++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/Struct.java
@@ -108,79 +108,9 @@ public abstract class Struct implements Encodable
return getFlagCount() - getFields().size();
}
- public final void read(Decoder dec)
- {
- List<Field<?,?>> fields = getFields();
-
- assert fields.size() <= getFlagCount();
-
- if (packed())
- {
- for (Field<?,?> f : fields)
- {
- if (isBit(f))
- {
- f.has(this, true);
- f.read(dec, this);
- }
- else
- {
- f.has(this, dec.readBit());
- }
- }
-
- for (int i = 0; i < getReservedFlagCount(); i++)
- {
- if (dec.readBit())
- {
- throw new IllegalStateException("reserved flag true");
- }
- }
- }
-
- for (Field<?,?> f : fields)
- {
- if (encoded(f))
- {
- f.read(dec, this);
- }
- }
- }
-
- public final void write(Encoder enc)
- {
- List<Field<?,?>> fields = getFields();
+ public abstract void read(Decoder dec);
- assert fields.size() <= getFlagCount();
-
- if (packed())
- {
- for (Field<?,?> f : fields)
- {
- if (isBit(f))
- {
- f.write(enc, this);
- }
- else
- {
- enc.writeBit(f.has(this));
- }
- }
-
- for (int i = 0; i < getReservedFlagCount(); i++)
- {
- enc.writeBit(false);
- }
- }
-
- for (Field<?,?> f : fields)
- {
- if (encoded(f))
- {
- f.write(enc, this);
- }
- }
- }
+ public abstract void write(Encoder enc);
public String toString()
{