CORBA Interface IBinaryStream

Supports sequential access to binary data sources such as binary files.

Definition

CORBA Module SAS

IBinaryStream Description

This component provides sequential access to binary (byte-oriented) data streams. Binary files are the most common source for such streams.

While the most common use of this interface is the tranfer of files in binary formats, the interface is also useful for the transfer of text data in cases where you need to bypass the standard text transcoding. For text, one common case is the transfer of single-byte encoded HTML containing the "meta charset" tag. In such a case, transferring the HTML by using a character-oriented data type (such as the Unicode strings common for many client environments), would invalidate the "meta charset" tag.

When you are bypassing standard transcoding, this interface also supports optional non-standard transcoding based on the values specified in StreamEncoding and CallerEncoding. If StreamEncoding and CallerEncoding are the same, no transcoding is performed. They default to the same value.

The main differences between the BinaryStream and the TextStream are: the BinaryStream can recode text based on provided encodings of the source and destination, while the TextStream automatically determines the system code page of the source and destination and recodes based on that; the BinaryStream uses an array of bytes, while the TextStream uses an array of character strings or a single character string; the BinaryStream has no concept of lines and therefore does not truncate lines and does nothing with line separators.

CORBA Definitions
 attribute Container  The containing component for this stream.
 method Close  Closes the stream.
 method Read  Reads the requested number of bytes from the current position in the stream.
 method Write  Writes bytes to the stream.
 attribute StreamEncoding  The encoding of the data as it exists in the stream, before reading or after writing.
 attribute CallerEncoding  The encoding of the data desired by the caller in a read, or supplied by the caller in a write.


Java Classes
 IBinaryStreamHelper  Used to manipulate the IBinaryStream type
 IBinaryStreamHolder  Used to process the IBinaryStream type as an out parameter


Java Interfaces
 IBinaryStream  Supports sequential access to binary data sources such as binary files.


Java Interface IBinaryStream

Supports sequential access to binary data sources such as binary files.

Package com.sas.iom.SAS

IBinaryStream Description
This component provides sequential access to binary (byte-oriented) data streams. Binary files are the most common source for such streams.

While the most common use of this interface is the tranfer of files in binary formats, the interface is also useful for the transfer of text data in cases where you need to bypass the standard text transcoding. For text, one common case is the transfer of single-byte encoded HTML containing the "meta charset" tag. In such a case, transferring the HTML by using a character-oriented data type (such as the Unicode strings common for many client environments), would invalidate the "meta charset" tag.

When you are bypassing standard transcoding, this interface also supports optional non-standard transcoding based on the values specified in StreamEncoding and CallerEncoding. If StreamEncoding and CallerEncoding are the same, no transcoding is performed. They default to the same value.

The main differences between the BinaryStream and the TextStream are: the BinaryStream can recode text based on provided encodings of the source and destination, while the TextStream automatically determines the system code page of the source and destination and recodes based on that; the BinaryStream uses an array of bytes, while the TextStream uses an array of character strings or a single character string; the BinaryStream has no concept of lines and therefore does not truncate lines and does nothing with line separators.

public interface IBinaryStream
extends org.omg.CORBA.Object

Method Summary

 void Close ()

Closes the stream.

 void Read ( int requestedLength , OctetSeqHolder binaryData )
throws ( GenericError );

Reads the requested number of bytes from the current position in the stream.

 void Write ( octet[] binaryData )
throws ( GenericError );

Writes bytes to the stream.


Java Class IBinaryStreamHelper

public class IBinaryStreamHelper

Description
Implementing class for methods (insert, extract, type, id, read, write, narrow) used to manipulate the IBinaryStream type.

java.lang.Object
  |
  +--com.sas.iom.SAS.IBinaryStreamHelper

Java Class IBinaryStreamHolder

public class IBinaryStreamHolder

Description
Implementing class for methods (_read, _write, _type) used to process the IBinaryStream type as an out parameter.

java.lang.Object
  |
  +--com.sas.iom.SAS.IBinaryStreamHolder


CORBA Attribute Container (readonly)

The containing component for this stream.

Description
The containing component for this stream. If, for example, the stream was created from a Fileref, then this attribute will reference that Fileref.

Usage

Java Method Container

public Object Container ();


CORBA Method Close

Closes the stream.

Description
Frees resources associated with the stream. You should close a stream when you are finished with it. Streams are also closed when their container is closed. Deassigning a Fileref, for example, closes its streams.

Closing the stream releases any locks held by the stream. If, for example, the stream is being used to write a file and the SAS System obtained an exclusive-use lock on the file, that lock is released when the stream is closed.

Usage

Java Method Close

void Close ( )

Example


CORBA Method Read

Reads the requested number of bytes from the current position in the stream.

Description
The current position in the stream is updated to reflect the number of bytes read. Subsequent calls to read will continue at the point the previous call stopped.

Usage
The stream must have been previously opened with StreamOpenModeForReading or StreamOpenModeForUpdating.

Java Method Read

void Read (

    int requestedLength ,
    OctetSeqHolder binaryData 
    )
    throws (
            GenericError
    );

Parameter Details

Parameter Direction Type Description
requestedLength  in  int  An upper bound on the number of characters to be returned by this request. This should not be excessively large since SAS allocates a buffer based on this size.  
binaryData  out  OctetSeqHolder  This is the array of data that was read from the stream. This parameter returns a zero-sized array when end of stream is reached.  

Example


CORBA Method Write

Writes bytes to the stream.

Description
Bytes are written starting at the current position in the stream. After the write operation is performed, the stream's current position is updated to reflect the bytes just written.

Usage
The stream must have been previously opened with StreamOpenModeForWriting or StreamOpenModeForUpdating.

Java Method Write

void Write (

    octet[] binaryData 
    )
    throws (
            GenericError
    );

Parameter Details

Parameter Direction Type Description
binaryData  in  octet[]  The bytes to be written.  

Example


CORBA Attribute StreamEncoding (readonly)

The encoding of the data as it exists in the stream, before reading or after writing.

Description

Usage

Java Method StreamEncoding

public java.lang.String StreamEncoding ();


CORBA Attribute CallerEncoding (readonly)

The encoding of the data desired by the caller in a read, or supplied by the caller in a write.

Description

Usage

Java Method CallerEncoding

public java.lang.String CallerEncoding ();