1. /*
  2. * @(#)ClientRequestImpl.java 1.41 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;
  8. import com.sun.corba.se.internal.core.Request;
  9. import com.sun.corba.se.internal.core.ClientRequest;
  10. import com.sun.corba.se.internal.core.ServiceContext;
  11. import com.sun.corba.se.internal.core.ServiceContexts;
  12. import com.sun.corba.se.internal.core.ClientResponse;
  13. import com.sun.corba.se.internal.iiop.Connection;
  14. import com.sun.corba.se.internal.core.IOR;
  15. import com.sun.corba.se.internal.core.GIOPVersion;
  16. import com.sun.corba.se.internal.iiop.messages.MessageBase;
  17. import com.sun.corba.se.internal.iiop.messages.RequestMessage;
  18. import com.sun.corba.se.internal.core.ORBVersion;
  19. import com.sun.corba.se.internal.orbutil.ORBConstants;
  20. import com.sun.corba.se.internal.orbutil.ORBUtility;
  21. import com.sun.corba.se.internal.ior.ObjectKeyFactory ;
  22. import com.sun.corba.se.internal.ior.ObjectKey ;
  23. import com.sun.corba.se.internal.ior.ObjectKeyTemplate ;
  24. import com.sun.corba.se.internal.ior.IIOPProfile;
  25. public class ClientRequestImpl extends IIOPOutputStream
  26. implements ClientRequest
  27. {
  28. public ClientRequestImpl(GIOPVersion gv, IOR ior, short addrDisposition,
  29. String operationName, boolean oneway, ServiceContexts svc,
  30. int requestId, Connection conn)
  31. {
  32. super(gv, conn.getORB(), conn);
  33. this.isOneway = oneway;
  34. boolean responseExpected = !isOneway;
  35. IIOPProfile iop = ior.getProfile();
  36. ObjectKey okey = iop.getObjectKey();
  37. ObjectKeyTemplate oktemp = okey.getTemplate() ;
  38. ORBVersion version = oktemp.getORBVersion() ;
  39. ORB orb = conn.getORB();
  40. orb.setORBVersion( version ) ;
  41. this.request = MessageBase.createRequest(orb, gv, requestId,
  42. responseExpected, ior, addrDisposition, operationName, svc, null);
  43. setMessage(request);
  44. request.write(this);
  45. }
  46. public int getRequestId() {
  47. return request.getRequestId();
  48. }
  49. public boolean isOneWay() {
  50. return isOneway;
  51. }
  52. public ServiceContexts getServiceContexts() {
  53. return request.getServiceContexts();
  54. }
  55. public String getOperationName() {
  56. return request.getOperation();
  57. }
  58. public ObjectKey getObjectKey() {
  59. return request.getObjectKey();
  60. }
  61. public ClientResponse invoke()
  62. {
  63. return (ClientResponse)super.invoke(isOneway);
  64. }
  65. /**
  66. * Check to see if request is local.
  67. */
  68. public boolean isLocal(){
  69. return false;
  70. }
  71. private RequestMessage request;
  72. protected boolean isOneway;
  73. }