IRISLIB database
FileStreamAdaptor Class Reference

Deprecated internal class. More...

Inheritance diagram for FileStreamAdaptor:
Collaboration diagram for FileStreamAdaptor:

Public Member Functions

_.Library.Status OnClose ()
 This callback method is invoked by the <METHOD>Close</METHOD> method to. More...
 
_.Library.Status OnConstructClone (_.Library.RegisteredObject object, _.Library.Boolean deep, _.Library.String cloned)
 This callback method is invoked by the <METHOD>ConstructClone</METHOD> method to. More...
 
_.Library.Integer FileBinarySize ()
 Return the current size of the file in bytes.
 
_.Library.Status Flush ()
 Flush any output in the stream not already saved.
 
_.Library.Status LinkToFile (_.Library.String filename)
 This method lets you connect a file stream to a file called filename without. More...
 
_.Library.Status MoveToEnd ()
 Move to the end of the stream so the next <METHDO>Write</METHOD> will be appended to the end. More...
 
_.Library.Status OpenStream (_.Library.String sid)
 Open a stream given a stream id.
 
_.Library.RawString ReadLine (_.Library.Integer len, _.Library.Status sc, _.Library.Boolean eol, _.Library.String term)
 Read a line from the file. More...
 
_.Library.Status Rewind ()
 Go back to the start of the stream.
 
_.Library.Status SaveStream ()
 Deprecated method, use <method>Save</method> instead. More...
 
_.Library.Integer SizeGet ()
 Return the current size of the data stream.
 
- Public Member Functions inherited from AbstractStream
_.Library.Status CopyFrom (_.Stream.Object source)
 Copies the contents of source into this Stream. More...
 
_.Library.Boolean DeleteAttribute (_.Library.String name)
 Removes this attribute variable from the collection. More...
 
_.Library.String GetAttribute (_.Library.String name, _.Library.String default)
 Retrieves the named attribute value.
 
_.Library.String GetStreamId ()
 Returns an full id value (including class name) with which the Stream implementation has stored. More...
 
_.Library.Boolean IsDefinedAttribute (_.Library.String name)
 Returns true if the named attribute variable exists in the collection, false otherwise.
 
_.Library.Boolean IsNull ()
 Returns true if this is a "NULL" stream; that is, a stream which has never. More...
 
_.Library.String NextAttribute (_.Library.String name)
 Retrieves the next attribute variable name in the sequence, skip any '' names.
 
_.Library.AbstractStream ReadLineIntoStream ()
 This reads from the stream until it find the <property>LineTerminator</property> and returns. More...
 
 SetAttribute (_.Library.String name, _.Library.String value)
 Inserts an attribute variable by name into the collection.
 
_.Library.Status WriteLine (_.Library.RawString data)
 Appends the string data along with a line terminator to the stream and advances the. More...
 
- Public Member Functions inherited from Object
_.Library.Status AcquireLock (locktype)
 Acquires a lock for the current instance. More...
 
_.Library.Status OnAfterSave (_.Library.Boolean insert)
 This callback method is invoked by the <METHOD>Save</METHOD> method to. More...
 
_.Library.Status OnBeforeSave (_.Library.Boolean insert)
 This callback method is invoked by the <METHOD>Save</METHOD> method to. More...
 
_.Library.Status OnOpen ()
 This callback method is invoked by the <METHOD>Open</METHOD> method to. More...
 
_.Library.Status OnReload ()
 This callback method is invoked by the <METHOD>Reload</METHOD> method to. More...
 
_.Library.Status OnRollBack ()
 This callback method is invoked by the <METHOD>Save</METHOD> method to. More...
 
_.Library.Status Clear ()
 Clear the contents of this Stream from permanent storage. More...
 
_.Library.Status CopyFrom (_.Stream.Object source)
 Copies the contents of source into this Stream. More...
 
_.Library.Status CopyFromAndSave (_.Stream.Object source)
 Copy the stream from source into the current stream ignoring anything already in the current stream. More...
 
