class %CSP.Portal.SourceControl.IO
extends %RegisteredObject
property Device
as %String;
The name of the device from which data is being captured.
Note that this device will be used, and thus become the current device,
when redirection is started.
property InCapture
as %Boolean [ InitialExpression = 0 ];
Flag to indicate whether a capture is underway.
property Mode
as %Integer(DISPLAYLIST=",stream,array",VALUELIST=",1,2");
Capture mode indicating how the data should be stored.
property NewLineTranslation
as %String(VALUELIST=",,JS,HTML");
Flag indicating whether newline translation should be used.
method ClearData(pReplacementStream As %Stream.Object = "")
as %Status
method GetData(Output pData)
as %Status
Get the data captured during the redirection.
pData will be a stream object if stream mode was specified,
method ModeSet(pMode)
as %Status
Ensure that Data is correctly initialized
whenever Mode is changed.
classmethod Redirect(Output pInstance As %CSP.Portal.SourceControl.IO, pMode As %String = "stream", pStream As %Stream.Object = "", pDevice As %String = $IO, pNewLineTranslation As %String = "")
as %Status
Initialize redirection and return the current %CSP.Portal.SourceControl.IO
instance in pInstance. pMode can take one of
two values, either "stream" or "array". pDevice defines the device which
should be used as the source for the data - note that the device must already be
open for the redirection to work.
method StartRedirect()
as %Status
Start the redirection using the current settings.
method StopRedirect()
as %Status
Stop the IO redirection, correct the state of InCapture
and clean up the %ISCIO variable
method WriteData(data As %String)
as %Status
Capture the data based on the current value of Mode.