1. /*
  2. * @(#)LocateRequestMessage_1_1.java 1.9 03/01/23
  3. *
  4. * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.internal.iiop.messages;
  8. import com.sun.corba.se.internal.core.GIOPVersion;
  9. import com.sun.corba.se.internal.iiop.ORB;
  10. import com.sun.corba.se.internal.ior.ObjectKey;
  11. /**
  12. * This implements the GIOP 1.1 LocateRequest header.
  13. *
  14. * @author Ram Jeyaraman 05/14/2000
  15. * @version 1.0
  16. */
  17. public final class LocateRequestMessage_1_1 extends Message_1_1
  18. implements LocateRequestMessage {
  19. // Instance variables
  20. private ORB orb = null;
  21. private int request_id = (int) 0;
  22. private byte[] object_key = null;
  23. private ObjectKey objectKey = null;
  24. // Constructors
  25. LocateRequestMessage_1_1(ORB orb) {
  26. this.orb = orb;
  27. }
  28. LocateRequestMessage_1_1(ORB orb, int _request_id, byte[] _object_key) {
  29. super(Message.GIOPBigMagic, GIOPVersion.V1_1, FLAG_NO_FRAG_BIG_ENDIAN,
  30. Message.GIOPLocateRequest, 0);
  31. this.orb = orb;
  32. request_id = _request_id;
  33. object_key = _object_key;
  34. }
  35. // Accessor methods (LocateRequestMessage interface)
  36. public int getRequestId() {
  37. return this.request_id;
  38. }
  39. public ObjectKey getObjectKey() {
  40. if (this.objectKey == null) {
  41. // this will raise a MARSHAL exception upon errors.
  42. this.objectKey = MessageBase.extractObjectKey(object_key, orb);
  43. }
  44. return this.objectKey;
  45. }
  46. // IO methods
  47. public void read(org.omg.CORBA.portable.InputStream istream) {
  48. super.read(istream);
  49. this.request_id = istream.read_ulong();
  50. int _len1 = istream.read_long();
  51. this.object_key = new byte[_len1];
  52. istream.read_octet_array(this.object_key, 0, _len1);
  53. }
  54. public void write(org.omg.CORBA.portable.OutputStream ostream) {
  55. super.write(ostream);
  56. ostream.write_ulong(this.request_id);
  57. nullCheck(this.object_key);
  58. ostream.write_long(this.object_key.length);
  59. ostream.write_octet_array(this.object_key, 0, this.object_key.length);
  60. }
  61. public final void callback(com.sun.corba.se.internal.iiop.MessageMediator m)
  62. throws java.io.IOException
  63. {
  64. m.handleInput(this);
  65. }
  66. } // class LocateRequestMessage_1_1