Skip to main content

%Studio.ClassMgr

class %Studio.ClassMgr

This class is used internally by Caché. You should not make direct use of it within your applications. There is no guarantee made about either the behavior or future operation of this class.

Method Inventory

Methods

classmethod Check() as %Status
Perform basic checks we are allowed to proceed
classmethod ClassList(Hash As %String(MAXLEN=""), Output List As %Stream.GlobalCharacter, Output Lengths As %String(MAXLEN="")) as %Status
Return a list of all classes available in this namespace, it is passed the client hash value in the format $$$SLB(name)_$$$SLB(hash)_$$$SLB(name2)_$$$SLB(hash2). This checks each of the named regions and if they are all identical then it returns with a null stream in List. If any of the regions has changed then we will resend all the classes in this region in the format:
$$SLB(name)_$$$SLB(hash)_data_$$$SLB("")_$$$SLB(name2)_$$$SLB(hash2)_data2_$$$SLB("")
Where data is of the form:
$$$SLB(row)_$$$SLB(nextrow)_...
Where row is of the form:
$$$SLB(classname)_$$$SLB(timestamp)_$$SLB(superclass)_$$$SLB(classtype defined)_$$$SLB(classtype)_$$$SLB(system)_$$$SLB(hidden)_$$$SLB(abstract)_$$$SLB(import)
To tell the client to remove a named block from its cache we will send the hash=-1 for this i.e.
$$$SLB(name)_$$$SLB("")_$$$SLB("")_nextblock
So the hash is "" and the block is terminated with $$$SLB("") as per normal. Note that the last block is also terminated with $$$SLB(""). The lengths of the various block is returned in Lengths which is an output argument. This is a comma separated list of length in characters of the stream data. This can be used to quickly divide the stream into pieces on the client.
classmethod Delete(class As %String(MAXLEN=256)) as %Status
classmethod GetDefinition(class As %String(MAXLEN=256), Output definition As %Stream.GlobalCharacter, Output Hash As %String(MAXLEN="")) as %Status
Return the entire class definition in the stream defintion property
classmethod GetMacroInf(macroname As %String(MAXLEN=512), arg As %String(MAXLEN=512), arglist As %String(MAXLEN=1024), ByRef signature As %String(MAXLEN=512), ByRef location As %String(MAXLEN=512), ByRef definition As %String(MAXLEN=512), ByRef expansion As %String(MAXLEN=512))
Return information about this macro If arglist is not defined ($d(arglist)=0) then it does not return the expansion
classmethod GetSchema(schemaspec As %String(MAXLEN=256), ByRef definition As %Stream.GlobalBinary) as %Status
classmethod GetSpecialListByStream(kind As %String, param As %String, ByRef result As %Stream.GlobalBinary) as %Status
classmethod IsClassnameConflict(class As %String(MAXLEN=256)) as %Status
Check if there is a class name conflict
classmethod Lock(class As %String(MAXLEN=256)) as %Status
Lock the class for editing
classmethod MacroListClose(ByRef qHandle As %Binary) as %Status
classmethod MacroListExecute(ByRef qHandle As %Binary, arg As %String(MAXLEN=512), ByRef clienthash As %String(MAXLEN=128), Output Reload As %Boolean) as %Status
classmethod MacroListFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
classmethod OnOpenClass(class As %String(MAXLEN=256), Output modified As %Boolean) as %Status
Call the OnBeforeLoad/OnAfterLoad source control events for this class return true if the class is modified and false if it is not
classmethod SaveDefinition(ByRef definition As %Stream.GlobalCharacter, Hash As %String(MAXLEN=""), Output List As %Stream.GlobalCharacter, Output Lengths As %String(MAXLEN="")) as %Status
Passed a class definition in stream definition this is saved
classmethod Timestamp(class As %String(MAXLEN=256), ByRef timemodified As %TimeStamp, ByRef timecompiled As %TimeStamp) as %Status
Return the timestamp a class was last modified and last compiled
classmethod UnLock(class As %String(MAXLEN=256)) as %Status
Unlock the class

Queries

query MacroList(arg As %String(MAXLEN=512), ByRef clienthash As %String(MAXLEN=128), Output Reload As %Boolean)
Selects Name As %String(MAXLEN=512)
Return list of macros
FeedbackOpens in a new tab