public static GIOPVersion getInstance(byte major, byte minor) { switch (((major << 8) | minor)) { case VERSION_1_0 : return GIOPVersion.V1_0; case VERSION_1_1 : return GIOPVersion.V1_1; case VERSION_1_2 : return GIOPVersion.V1_2; case VERSION_1_3 : return GIOPVersion.V1_3; case VERSION_13_XX : return GIOPVersion.V13_XX; default : return new GIOPVersion(major, minor); } }
public boolean equals(Object obj) { if (obj != null && (obj instanceof GIOPVersion)) return equals((GIOPVersion) obj); else return false; }
public static GIOPVersion parseVersion(String s) { int dotIdx = s.indexOf('.'); if (dotIdx < 1 || dotIdx == s.length() - 1) throw new NumberFormatException("GIOP major, minor, and decimal point required: " + s); int major = Integer.parseInt(s.substring(0, dotIdx)); int minor = Integer.parseInt(s.substring(dotIdx + 1, s.length())); return GIOPVersion.getInstance((byte) major, (byte) minor); }
private void init(InputStream istr) { // First, read all of the IIOP IOR data GIOPVersion version = new GIOPVersion(); version.read(istr); IIOPAddress primary = new IIOPAddressImpl(istr); byte[] key = EncapsulationUtility.readOctets(istr); ObjectKey okey = orb.getObjectKeyFactory().create(key); oktemp = okey.getTemplate(); oid = okey.getId(); proftemp = IIOPFactories.makeIIOPProfileTemplate(orb, version, primary); // Handle any tagged components (if applicable) if (version.getMinor() > 0) EncapsulationUtility.readIdentifiableSequence(proftemp, orb.getTaggedComponentFactoryFinder(), istr); // If there is no codebase in this IOR and there IS a java.rmi.server.codebase property set, we need to update // the IOR with the local codebase. Note that there is only one instance of the local codebase, but it can be // safely shared in multiple IORs since it is immutable. if (uncachedGetCodeBase() == null) { JavaCodebaseComponent jcc = LocalCodeBaseSingletonHolder.comp; if (jcc != null) { if (version.getMinor() > 0) proftemp.add(jcc); codebase = jcc.getURLs(); } // Whether codebase is null or not, we have it, and so getCodebase ned never call uncachedGetCodebase. cachedCodebase = true; } }
if ((buf.get(4) > orbVersion.getMajor()) || ((buf.get(4) == orbVersion.getMajor()) && (buf.get(5) > orbVersion.getMinor()))) msg10.GIOP_version = new GIOPVersion(buf.get(4), buf.get(5)); msg10.byte_order = (buf.get(6) == LITTLE_ENDIAN_BIT); msg11.GIOP_version = new GIOPVersion(buf.get(4), buf.get(5)); msg11.flags = (byte) (buf.get(6) & TRAILING_TWO_BIT_BYTE_MASK);
if (!(gv.equals(GIOPVersion.V1_2))) if (gv.supportsIORIIOPProfileComponents())
public static BufferManagerRead newBufferManagerRead(GIOPVersion version, byte encodingVersion, ORB orb) { // REVISIT - On the reading side, shouldn't we monitor the incoming // fragments on a given connection to determine what fragment size // they're using, then use that ourselves? if (encodingVersion != Message.CDR_ENC_VERSION) { return new BufferManagerReadGrow(orb); } switch (version.intValue()) { case GIOPVersion.VERSION_1_0 : return new BufferManagerReadGrow(orb); case GIOPVersion.VERSION_1_1 : case GIOPVersion.VERSION_1_2 : // The stream reader can handle fragmented and // non fragmented messages return new BufferManagerReadStream(orb); default : // REVISIT - what is appropriate? throw new INTERNAL("Unknown GIOP version: " + version); } }
public void write(org.omg.CORBA.portable.OutputStream ostream) { ostream.write_long(this.magic); nullCheck(this.GIOP_version); this.GIOP_version.write(ostream); ostream.write_boolean(this.byte_order); ostream.write_octet(this.message_type); ostream.write_ulong(this.message_size); }
public IIOPProfileTemplateImpl(ORB orb, GIOPVersion version, IIOPAddress primary) { this.orb = orb; this.giopVersion = version; this.primary = primary; if (giopVersion.getMinor() == 0) // Adding tagged components is not allowed for IIOP 1.0, so this template is complete and should be made // immutable. makeImmutable(); }
public int hashCode() { return super.hashCode() ^ giopVersion.hashCode() ^ primary.hashCode(); }
private void init(InputStream istr) { // First, read all of the IIOP IOR data GIOPVersion version = new GIOPVersion(); version.read(istr); IIOPAddress primary = new IIOPAddressImpl(istr); byte[] key = EncapsulationUtility.readOctets(istr); ObjectKey okey = orb.getObjectKeyFactory().create(key); oktemp = okey.getTemplate(); oid = okey.getId(); proftemp = IIOPFactories.makeIIOPProfileTemplate(orb, version, primary); // Handle any tagged components (if applicable) if (version.getMinor() > 0) EncapsulationUtility.readIdentifiableSequence(proftemp, orb.getTaggedComponentFactoryFinder(), istr); // If there is no codebase in this IOR and there IS a java.rmi.server.codebase property set, we need to update // the IOR with the local codebase. Note that there is only one instance of the local codebase, but it can be // safely shared in multiple IORs since it is immutable. if (uncachedGetCodeBase() == null) { JavaCodebaseComponent jcc = LocalCodeBaseSingletonHolder.comp; if (jcc != null) { if (version.getMinor() > 0) proftemp.add(jcc); codebase = jcc.getURLs(); } // Whether codebase is null or not, we have it, and so getCodebase ned never call uncachedGetCodebase. cachedCodebase = true; } }
if ((buf.get(4) > orbVersion.getMajor()) || ((buf.get(4) == orbVersion.getMajor()) && (buf.get(5) > orbVersion.getMinor()))) msg10.GIOP_version = new GIOPVersion(buf.get(4), buf.get(5)); msg10.byte_order = (buf.get(6) == LITTLE_ENDIAN_BIT); msg11.GIOP_version = new GIOPVersion(buf.get(4), buf.get(5)); msg11.flags = (byte) (buf.get(6) & TRAILING_TWO_BIT_BYTE_MASK);
if (!(gv.equals(GIOPVersion.V1_2))) if (gv.supportsIORIIOPProfileComponents())
public static BufferManagerRead newBufferManagerRead(GIOPVersion version, byte encodingVersion, ORB orb) { // REVISIT - On the reading side, shouldn't we monitor the incoming // fragments on a given connection to determine what fragment size // they're using, then use that ourselves? if (encodingVersion != Message.CDR_ENC_VERSION) { return new BufferManagerReadGrow(orb); } switch (version.intValue()) { case GIOPVersion.VERSION_1_0 : return new BufferManagerReadGrow(orb); case GIOPVersion.VERSION_1_1 : case GIOPVersion.VERSION_1_2 : // The stream reader can handle fragmented and // non fragmented messages return new BufferManagerReadStream(orb); default : // REVISIT - what is appropriate? throw new INTERNAL("Unknown GIOP version: " + version); } }
public void write(org.omg.CORBA.portable.OutputStream ostream) { ostream.write_long(this.magic); nullCheck(this.GIOP_version); this.GIOP_version.write(ostream); ostream.write_octet(this.flags); ostream.write_octet(this.message_type); ostream.write_ulong(this.message_size); } } // class Message_1_1
public IIOPProfileTemplateImpl(ORB orb, GIOPVersion version, IIOPAddress primary) { this.orb = orb; this.giopVersion = version; this.primary = primary; if (giopVersion.getMinor() == 0) // Adding tagged components is not allowed for IIOP 1.0, so this template is complete and should be made // immutable. makeImmutable(); }