/** * Writes a CORBA long value to (write_pos, write_index) without clearing * the buffer padding. In the case of a non-sequential write, clearing * buffer positions after the data just written is likely to erase data * previously written. */ private final void rewrite_long(int write_pos, int write_index, final int value) { final int align = 4; int remainder = align - (write_index % align); if (remainder != align) { write_pos += remainder; } _write4int(buffer, write_pos, value); }
@Override public final void write_long(final int value) { check(7,4); _write4int(buffer,pos,value); pos += 4; index += 4; }
@Override public final void write_float_array (final float[] value, final int offset, final int length) { //if nothing has to be written, return, and especially DON'T //ALIGN if( length == 0 ) { return; } /* align to 4 byte boundary */ check(3 + length*4,4); if( value != null ) { for( int i = offset; i < offset+length; i++ ) { _write4int(buffer,pos, Float.floatToIntBits( value[i] )); pos += 4; } index += 4*length; } }
@Override public final void write_long_array (final int[] value, final int offset, final int length) { //if nothing has to be written, return, and especially DON'T //ALIGN if( length == 0 ) { return; } /* align to 4 byte boundary */ check(3 + length*4,4); final int remainder = 4 - (index % 4); if (remainder != 4) { index += remainder; pos+=remainder; } if( value != null ) { for( int i = offset; i < offset+length; i++ ) { _write4int(buffer,pos,value[i]); pos += 4; } index += 4*length; } }
_write4int( buffer, startPos, str_size );
_write4int( buffer, sizePosition, size);