diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2008-05-15 17:52:22 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2008-05-15 17:52:22 +0000 |
| commit | acd902b4b5aa605cf3aae20280c63db54510abbd (patch) | |
| tree | 9d03a1eb47d0f9cbfe2f4b36232e3f8feb7ab413 /qpid/java/common/src | |
| parent | 6695301f20644333b0fdacee073ec88ad4e5c88a (diff) | |
| download | qpid-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.java | 74 |
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() { |
