IGNITE-61 - Direct marshalling
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e9e180cb Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e9e180cb Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e9e180cb Branch: refs/heads/ignite-61 Commit: e9e180cbd1cb7b4125b4dcf846c080fa048d600f Parents: a8522ac Author: Valentin Kulichenko <[email protected]> Authored: Thu Feb 5 11:45:42 2015 -0800 Committer: Valentin Kulichenko <[email protected]> Committed: Thu Feb 5 11:45:42 2015 -0800 ---------------------------------------------------------------------- .../CommunicationMessageCodeGenerator.java | 10 +- .../ignite/internal/GridJobExecuteRequest.java | 852 +++++++++---------- 2 files changed, 424 insertions(+), 438 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e9e180cb/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java ---------------------------------------------------------------------- diff --git a/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java b/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java index 3649830..c833c70 100644 --- a/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java +++ b/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java @@ -129,7 +129,9 @@ public class CommunicationMessageCodeGenerator { CommunicationMessageCodeGenerator gen = new CommunicationMessageCodeGenerator(); try { - gen.generateAll(true); + gen.generateAndWrite(GridJobExecuteRequest.class); + + //gen.generateAll(true); } catch (Exception e) { e.printStackTrace(); @@ -145,15 +147,13 @@ public class CommunicationMessageCodeGenerator { public void generateAll(boolean write) throws Exception { Collection<Class<? extends GridTcpCommunicationMessageAdapter>> classes = classes(); - byte type = 0; - for (Class<? extends GridTcpCommunicationMessageAdapter> cls : classes) { boolean isAbstract = Modifier.isAbstract(cls.getModifiers()); System.out.println("Processing class: " + cls.getName() + (isAbstract ? " (abstract)" : "")); if (write) - generateAndWrite(cls, isAbstract ? -1 : type++); + generateAndWrite(cls); else generate(cls); } @@ -179,7 +179,7 @@ public class CommunicationMessageCodeGenerator { * @throws Exception In case of error. */ @SuppressWarnings("ConstantConditions") - private void generateAndWrite(Class<? extends GridTcpCommunicationMessageAdapter> cls, byte type) throws Exception { + private void generateAndWrite(Class<? extends GridTcpCommunicationMessageAdapter> cls) throws Exception { assert cls != null; generate(cls); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e9e180cb/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java index 20e4597..aac47f9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridJobExecuteRequest.java @@ -456,202 +456,196 @@ public class GridJobExecuteRequest extends GridTcpCommunicationMessageAdapter im /** {@inheritDoc} */ @SuppressWarnings("all") @Override public boolean writeTo(ByteBuffer buf) { -// commState.setBuffer(buf); -// -// if (!commState.typeWritten) { -// if (!commState.putByte(null, directType())) -// return false; -// -// commState.typeWritten = true; -// } -// -// switch (commState.idx) { -// case 0: -// if (!commState.putGridUuid("clsLdrId", clsLdrId)) -// return false; -// -// commState.idx++; -// -// case 1: -// if (!commState.putString("cpSpi", cpSpi)) -// return false; -// -// commState.idx++; -// -// case 2: -// if (!commState.putLong("createTime", createTime)) -// return false; -// -// commState.idx++; -// -// case 3: -// if (!commState.putEnum("depMode", depMode)) -// return false; -// -// commState.idx++; -// -// case 4: -// if (!commState.putBoolean("dynamicSiblings", dynamicSiblings)) -// return false; -// -// commState.idx++; -// -// case 5: -// if (!commState.putBoolean("forceLocDep", forceLocDep)) -// return false; -// -// commState.idx++; -// -// case 6: -// if (!commState.putBoolean("internal", internal)) -// return false; -// -// commState.idx++; -// -// case 7: -// if (!commState.putByteArray("jobAttrsBytes", jobAttrsBytes)) -// return false; -// -// commState.idx++; -// -// case 8: -// if (!commState.putByteArray("jobBytes", jobBytes)) -// return false; -// -// commState.idx++; -// -// case 9: -// if (!commState.putGridUuid("jobId", jobId)) -// return false; -// -// commState.idx++; -// -// case 9: -// if (ldrParticipants != null) { -// if (commState.it == null) { -// if (!commState.putInt(null, ldrParticipants.size())) -// return false; -// -// commState.it = ldrParticipants.entrySet().iterator(); -// } -// -// while (commState.it.hasNext() || commState.cur != NULL) { -// if (commState.cur == NULL) -// commState.cur = commState.it.next(); -// -// Map.Entry<UUID, IgniteUuid> e = (Map.Entry<UUID, IgniteUuid>)commState.cur; -// -// if (!commState.keyDone) { -// if (!commState.putUuid(null, e.getKey())) -// return false; -// -// commState.keyDone = true; -// } -// -// if (!commState.putGridUuid(null, e.getValue())) -// return false; -// -// commState.keyDone = false; -// -// commState.cur = NULL; -// } -// -// commState.it = null; -// } else { -// if (!commState.putInt(null, -1)) -// return false; -// } -// -// commState.idx++; -// -// case 11: -// if (!commState.putByteArray("sesAttrsBytes", sesAttrsBytes)) -// return false; -// -// commState.idx++; -// -// case 12: -// if (!commState.putBoolean(sesFullSup)) -// return false; -// -// commState.idx++; -// -// case 13: -// if (!commState.putGridUuid("sesId", sesId)) -// return false; -// -// commState.idx++; -// -// case 14: -// if (!commState.putByteArray("siblingsBytes", siblingsBytes)) -// return false; -// -// commState.idx++; -// -// case 15: -// if (!commState.putLong("startTaskTime", startTaskTime)) -// return false; -// -// commState.idx++; -// -// case 16: -// if (!commState.putUuid("subjId", subjId)) -// return false; -// -// commState.idx++; -// -// case 17: -// if (!commState.putString("taskClsName", taskClsName)) -// return false; -// -// commState.idx++; -// -// case 18: -// if (!commState.putString("taskName", taskName)) -// return false; -// -// commState.idx++; -// -// case 19: -// if (!commState.putLong("timeout", timeout)) -// return false; -// -// commState.idx++; -// -// case 19: -// if (top != null) { -// if (commState.it == null) { -// if (!commState.putInt(null, top.size())) -// return false; -// -// commState.it = top.iterator(); -// } -// -// while (commState.it.hasNext() || commState.cur != NULL) { -// if (commState.cur == NULL) -// commState.cur = commState.it.next(); -// -// if (!commState.putUuid(null, (UUID)commState.cur)) -// return false; -// -// commState.cur = NULL; -// } -// -// commState.it = null; -// } else { -// if (!commState.putInt(null, -1)) -// return false; -// } -// -// commState.idx++; -// -// case 21: -// if (!commState.putString("userVer", userVer)) -// return false; -// -// commState.idx++; -// -// } + commState.setBuffer(buf); + + if (!commState.typeWritten) { + if (!commState.putByte(null, directType())) + return false; + + commState.typeWritten = true; + } + + switch (commState.idx) { + case 0: + if (!commState.putGridUuid("clsLdrId", clsLdrId)) + return false; + + commState.idx++; + + case 1: + if (!commState.putString("cpSpi", cpSpi)) + return false; + + commState.idx++; + + case 2: + if (!commState.putEnum("depMode", depMode)) + return false; + + commState.idx++; + + case 3: + if (!commState.putBoolean("dynamicSiblings", dynamicSiblings)) + return false; + + commState.idx++; + + case 4: + if (!commState.putBoolean("forceLocDep", forceLocDep)) + return false; + + commState.idx++; + + case 5: + if (!commState.putBoolean("internal", internal)) + return false; + + commState.idx++; + + case 6: + if (!commState.putByteArray("jobAttrsBytes", jobAttrsBytes)) + return false; + + commState.idx++; + + case 7: + if (!commState.putByteArray("jobBytes", jobBytes)) + return false; + + commState.idx++; + + case 8: + if (!commState.putGridUuid("jobId", jobId)) + return false; + + commState.idx++; + + case 9: + if (ldrParticipants != null) { + if (commState.it == null) { + if (!commState.putInt(null, ldrParticipants.size())) + return false; + + commState.it = ldrParticipants.entrySet().iterator(); + } + + while (commState.it.hasNext() || commState.cur != NULL) { + if (commState.cur == NULL) + commState.cur = commState.it.next(); + + Map.Entry<UUID, IgniteUuid> e = (Map.Entry<UUID, IgniteUuid>)commState.cur; + + if (!commState.keyDone) { + if (!commState.putUuid(null, e.getKey())) + return false; + + commState.keyDone = true; + } + + if (!commState.putGridUuid(null, e.getValue())) + return false; + + commState.keyDone = false; + + commState.cur = NULL; + } + + commState.it = null; + } else { + if (!commState.putInt(null, -1)) + return false; + } + + commState.idx++; + + case 10: + if (!commState.putByteArray("sesAttrsBytes", sesAttrsBytes)) + return false; + + commState.idx++; + + case 11: + if (!commState.putBoolean("sesFullSup", sesFullSup)) + return false; + + commState.idx++; + + case 12: + if (!commState.putGridUuid("sesId", sesId)) + return false; + + commState.idx++; + + case 13: + if (!commState.putByteArray("siblingsBytes", siblingsBytes)) + return false; + + commState.idx++; + + case 14: + if (!commState.putLong("startTaskTime", startTaskTime)) + return false; + + commState.idx++; + + case 15: + if (!commState.putUuid("subjId", subjId)) + return false; + + commState.idx++; + + case 16: + if (!commState.putString("taskClsName", taskClsName)) + return false; + + commState.idx++; + + case 17: + if (!commState.putString("taskName", taskName)) + return false; + + commState.idx++; + + case 18: + if (!commState.putLong("timeout", timeout)) + return false; + + commState.idx++; + + case 19: + if (top != null) { + if (commState.it == null) { + if (!commState.putInt(null, top.size())) + return false; + + commState.it = top.iterator(); + } + + while (commState.it.hasNext() || commState.cur != NULL) { + if (commState.cur == NULL) + commState.cur = commState.it.next(); + + if (!commState.putUuid(null, (UUID)commState.cur)) + return false; + + commState.cur = NULL; + } + + commState.it = null; + } else { + if (!commState.putInt(null, -1)) + return false; + } + + commState.idx++; + + case 20: + if (!commState.putString("userVer", userVer)) + return false; + + commState.idx++; + + } return true; } @@ -659,243 +653,235 @@ public class GridJobExecuteRequest extends GridTcpCommunicationMessageAdapter im /** {@inheritDoc} */ @SuppressWarnings("all") @Override public boolean readFrom(ByteBuffer buf) { -// commState.setBuffer(buf); -// -// switch (commState.idx) { -// case 0: -// clsLdrId = commState.getGridUuid("clsLdrId"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 1: -// cpSpi = commState.getString("cpSpi"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 2: -// createTime = commState.getLong("createTime"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 3: -// byte depMode0 = commState.getByte("depMode"); -// -// if (!commState.lastRead()) -// return false; -// -// depMode = IgniteDeploymentMode.fromOrdinal(depMode0); -// -// commState.idx++; -// -// case 4: -// dynamicSiblings = commState.getBoolean("dynamicSiblings"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 5: -// forceLocDep = commState.getBoolean("forceLocDep"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 6: -// internal = commState.getBoolean("internal"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 7: -// jobAttrsBytes = commState.getByteArray("jobAttrsBytes"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 8: -// jobBytes = commState.getByteArray("jobBytes"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 9: -// jobId = commState.getGridUuid("jobId"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 9: -// if (commState.readSize == -1) { -// commState.readSize = commState.getInt(null); -// -// if (!commState.lastRead()) -// return false; -// } -// -// if (commState.readSize >= 0) { -// if (ldrParticipants == null) -// ldrParticipants = new HashMap<>(commState.readSize, 1.0f); -// -// for (int i = commState.readItems; i < commState.readSize; i++) { -// if (!commState.keyDone) { -// UUID _val = commState.getUuid(null); -// -// if (!commState.lastRead()) -// return false; -// -// commState.cur = _val; -// commState.keyDone = true; -// } -// -// IgniteUuid _val = commState.getGridUuid(null); -// -// if (!commState.lastRead()) -// return false; -// -// ldrParticipants.put((UUID)commState.cur, _val); -// -// commState.keyDone = false; -// -// commState.readItems++; -// } -// } -// -// commState.readSize = -1; -// commState.readItems = 0; -// commState.cur = null; -// -// commState.idx++; -// -// case 11: -// sesAttrsBytes = commState.getByteArray("sesAttrsBytes"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 12: -// sesFullSup = commState.getBoolean("sesFullSup"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 13: -// sesId = commState.getGridUuid("sesId"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 14: -// siblingsBytes = commState.getByteArray("siblingsBytes"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 15: -// startTaskTime = commState.getLong("startTaskTime"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 16: -// subjId = commState.getUuid("subjId"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 17: -// taskClsName = commState.getString("taskClsName"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 18: -// taskName = commState.getString("taskName"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 19: -// timeout = commState.getLong("timeout"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// case 19: -// if (commState.readSize == -1) { -// commState.readSize = commState.getInt(null); -// -// if (!commState.lastRead()) -// return false; -// } -// -// if (commState.readSize >= 0) { -// if (top == null) -// top = new ArrayList<>(commState.readSize); -// -// for (int i = commState.readItems; i < commState.readSize; i++) { -// UUID _val = commState.getUuid(null); -// -// if (!commState.lastRead()) -// return false; -// -// top.add((UUID)_val); -// -// commState.readItems++; -// } -// } -// -// commState.readSize = -1; -// commState.readItems = 0; -// -// commState.idx++; -// -// case 21: -// userVer = commState.getString("userVer"); -// -// if (!commState.lastRead()) -// return false; -// -// commState.idx++; -// -// } + commState.setBuffer(buf); + + switch (commState.idx) { + case 0: + clsLdrId = commState.getGridUuid("clsLdrId"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 1: + cpSpi = commState.getString("cpSpi"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 2: + byte depMode0 = commState.getByte("depMode"); + + if (!commState.lastRead()) + return false; + + depMode = IgniteDeploymentMode.fromOrdinal(depMode0); + + commState.idx++; + + case 3: + dynamicSiblings = commState.getBoolean("dynamicSiblings"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 4: + forceLocDep = commState.getBoolean("forceLocDep"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 5: + internal = commState.getBoolean("internal"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 6: + jobAttrsBytes = commState.getByteArray("jobAttrsBytes"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 7: + jobBytes = commState.getByteArray("jobBytes"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 8: + jobId = commState.getGridUuid("jobId"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 9: + if (commState.readSize == -1) { + commState.readSize = commState.getInt(null); + + if (!commState.lastRead()) + return false; + } + + if (commState.readSize >= 0) { + if (ldrParticipants == null) + ldrParticipants = new HashMap<>(commState.readSize, 1.0f); + + for (int i = commState.readItems; i < commState.readSize; i++) { + if (!commState.keyDone) { + UUID _val = commState.getUuid(null); + + if (!commState.lastRead()) + return false; + + commState.cur = _val; + commState.keyDone = true; + } + + IgniteUuid _val = commState.getGridUuid(null); + + if (!commState.lastRead()) + return false; + + ldrParticipants.put((UUID)commState.cur, _val); + + commState.keyDone = false; + + commState.readItems++; + } + } + + commState.readSize = -1; + commState.readItems = 0; + commState.cur = null; + + commState.idx++; + + case 10: + sesAttrsBytes = commState.getByteArray("sesAttrsBytes"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 11: + sesFullSup = commState.getBoolean("sesFullSup"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 12: + sesId = commState.getGridUuid("sesId"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 13: + siblingsBytes = commState.getByteArray("siblingsBytes"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 14: + startTaskTime = commState.getLong("startTaskTime"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 15: + subjId = commState.getUuid("subjId"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 16: + taskClsName = commState.getString("taskClsName"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 17: + taskName = commState.getString("taskName"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 18: + timeout = commState.getLong("timeout"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + case 19: + if (commState.readSize == -1) { + commState.readSize = commState.getInt(null); + + if (!commState.lastRead()) + return false; + } + + if (commState.readSize >= 0) { + if (top == null) + top = new ArrayList<>(commState.readSize); + + for (int i = commState.readItems; i < commState.readSize; i++) { + UUID _val = commState.getUuid(null); + + if (!commState.lastRead()) + return false; + + top.add((UUID)_val); + + commState.readItems++; + } + } + + commState.readSize = -1; + commState.readItems = 0; + + commState.idx++; + + case 20: + userVer = commState.getString("userVer"); + + if (!commState.lastRead()) + return false; + + commState.idx++; + + } return true; }
