/* * Copyright (c) 2016 kares. * 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 */ package org.jruby.ext.openssl.util; /** * Allows direct buffer access for less copy-ing. * * @author kares */ public final class ByteArrayOutputStream extends java.io.ByteArrayOutputStream { public ByteArrayOutputStream() { super(); } public ByteArrayOutputStream(int size) { super(size); } public byte[] buffer() { return buf; } public int size() { return count; } @Override public byte[] toByteArray() { final int len = buf.length; if (count == len) return buf; // no-copying final byte[] copy = new byte[count]; System.arraycopy(buf, 0, copy, 0, count); return copy; } }