1. /*
  2. * @(#)MarshalInputStream.java 1.30 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.core;
  8. import org.omg.CORBA.TypeCode;
  9. import org.omg.CORBA.Principal;
  10. import org.omg.CORBA.Any;
  11. public interface MarshalInputStream {
  12. public boolean read_boolean();
  13. public char read_char();
  14. public char read_wchar();
  15. public byte read_octet();
  16. public short read_short();
  17. public short read_ushort();
  18. public int read_long();
  19. public int read_ulong();
  20. public long read_longlong();
  21. public long read_ulonglong();
  22. public float read_float();
  23. public double read_double();
  24. public String read_string();
  25. public String read_wstring();
  26. public void read_boolean_array(boolean[] value, int offset, int length);
  27. public void read_char_array(char[] value, int offset, int length);
  28. public void read_wchar_array(char[] value, int offset, int length);
  29. public void read_octet_array(byte[] value, int offset, int length);
  30. public void read_short_array(short[] value, int offset, int length);
  31. public void read_ushort_array(short[] value, int offset, int length);
  32. public void read_long_array(int[] value, int offset, int length);
  33. public void read_ulong_array(int[] value, int offset, int length);
  34. public void read_longlong_array(long[] value, int offset, int length);
  35. public void read_ulonglong_array(long[] value, int offset, int length);
  36. public void read_float_array(float[] value, int offset, int length);
  37. public void read_double_array(double[] value, int offset, int length);
  38. public org.omg.CORBA.Object read_Object();
  39. public TypeCode read_TypeCode();
  40. public Any read_any();
  41. public Principal read_Principal();
  42. /*
  43. * The methods necessary to support RMI
  44. */
  45. public org.omg.CORBA.Object read_Object(Class stubClass);
  46. public java.io.Serializable read_value() throws Exception;
  47. /*
  48. * Additional Methods
  49. */
  50. public void consumeEndian();
  51. // Determines the current byte stream position
  52. // (also handles fragmented streams)
  53. public int getPosition();
  54. // mark/reset from java.io.InputStream
  55. public void mark(int readAheadLimit);
  56. public void reset();
  57. /**
  58. * This must be called once before unmarshaling valuetypes or anything
  59. * that uses repository IDs. The ORB's version should be set
  60. * to the desired value prior to calling.
  61. */
  62. public void performORBVersionSpecificInit();
  63. /**
  64. * Tells the input stream to null any code set converter
  65. * references, forcing it to reacquire them if it needs
  66. * converters again. This is used when the server
  67. * input stream needs to switch the connection's char code set
  68. * converter to something different after reading the
  69. * code set service context for the first time. Initially,
  70. * we use ISO8859-1 to read the operation name (it can't
  71. * be more than ASCII).
  72. */
  73. public void resetCodeSetConverters();
  74. }