_.Library.Integer FindAt (_.Library.Integer position, _.Library.RawString target, _.Library.RawString tmpstr, _.Library.Boolean caseinsensitive)
 Find the first occurrence of target in the stream, starting the search at position. More...
 
_.Library.Status InputFromDevice (_.Library.Integer len, _.Library.Integer timeout)
 Input len characters from the current device into the stream. More...
 
_.Library.Boolean MoveTo (_.Library.Integer position)
 Move to this position in the stream. More...
 
_.Library.Status OutputToDevice (_.Library.Integer len)
 Write out len characters of the stream to the current device starting from the current position. More...
 
_.Library.Status OutputToDeviceAt (_.Library.Integer position, _.Library.Integer length)
 Output the stream to the current device starting at position of length. More...
 
_.Library.RawString Read (_.Library.Integer len, _.Library.Status sc)
 Reads up to len characters from the current position. More...
 
_.Library.RawString ReadLine (_.Library.Integer len, _.Library.Status sc, _.Library.Boolean eol)
 Read a line from the stream. More...
 
_.Library.String ReadSQL (_.Library.Integer start, _.Library.Integer end)
 SQL specific method for reading stream data.
 
_.Library.Status SerializeToSyncSet (_.SYNC.SyncSet ss, _.Library.Integer iPtr, _.Library.String property)
 SerializeToSyncSet copies the stream value from the current object to the sync set global. More...
 
_.Library.Status SyncStreamIn (_.SYNC.SyncSet ss, _.Library.Integer iPtr, _.Library.String property)
 SyncStreamIn copies the stream value from the sync set global into the current object.
 
_.Library.Status Write (_.Library.RawString data)
 Appends the string data to the stream and advances the. More...
 
_.Library.Status WriteLine (_.Library.RawString data)
 Appends the string data along with a line terminator to the stream and advances the. More...
 
- Public Member Functions inherited from RegisteredObject
_.Library.Status OnAddToSaveSet (_.Library.Integer depth, _.Library.Integer insert, _.Library.Integer callcount)
 This callback method is invoked when the current object is added to the SaveSet,. More...
 
_.Library.Status OnNew ()
 This callback method is invoked by the <METHOD>New</METHOD> method to. More...
 
_.Library.Status OnValidateObject ()
 This callback method is invoked by the <METHOD>ValidateObject</METHOD> method to. More...
 

Static Public Member Functions

_.Library.String GetStreamIdForFile (_.Library.String file, _.Library.String contenttype, _.Library.String charset)
 Generate a stream OId that links to this file. More...
 
- Static Public Member Functions inherited from AbstractStream
_.Library.Status DeleteStream (_.Library.ObjectIdentity oid, _.Library.Integer concurrency)
 Deprecated method, use <method>Delete</method> instead. More...
 
- Static Public Member Functions inherited from Object
_.Library.String GetLockReference (_.Library.String pLocation, _.Library.String pId)
 Returns the global reference used to lock the current stream object. More...
 
_.Library.Status OnDelete (_.Library.ObjectIdentity oid)
 This callback method is invoked by the <METHOD>Delete</METHOD> method to. More...
 
_.Library.String IsCharacter ()
 Return true if this is a character stream and false if it is a binary stream.
 
_.Library.Boolean StreamOIDIsNull (_.Library.ObjectIdentity soid)
 Return true if this stream oid is a null stream and false if the stream is not null.
 

Public Attributes

 CanonicalFilename
 Read only property that returns the canonical filename if the file is open and "" if the file is not open. More...
 
 Directory
 Directory where stream files are located. More...
 
 Filename
 The filename that this stream is currently using. More...
 
 LineTerminator
 For file streams the line will terminate on any of the characters set in the LineTerminator, it does not support. More...
 
 ReadSize
 While reading this holds the file size. More...
 
 RemoveOnClose
 If true then remove the permanent file as well as any temp file when this object is closed. More...
 
- Public Attributes inherited from AbstractStream
 Attributes
 An array of strings containing any attribute values associated with this stream. More...
 
 LineTerminator
 Type of line terminator we use for this stream, defaults to Cr/Lf. More...
 
