blob: b4b1c687c5c6f3835efb10163248835b6865e02d [file] [log] [blame]
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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 General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.corba.se.impl.encoding;
import java.io.IOException;
import java.io.Serializable;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.Principal;
import org.omg.CORBA.Any;
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
import com.sun.corba.se.spi.orb.ORB;
/**
* Describes CDROutputStream delegates and provides some
* implementation. Non-default constructors are avoided in
* the delegation to separate instantiation from initialization,
* so we use init methods.
*/
abstract class CDROutputStreamBase extends java.io.OutputStream
{
protected CDROutputStream parent;
// Required by parent CDROutputStream
public void setParent(CDROutputStream parent) {
this.parent = parent;
}
public void init(org.omg.CORBA.ORB orb,
BufferManagerWrite bufferManager,
byte streamFormatVersion) {
init(orb, false, bufferManager, streamFormatVersion, true);
}
// See EncapsOutputStream, the only one that uses the
// non-pooled ByteBuffers, for additional info.
protected abstract void init(org.omg.CORBA.ORB orb,
boolean littleEndian,
BufferManagerWrite bufferManager,
byte streamFormatVersion,
boolean usePooledByteBuffers);
public abstract void write_boolean(boolean value);
public abstract void write_char(char value);
public abstract void write_wchar(char value);
public abstract void write_octet(byte value);
public abstract void write_short(short value);
public abstract void write_ushort(short value);
public abstract void write_long(int value);
public abstract void write_ulong(int value);
public abstract void write_longlong(long value);
public abstract void write_ulonglong(long value);
public abstract void write_float(float value);
public abstract void write_double(double value);
public abstract void write_string(String value);
public abstract void write_wstring(String value);
public abstract void write_boolean_array(boolean[] value, int offset, int length);
public abstract void write_char_array(char[] value, int offset, int length);
public abstract void write_wchar_array(char[] value, int offset, int length);
public abstract void write_octet_array(byte[] value, int offset, int length);
public abstract void write_short_array(short[] value, int offset, int length);
public abstract void write_ushort_array(short[] value, int offset, int length);
public abstract void write_long_array(int[] value, int offset, int length);
public abstract void write_ulong_array(int[] value, int offset, int length);
public abstract void write_longlong_array(long[] value, int offset, int length);
public abstract void write_ulonglong_array(long[] value, int offset, int length);
public abstract void write_float_array(float[] value, int offset, int length);
public abstract void write_double_array(double[] value, int offset, int length);
public abstract void write_Object(org.omg.CORBA.Object value);
public abstract void write_TypeCode(TypeCode value);
public abstract void write_any(Any value);
public abstract void write_Principal(Principal value);
public void write(int b) throws java.io.IOException {
throw new org.omg.CORBA.NO_IMPLEMENT();
}
public abstract void write_fixed(java.math.BigDecimal value);
public void write_Context(org.omg.CORBA.Context ctx,
org.omg.CORBA.ContextList contexts) {
throw new org.omg.CORBA.NO_IMPLEMENT();
}
public abstract org.omg.CORBA.ORB orb();
// org.omg.CORBA_2_3.portable.OutputStream
public abstract void write_value(java.io.Serializable value);
public abstract void write_value(java.io.Serializable value, java.lang.Class clz);
public abstract void write_value(java.io.Serializable value, String repository_id);
public abstract void write_value(java.io.Serializable value,
org.omg.CORBA.portable.BoxedValueHelper factory);
public abstract void write_abstract_interface(java.lang.Object obj);
// java.io.OutputStream
// public abstract void write(byte b[]) throws IOException;
// public abstract void write(byte b[], int off, int len) throws IOException;
// public abstract void flush() throws IOException;
// public abstract void close() throws IOException;
// com.sun.corba.se.impl.encoding.MarshalOutputStream
public abstract void start_block();
public abstract void end_block();
public abstract void putEndian();
public abstract void writeTo(java.io.OutputStream s)
throws IOException;
public abstract byte[] toByteArray();
// org.omg.CORBA.DataOutputStream
public abstract void write_Abstract (java.lang.Object value);
public abstract void write_Value (java.io.Serializable value);
public abstract void write_any_array(org.omg.CORBA.Any[] seq, int offset, int length);
// org.omg.CORBA.portable.ValueBase
public abstract String[] _truncatable_ids();
// Needed by request and reply messages for GIOP versions >= 1.2 only.
abstract void setHeaderPadding(boolean headerPadding);
// Required by IIOPOutputStream and other subclasses
public abstract int getSize();
public abstract int getIndex();
public abstract void setIndex(int value);
public abstract ByteBuffer getByteBuffer();
public abstract void setByteBuffer(ByteBuffer byteBuffer);
public abstract boolean isLittleEndian();
public abstract ByteBufferWithInfo getByteBufferWithInfo();
public abstract void setByteBufferWithInfo(ByteBufferWithInfo bbwi);
public abstract BufferManagerWrite getBufferManager();
public abstract void write_fixed(java.math.BigDecimal bigDecimal, short digits, short scale);
public abstract void writeOctetSequenceTo(org.omg.CORBA.portable.OutputStream s);
public abstract GIOPVersion getGIOPVersion();
public abstract void writeIndirection(int tag, int posIndirectedTo);
abstract void freeInternalCaches();
abstract void printBuffer();
abstract void alignOnBoundary(int octetBoundary);
// org.omg.CORBA.portable.ValueOutputStream
public abstract void start_value(String rep_id);
public abstract void end_value();
}