DocBook|Search
Class Reference
%Library.COSCallout
   
Server:basexml
Instance:SOAXML
User:UnknownUser
 
-
  [BASEXML] >  [%Library] >  [COSCallout]
Private  Storage  

class %Library.COSCallout extends %RegisteredObject

Transform COS source code to a parse tree

Internal ISC code, not for customer use - these interfaces may change without warning

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
4 9


Summary

Properties
BinDir DLLCallMode DLLHandle DLLResultCode

Methods
%%OIDGet %AddToSaveSet %ClassIsLatestVersion %ClassName
%ConstructClone %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IsA %IsModified
%New %NormalizeObject %ObjectModified %OnClose
%OriginalNamespace %PackageName %RemoveFromSaveSet %SerializeObject
%SetModified %ValidateObject Compile PathToDLL


Properties

• property BinDir as %String(TRUNCATE=1);

The directory for CacheObjectScript.DLL.

Defaults to the CacheSys/Bin directory - change it if you want to debug a different version of the DLL.

• property DLLCallMode as %Integer [ InitialExpression = 3 ];

How we call the DLL

Takes one of the following values :-

1 - use $ZF(-3) ... handy for debugging the DLL because it doesn't stay loaded

2 - use $ZF(-4)/$ZF(-5) ... to cache the DLL handle

3 - use $ZF(-4)/$ZF(-6) ... the default - there's normally no reason to change it

Initialised to 3

• property DLLHandle as %Integer [ InitialExpression = 0 ];

The cached DLLHandle (used only when DLLCallMode=2)

• property DLLResultCode as %String(TRUNCATE=1);

Set to a result code string

Mainly of use to Intersystems support.


Methods

• method %OnClose() as %Status
This callback method is invoked by the %Close method to provide notification that the current object is being closed.

The return value of this method is ignored.

• method Compile(SourceStream As %CacheString, ErrorsStream As %CacheString, ByRef ColoringErrors As %Boolean) as %Boolean

Convert the given COS source code to a parse tree

  • SourceStream is a stream containing the source code

  • ErrorsStream is a stream to which any error messages are written

The return value is 1 on success, 0 on failure

If 0 is returned the caller should see the DLLResultCode property for information about failure.

CacheObjectScript.DLL must be in the directory given by the BinDir property. By default this points to the CacheSys/Bin directory.


In the example below SourceIn and ErrorsOut are streams. SourceIn supplies the source code and ErrorsOut receives any error messages.

	Set TT=##class(%Library.COSCallout).%New()
	Set Ret=TT.Compile(SourceIn,ErrorsOut)
	If 'Ret Write "Fatal error: ",TT.DLLResultCode,! ZTrap
	Do Errors.Rewind()
	If 'Errors.AtEnd {
	  //... show Errors
	}
	Else {
	  //... use tree
	}
• classmethod PathToDLL() as %String

Return the path to the DLL