/* * Copyright (c) 2009, 2012 IBM Corp. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Dave Locke - initial API and implementation and/or initial documentation */ package org.eclipse.paho.client.mqttv3.internal.wire; import java.io.IOException; import java.io.InputStream; public class MultiByteArrayInputStream extends InputStream { private byte[] bytesA; private int offsetA; private int lengthA; private byte[] bytesB; private int offsetB; private int lengthB; private int pos = 0; public MultiByteArrayInputStream(byte[] bytesA, int offsetA, int lengthA, byte[] bytesB, int offsetB, int lengthB) { this.bytesA = bytesA; this.bytesB = bytesB; this.offsetA = offsetA; this.offsetB = offsetB; this.lengthA = lengthA; this.lengthB = lengthB; } public int read() throws IOException { int result = -1; if (pos<lengthA) { result = bytesA[offsetA+pos]; } else if (pos<lengthA+lengthB) { result = bytesB[offsetB+pos-lengthA]; } else { return -1; } if (result < 0) { result += 256; } pos++; return result; } }