/** {@inheritDoc} */ @SuppressWarnings({"CloneDoesntCallSuperClone", "CloneCallsConstructors"}) @Override public GridTcpCommunicationMessageAdapter clone() { GridGgfsAckMessage _clone = new GridGgfsAckMessage(); clone0(_clone); return _clone; }
/** * @param nodeId Node ID. * @param ackMsg Write acknowledgement message. */ private void processAckMessage(UUID nodeId, GridGgfsAckMessage ackMsg) { try { ackMsg.finishUnmarshal(ggfsCtx.kernalContext().config().getMarshaller(), null); } catch (GridException e) { U.error(log, "Failed to unmarshal message (will ignore): " + ackMsg, e); return; } GridUuid fileId = ackMsg.fileId(); WriteCompletionFuture fut = pendingWrites.get(fileId); if (fut != null) { if (ackMsg.error() != null) fut.onError(nodeId, ackMsg.error()); else fut.onWriteAck(nodeId, ackMsg.id()); } else { if (log.isDebugEnabled()) log.debug("Received write acknowledgement for non-existent write future (most likely future was " + "failed) [nodeId=" + nodeId + ", fileId=" + fileId + ']'); } }
@Override public void apply(GridFuture<?> fut) { GridException err = null; try { fut.get(); } catch (GridException e) { err = e; } try { // Send reply back to node. ggfsCtx.send(nodeId, topic, new GridGgfsAckMessage(blocksMsg.fileId(), blocksMsg.id(), err), SYSTEM_POOL); } catch (GridException e) { U.warn(log, "Failed to send batch acknowledgement (did node leave the grid?) [nodeId=" + nodeId + ", fileId=" + blocksMsg.fileId() + ", batchId=" + blocksMsg.id() + ']', e); } } });
/** {@inheritDoc} */ @SuppressWarnings("all") @Override public boolean writeTo(ByteBuffer buf) { commState.setBuffer(buf); if (!super.writeTo(buf)) return false; if (!commState.typeWritten) { if (!commState.putByte(directType())) return false; commState.typeWritten = true; } switch (commState.idx) { case 0: if (!commState.putByteArray(errBytes)) return false; commState.idx++; case 1: if (!commState.putGridUuid(fileId)) return false; commState.idx++; case 2: if (!commState.putLong(id)) return false; commState.idx++; } return true; }
@Override public void apply(GridFuture<?> fut) { GridException err = null; try { fut.get(); } catch (GridException e) { err = e; } try { // Send reply back to node. ggfsCtx.send(nodeId, topic, new GridGgfsAckMessage(blocksMsg.fileId(), blocksMsg.id(), err), SYSTEM_POOL); } catch (GridException e) { U.warn(log, "Failed to send batch acknowledgement (did node leave the grid?) [nodeId=" + nodeId + ", fileId=" + blocksMsg.fileId() + ", batchId=" + blocksMsg.id() + ']', e); } } });
/** {@inheritDoc} */ @SuppressWarnings("all") @Override public boolean writeTo(ByteBuffer buf) { commState.setBuffer(buf); if (!super.writeTo(buf)) return false; if (!commState.typeWritten) { if (!commState.putByte(directType())) return false; commState.typeWritten = true; } switch (commState.idx) { case 0: if (!commState.putByteArray(errBytes)) return false; commState.idx++; case 1: if (!commState.putGridUuid(fileId)) return false; commState.idx++; case 2: if (!commState.putLong(id)) return false; commState.idx++; } return true; }
/** * @param nodeId Node ID. * @param ackMsg Write acknowledgement message. */ private void processAckMessage(UUID nodeId, GridGgfsAckMessage ackMsg) { try { ackMsg.finishUnmarshal(ggfsCtx.kernalContext().config().getMarshaller(), null); } catch (GridException e) { U.error(log, "Failed to unmarshal message (will ignore): " + ackMsg, e); return; } GridUuid fileId = ackMsg.fileId(); WriteCompletionFuture fut = pendingWrites.get(fileId); if (fut != null) { if (ackMsg.error() != null) fut.onError(nodeId, ackMsg.error()); else fut.onWriteAck(nodeId, ackMsg.id()); } else { if (log.isDebugEnabled()) log.debug("Received write acknowledgement for non-existent write future (most likely future was " + "failed) [nodeId=" + nodeId + ", fileId=" + fileId + ']'); } }
/** {@inheritDoc} */ @SuppressWarnings({"CloneDoesntCallSuperClone", "CloneCallsConstructors"}) @Override public GridTcpCommunicationMessageAdapter clone() { GridGgfsAckMessage _clone = new GridGgfsAckMessage(); clone0(_clone); return _clone; }
@Override public GridTcpCommunicationMessageAdapter create(byte type) { switch (type) { case 65: return new GridGgfsAckMessage(); case 66: return new GridGgfsBlockKey(); case 67: return new GridGgfsBlocksMessage(); case 68: return new GridGgfsDeleteMessage(); case 69: return new GridGgfsFileAffinityRange(); case 70: return new GridGgfsFragmentizerRequest(); case 71: return new GridGgfsFragmentizerResponse(); case 72: return new GridGgfsSyncMessage(); default: assert false : "Invalid GGFS message type."; return null; } } }, 65, 66, 67, 68, 69,70, 71, 72);
@Override public GridTcpCommunicationMessageAdapter create(byte type) { switch (type) { case 65: return new GridGgfsAckMessage(); case 66: return new GridGgfsBlockKey(); case 67: return new GridGgfsBlocksMessage(); case 68: return new GridGgfsDeleteMessage(); case 69: return new GridGgfsFileAffinityRange(); case 70: return new GridGgfsFragmentizerRequest(); case 71: return new GridGgfsFragmentizerResponse(); case 72: return new GridGgfsSyncMessage(); default: assert false : "Invalid GGFS message type."; return null; } } }, 65, 66, 67, 68, 69,70, 71, 72);