- Public Attributes inherited from Object
 AtEnd
 The AtEnd property is set to true (1) when, during a read,. More...
 
 LastModified
 LastModified is a read-only property containing the <class>TimeStamp</class> of More...
 
 Size
 Size is a read-only property containing the current size of the stream (in bytes More...
 

Static Public Attributes

 FILEEXT = None
 Deprecated internal class. More...
 
- Static Public Attributes inherited from AbstractStream
 MAXLEN = None
 The maximum number of characters (or bytes) allowed in a stream.
 
 PROPERTYVALIDATION = None
 Turns off property validation.
 
- Static Public Attributes inherited from Object
 DEFAULTCONCURRENCY = None
 
- Static Public Attributes inherited from RegisteredObject
 CAPTION = None
 Optional name used by the Form Wizard for a class when generating forms. More...
 
 JAVATYPE = None
 The Java type to be used when exported.
 
 PROPERTYVALIDATION = None
 This parameter controls the default validation behavior for the object. More...
 

Private Member Functions

_.Library.Status NormalizeObject ()
 Normalizes all of an object's property values by invoking the data type Normalize methods. More...
 
_.Library.String __IOGetStreamId ()
 Return the id for a stream; that is, an identifier that can later be used. More...
 
 __IOInit ()
 Initialize member variable used by the StreamAdaptor. More...
 

Static Private Member Functions

_.Library.Status __IODeleteStream (_.Library.String sid, _.Library.Integer concurrency)
 Delete the storage for the stream identified by sid.
 

Private Attributes

 __CurrFile
 Full path name of currently opened file. More...
 
 __MakePermLoc
 If true then when saving this file we need to move it to the default permanent location. More...
 
 __NormalizedDirectory
 Normalized form of the directory. More...
 
 __ReadMode
 Mode the device is opened in, either with terminators as delimitors or not. More...
 
 __StoreFile
 Name of file (without directory) containing stored stream. More...
 
 __TempFile
 Name of file (without directory) containing temporary stream. More...
 

Detailed Description

Deprecated internal class.

Stream adaptor for streams that store data in external files. Not to be used directly.

Member Function Documentation

◆ NormalizeObject()

_.Library.Status NormalizeObject ( )
private

Normalizes all of an object's property values by invoking the data type Normalize methods.

Many data types may allow many different representations of the same value. 
Normalization converts a value to its cannonical, or <em>normalized</em>, form.

Reimplemented from RegisteredObject.

◆ OnClose()

_.Library.Status OnClose ( )

This callback method is invoked by the <METHOD>Close</METHOD> method to.

provide notification that the current object is being closed.

The return value of this method is ignored.

Reimplemented from AbstractStream.

◆ OnConstructClone()

_.Library.Status OnConstructClone ( _.Library.RegisteredObject  object,
_.Library.Boolean  deep,
_.Library.String  cloned 
)

This callback method is invoked by the <METHOD>ConstructClone</METHOD> method to.

provide notification that a clone of an object is being created. It passes in the oref of the object that was cloned in object.

If this method returns an error then the object will not be created.

Reimplemented from RegisteredObject.

◆ GetStreamIdForFile()

_.Library.String GetStreamIdForFile ( _.Library.String  file,
_.Library.String  contenttype,
_.Library.String  charset 
)
static

Generate a stream OId that links to this file.

This can be used by the CSP

server to generate an OID that can be embedded in a web page and later used to display this file. The contenttype is an optional parameter to specify the content type of this stream for display with a stream server. If I have a file called 'C:\Test.txt' then I can create a stream linked to this by:

Set id=##class(FileCharacterStream).GetStreamIdForFile("c:\Test.txt") Set stream=##class(FileCharacterStream).Open(id) Do stream.OutputToDevice()

◆ __IOGetStreamId()

_.Library.String __IOGetStreamId ( )
private

Return the id for a stream; that is, an identifier that can later be used.

to open the same stream.

Reimplemented from AbstractStream.

◆ __IOInit()

__IOInit ( )
private

Initialize member variable used by the StreamAdaptor.

This

This is called when the containing stream is opened via SetSerial.

Reimplemented from AbstractStream.

◆ LinkToFile()

_.Library.Status LinkToFile ( _.Library.String  filename)

This method lets you connect a file stream to a file called filename without.

making a copy of it. If the file does not already exist it will still allow you to link to this file, and IsNull() will return true until you write to this file.

Do object.Image.LinkToFile("\temp\image.jpg") Do object.Save()

The method as its name suggests creates a LINK to an EXISTING file. So this is a 'shared public' file, as it can be shared by several instances of a class, or even several classes. Using the <method>CopyFrom</method> method, on the contrary, creates a 'private' image, not sharable by other instances/classes, so these two methods are really different.

The problems with shared public images are that several instances are all allowed to update and even delete the image, causing problems for other instances.

For example, if dog #2 has image 'test.gif', I can also assign that image to dog #5 or even person #24 If I change the image for dog #5, then the image is changed in place to another image, thus upsetting dog#2 and person#24. If I delete dog#5, the image is also deleted and thus dog#2 and person#24 are changed.

Also note that if there is currently some temporary data in the old stream when the <method>LinkToFile</method> is called this temporary data will be removed before the stream is linked to this filename.

◆ MoveToEnd()

_.Library.Status MoveToEnd ( )

Move to the end of the stream so the next <METHDO>Write</METHOD> will be appended to the end.

This allows you to read from a stream, then MoveToEnd() and append new data, where just calling <METHOD>Write</METHOD> after a read will clear the stream before writing new data.

Returns a <CLASS>Status</CLASS> value indicating success or failure.

Reimplemented from AbstractStream.

◆ ReadLine()

Read a line from the file.

Note that besides the normal ReadLine arguments this can also be passed a term which

will return the termintor that completed the line if we read in a whole line.

◆ SaveStream()

_.Library.Status SaveStream ( )

Deprecated method, use <method>Save</method> 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 <CLASS>Status</CLASS> value indicating success or failure.

Reimplemented from AbstractStream.

Member Data Documentation

◆ FILEEXT

FILEEXT = None
static

Deprecated internal class.

Stream adaptor for streams that store data in external files. Not to be used directly.

◆ CanonicalFilename

CanonicalFilename

Read only property that returns the canonical filename if the file is open and "" if the file is not open.

 

◆ __CurrFile

__CurrFile
private

Full path name of currently opened file.

Equal to "" if no file

is open.  

◆ Directory

Directory

Directory where stream files are located.

 

◆ Filename

Filename

The filename that this stream is currently using.

If you set this property to update the file we will write to/read from this operation can fail if for example the directory specified does not exist. To detect this failure either check the Status return code of the <method>FilenameSet</method> or if using 'Set stream.Filename=newname' then check objlasterror after the call to see if it reported an error.  

◆ LineTerminator

LineTerminator

For file streams the line will terminate on any of the characters set in the LineTerminator, it does not support.

multi-character line terminators because it uses the ObjectScript file behavior which terminates on any of the characters.
Also for FileCharacterStream even if you set this when you call <method>WriteLine</method> as the file was opened in 'S' mode it will normalize the line terminator as the data is being written, so for example if you set LineTerminator to $char(13,10) on Unix systems when you call <method>WriteLine</method> it will only write $char(10) to the file.  

◆ __MakePermLoc

__MakePermLoc
private

If true then when saving this file we need to move it to the default permanent location.

 

◆ __NormalizedDirectory

__NormalizedDirectory
private

Normalized form of the directory.

This is used for access to the file (as it adds the

extra '/' if needed), but it stores the <ATTRIBUTE>Directory</ATTRIBUTE> in the Id as this may be a relative path. This is read only, you should not try and set its value.  

◆ __ReadMode

__ReadMode
private

Mode the device is opened in, either with terminators as delimitors or not.

 

◆ ReadSize

ReadSize

While reading this holds the file size.

 

◆ RemoveOnClose

RemoveOnClose

If true then remove the permanent file as well as any temp file when this object is closed.

 

◆ __StoreFile

__StoreFile
private

Name of file (without directory) containing stored stream.

 

◆ __TempFile

__TempFile
private

Name of file (without directory) containing temporary stream.