Class Reference
IRIS for UNIX 2019.2
InterSystems: The power behind what matters   
Documentation  Search
  [%SYS] >  [%Stream] >  [NullBinary]
Private  Storage   

stream class %Stream.NullBinary extends %AbstractStream

This is a null binary stream, so although you can write to it the length will always be zero bytes.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
8


Summary

Properties
%Location AtEnd Attributes Id LastModified
LineTerminator Size

Methods
%%OIDGet %AddToSaveSet %BindExport %BuildObjectGraph
%CheckUnique %ClassIsLatestVersion %ClassName %Close
%ConstructClone %Delete %DeleteExtent %DeleteId
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %DowngradeConcurrency
%Exists %ExistsId %Extends %GetParameter
%GetSwizzleObject %Id %IncrementCount %IsA
%IsModified %IsNull %KillExtent %LOBPrefetch
%LocationSet %LockStream %New %NormalizeObject
%ObjectIsNull %ObjectModified %ObjectSize %Oid
%Open %OpenId %OriginalNamespace %PackageName
%ReleaseLock %Reload %RemoveFromSaveSet %RollBack
%Save %SerializeObject %SetModified %UnlockStream
%UpgradeConcurrency %ValidateObject Clear CopyFrom
CopyFromAndSave DeleteAttribute DeleteStream FindAt
Flush GetAttribute GetAttributeList GetStreamId
InputFromDevice IsCharacter IsDefinedAttribute IsNull
LastModifiedGet LineTerminatorSet MoveTo MoveToEnd
NextAttribute OpenStream OutputToDevice OutputToDeviceAt
Read ReadLine ReadLineIntoStream ReadSQL
Rewind SaveStream SerializeToSyncSet SetAttribute
SetAttributeList SizeGet StreamOIDIsNull SyncStreamIn
Write WriteLine


Methods

• method IsNull() as %Boolean
Returns true if this is a "NULL" stream; that is, a stream which has never been written to and saved. This is used by the InterSystems IRIS ODBC server.
• method MoveToEnd() as %Status
Move to the end of the stream so the next Write will be appended to the end. This allows you to read from a stream, then MoveToEnd() and append new data, where just calling Write after a read will clear the stream before writing new data.

Returns a %Status value indicating success or failure.

• method Read(ByRef len As %Integer = 32000, ByRef sc As %Status) as %Binary
Reads up to len characters from the current position in the stream. The current position is advanced by the number of characters read. Upon exit, len is set to the actual number of characters read. If a read occurs when the stream position is at the end of the stream, len will be set to -1 and Read will return a null string (""). If no len is passed in, ie. 'Read()' then it is up to the Read implementation as to how much data to return. Some stream classes use this to optimize the amount of data returned to align this with the underlying storage of the stream.

You must call Rewind if you want to read a stream from the beginning again. Calling Read after Write implicitly ends the Write operation and rewinds to the start of the stream.

Returns a string up to len characters long. The byref argument sc will return a %Status if any error occurred during the read.

• method ReadLine(ByRef len As %Integer = 32000, ByRef sc As %Status, ByRef eol As %Boolean) as %Binary
Read a line from the stream. This will look for the line terminator in the stream and once it finds the terminator it will return the string minus the terminator character/s. If it reaches the end of the stream before it finds a terminator it will return the data it has so far, and if you specify a maximum size in len it will only read up to this number of characters. On exit len will contain the actual number of characters read. The byref argument sc will return a %Status if any error occured during the read and the byref argument eol is true if it found the line terminator and false otherwise. So for example you can read in a stream a line at a time and output the results to the current device with:
	While 'stream.AtEnd { Write stream.ReadLine(,.sc,.eol) If $$$ISERR(sc) { Write "ERROR" Quit } If eol { Write ! } }
• method SaveStream() as %Status
Deprecated method, use %Save instead. Saves the temporary copy of the stream data to a persistent location. Note that any locking or transaction handling must be done by the caller.

Returns a %Status value indicating success or failure.

• method SizeGet() as %Integer
This is a Get accessor method for the Size property.
• method Write(data As %Binary = "") as %Status
Appends the string data to the stream and advances the current stream position by the number of characters in data.

Note that a write operation immediately following a read or rewind will clear out the existing data in the stream.

Returns a %Status value indicating success or failure.

• method WriteLine(data As %Binary = "") as %Status
Appends the string data along with a line terminator to the stream and advances the current stream position by the number of characters in data plus the line terminator.

Returns a %Status value indicating success or failure.



Copyright (c) 2019 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.