Package org.jscsi.parser.scsi

Examples of org.jscsi.parser.scsi.SCSIResponseParser


        }

    }

    private void readHandleImmediateData (final ProtocolDataUnit protocolDataUnit) throws InternetSCSIException {
        final SCSIResponseParser parser = (SCSIResponseParser) protocolDataUnit.getBasicHeaderSegment().getParser();

        final ByteBuffer dataSegment = protocolDataUnit.getDataSegment();
        while (buffer.hasRemaining() && dataSegment.hasRemaining()) {
            buffer.put(dataSegment.get());
        }

        if (parser.getStatus() == SCSIStatus.GOOD) {
            // return false;
            super.stateFollowing = false;
            return;
        } else {
            throw new InternetSCSIException();
View Full Code Here


            case SCSI_TM_RESPONSE :
                return new TaskManagementFunctionResponseParser(protocolDataUnit);
            case SCSI_COMMAND :
                return new SCSICommandParser(protocolDataUnit);
            case SCSI_RESPONSE :
                return new SCSIResponseParser(protocolDataUnit);
            default :
                if (LOGGER.isErrorEnabled()) {
                    LOGGER.error("Parser not supported with this operation code " + operationCode);
                }
                throw new NoSuchElementException();
View Full Code Here

        if (!parser.isStatusFlag() || parser.getStatus() != SCSIStatus.GOOD) {
            // receive SCSI Response PDU and check status (no phase
            // collapse)
            final ProtocolDataUnit scsiPdu = connection.receive();
            if (scsiPdu.getBasicHeaderSegment().getOpCode() == OperationCode.SCSI_RESPONSE) {
                final SCSIResponseParser scsiParser = (SCSIResponseParser) scsiPdu.getBasicHeaderSegment().getParser();
                if (scsiParser.getStatus() == SCSIStatus.GOOD) return;// done
            }
            throw new InternetSCSIException("Error: Task did not finish successfully.");
        }

    }
View Full Code Here

            connection.nextState(new WriteSecondBurstState(connection, iterator, targetTransferTag, desiredDataTransferLength, dataSequenceNumber, bufferOffset));
            super.stateFollowing = true;
            // return true;
            return;
        } else if (protocolDataUnit.getBasicHeaderSegment().getParser() instanceof SCSIResponseParser) {
            final SCSIResponseParser parser = (SCSIResponseParser) protocolDataUnit.getBasicHeaderSegment().getParser();

            if (!iterator.hasNext() && parser.getStatus() == SCSIStatus.GOOD) {
                connection.getSession().incrementInitiatorTaskTag();
                // return false;
                super.stateFollowing = false;
                return;
            }
View Full Code Here

    }

    public static final ProtocolDataUnit createSCSIResponsePdu (final boolean bidirectionalReadResidualOverflow, final boolean bidirectionalReadResidualUnderflow, final boolean residualOverflow, final boolean residualUnderflow, final SCSIResponseParser.ServiceResponse response, final SCSIStatus status, final int initiatorTaskTag, final int snackTag, final int expectedDataSequenceNumber, final int bidirectionalReadResidualCount, final int residualCount, final ScsiResponseDataSegment scsiResponseDataSegment) {
        final ProtocolDataUnit pdu = factory.create(false, true, OperationCode.SCSI_RESPONSE, "None", "None");
        final BasicHeaderSegment bhs = pdu.getBasicHeaderSegment();
        final SCSIResponseParser parser = (SCSIResponseParser) bhs.getParser();
        parser.setBidirectionalReadResidualOverflow(bidirectionalReadResidualOverflow);
        parser.setBidirectionalReadResidualUnderflow(bidirectionalReadResidualUnderflow);
        parser.setResidualOverflow(residualOverflow);
        parser.setResidualUnderflow(residualUnderflow);
        parser.setResponse(response);
        parser.setStatus(status);
        bhs.setInitiatorTaskTag(initiatorTaskTag);
        parser.setSNACKTag(snackTag);
        parser.setExpectedDataSequenceNumber(expectedDataSequenceNumber);
        parser.setBidirectionalReadResidualCount(bidirectionalReadResidualCount);
        parser.setResidualCount(residualCount);
        pdu.setDataSegment(scsiResponseDataSegment.serialize());
        return pdu;
    }
View Full Code Here

TOP

Related Classes of org.jscsi.parser.scsi.SCSIResponseParser

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.