@Override public final void write_ulong(final int value) { write_long (value); }
private void skip_chunk_size_tag() { // remember where we are right now, chunk_size_tag_pos = pos; chunk_size_tag_index = index; // insert four bytes here as a place-holder write_long(0); // need to go back later and write the actual size // remember starting position of chunk data chunk_octets_pos = pos; }
@Override public final void write_float(final float value) { write_long(Float.floatToIntBits(value)); }
private final void writeIndirectionMarker(final CDROutputStream out, final Object key, final Map indirectionTCMap) { out.write_long( -1 ); // recursion marker int negative_offset = ((Integer) indirectionTCMap.get(key)).intValue() - out.get_pos() - 4; out.write_long( negative_offset ); } }
private final void writeIndirectionMarker(final CDROutputStream out, final Object key, final Map indirectionTCMap) { out.write_long( -1 ); // recursion marker int negative_offset = ((Integer) indirectionTCMap.get(key)).intValue() - out.get_pos() - 4; out.write_long( negative_offset ); } }
/** * Writes to this stream a value header with the specified `repository_id' * and no codebase string. */ private void write_value_header(final String[] repository_ids) { if (repository_ids != null) { if( repository_ids.length > 1 ) { // truncatable value type, must use chunking! chunkingFlag = 0x00000008; write_long (0x7fffff06 | chunkingFlag); write_long( repository_ids.length ); for( int i = 0; i < repository_ids.length; i++ ) { write_repository_id (repository_ids[i]); } } else { write_long (0x7fffff02 | chunkingFlag); write_repository_id (repository_ids[0]); } } else { write_long (0x7fffff00 | chunkingFlag); } }
/** * If `value' is null, or has already been written to this stream, * then this method writes that information to the stream and returns * true, otherwise does nothing and returns false. */ private boolean write_special_value(final java.io.Serializable value) { if (value == null) { // null tag write_long (0x00000000); return true; } Integer index = getValueMap().get (value); if (index != null) { // value has already been written -- make an indirection write_long (0xffffffff); write_long (index.intValue() - size()); return true; } return false; }
public void writeTypeCode(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) { out.write_long(typeCode.kind().value()); } }
private void end_chunk() { if (chunkingFlag > 0) { write_previous_chunk_size(); write_long(-valueNestingLevel); if ( --valueNestingLevel == 0 ) { // ending chunk for outermost value chunkingFlag = 0; } else { // start continuation chunk for outer value skip_chunk_size_tag(); } } }
/** * Writes `repository_id' to this stream, perhaps via indirection. */ private void write_repository_id(final String repository_id) { Integer _index = getRepIdMap().get (repository_id); if ( _index == null) { // a new repository id -- write it // first make sure the pos we're about to remember is // a correctly aligned one, i.e., the actual writing position int remainder = 4 - (index % 4); if ( remainder != 4 ) { index += remainder; pos += remainder; } getRepIdMap().put (repository_id, Integer.valueOf(size())); write_string (repository_id); } else { // a previously written repository id -- make an indirection write_long (0xffffffff); write_long (_index.intValue() - size()); } }
public void writeTypeCode(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) { final int kind = typeCode.kind().value(); out.write_long(kind); out.beginEncapsulation(); try { out.write_TypeCode( typeCode.content_type(), recursiveTCMap, repeatedTCMap); out.write_long(typeCode.length()); out.endEncapsulation(); } catch (BadKind e) { assert false; throw new RuntimeException(e); } } }
private void tryWriteTypeCode(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) throws BadKind, Bounds { final int kind = typeCode.kind().value(); out.write_long( kind ); // remember tc start pos before we start writing it // out final Integer startPosition = Integer.valueOf(out.get_pos()); recursiveTCMap.put( typeCode.id(), startPosition ); out.beginEncapsulation(); doWriteTypeCodeParameters(typeCode, out, recursiveTCMap, repeatedTCMap); out.endEncapsulation(); recursiveTCMap.remove(typeCode.id()); // add typecode to cache not until here to account for // recursive TCs repeatedTCMap.put(typeCode, startPosition); }
@Override public void write_value(final java.io.Serializable value, final org.omg.CORBA.portable.BoxedValueHelper factory) { if (!write_special_value (value)) { write_previous_chunk_size(); check(7,4); getValueMap().put (value, Integer.valueOf(size())); if (((value instanceof org.omg.CORBA.portable.IDLEntity) || isSimpleString(value, factory))) { write_long (0x7fffff00 | chunkingFlag); } else { // repository id is required for RMI: types write_long (0x7fffff02 | chunkingFlag); final String repId = factory.get_id(); write_repository_id (repId); } start_chunk(); factory.write_value (this, value); end_chunk(); } }
/** * Creates an ORB_TYPE_ID tagged component for JacORB. */ private TaggedComponent create_ORB_TYPE_ID() { final CDROutputStream out = new CDROutputStream( this ); try { out.beginEncapsulatedArray(); out.write_long( ORBConstants.JACORB_ORB_ID ); return new TaggedComponent ( TAG_ORB_TYPE.value, out.getBufferCopy() ); } finally { out.close(); } }
protected void doWriteTypeCodeParameters(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) throws BadKind, Bounds { out.write_string( typeCode.id()); out.write_string( typeCode.name()); final int memberCount = typeCode.member_count(); out.write_long(memberCount); for( int i = 0; i < memberCount; i++) { out.write_string( typeCode.member_name(i) ); } }
protected void doWriteTypeCodeParameters(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) throws BadKind, Bounds { out.write_string(typeCode.id()); out.write_string(typeCode.name()); final int memberCount = typeCode.member_count(); out.write_long(memberCount); for( int i = 0; i < memberCount; i++) { out.write_string( typeCode.member_name(i) ); out.write_TypeCode( typeCode.member_type(i), recursiveTCMap, repeatedTCMap ); } }
protected void doWriteTypeCodeParameters(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) throws BadKind, Bounds { out.write_string(typeCode.id()); out.write_string(typeCode.name()); out.write_short( typeCode.type_modifier() ); final org.omg.CORBA.TypeCode baseType = typeCode.concrete_base_type(); if (baseType == null) { out.write_long (TCKind._tk_null); } else { out.write_TypeCode(baseType, recursiveTCMap, repeatedTCMap); } final int _memberCount = typeCode.member_count(); out.write_long(_memberCount); for( int i = 0; i < _memberCount; i++) { out.write_string( typeCode.member_name(i) ); out.write_TypeCode( typeCode.member_type(i), recursiveTCMap, repeatedTCMap ); out.write_short( typeCode.member_visibility(i) ); } }
protected void doWriteTypeCodeParameters(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) throws BadKind, Bounds { out.write_string(typeCode.id()); out.write_string(typeCode.name()); final int _memberCount = typeCode.member_count(); out.write_long(_memberCount); for( int i = 0; i < _memberCount; i++) { out.write_string( typeCode.member_name(i) ); out.write_TypeCode( typeCode.member_type(i), recursiveTCMap, repeatedTCMap ); } }
protected void doWriteTypeCodeParameters(TypeCode typeCode, CDROutputStream out, Map recursiveTCMap, Map repeatedTCMap) throws BadKind, Bounds { out.write_string( typeCode.id() ); out.write_string( typeCode.name() ); out.write_TypeCode(typeCode.discriminator_type(), recursiveTCMap, repeatedTCMap); out.write_long( typeCode.default_index()); final int memberCount = typeCode.member_count(); out.write_long(memberCount); for( int i = 0; i < memberCount; i++) { if( i == typeCode.default_index() ) { out.write_octet((byte)0); } else { typeCode.member_label(i).write_value( out ); } out.write_string( typeCode.member_name(i)); out.write_TypeCode( typeCode.member_type(i), recursiveTCMap, repeatedTCMap ); } }
public org.omg.CORBA.Any to_any() { checkDestroyed (); final CDROutputStream out = new CDROutputStream(orb); try { out.write_long( enumValue ); org.omg.CORBA.Any out_any = orb.create_any(); out_any.type(type()); final CDRInputStream in = new CDRInputStream(orb, out.getBufferCopy()); try { out_any.read_value( in, type()); return out_any; } finally { in.close(); } } finally { out.close(); } }