/* * This file is protected by Copyright. Please refer to the COPYRIGHT file * distributed with this source distribution. * * This file is part of REDHAWK core. * * REDHAWK core is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * REDHAWK core is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package omnijni.impl; import org.omg.CORBA.portable.OutputStream; import org.omg.CORBA.portable.InputStream; public class ArrayStreamConverter extends omnijni.StreamConverter { public static boolean test () { OutputStream out = omnijni.ORB.create_output_stream(); out.write_long(0); InputStream in = out.create_input_stream(); int bytes; try { bytes = in.available(); } catch (final java.io.IOException ex) { bytes = 0; } return (bytes > 0); } public byte[] toBytes (final OutputStream out) { // Read from the input stream as a byte (octet) array--JacORB supports // the available() method to determine the size of the internal buffer // (Sun ORB does not) InputStream in = out.create_input_stream(); int bytes; try { bytes = in.available(); } catch (final java.io.IOException ex) { // Cannot determine size of stream bytes = 0; } byte[] buffer = new byte[bytes]; in.read_octet_array(buffer, 0, buffer.length); return buffer; } }