IRISLIB database
ClassMgr Class Reference

This class is used internally by InterSystems IRIS. More...

Static Public Member Functions

_.Library.Status Check ()
 Perform basic checks we are allowed to proceed.
 
_.Library.Status ClassList (_.Library.String Hash, _.Stream.GlobalCharacter List, _.Library.String Lengths)
 Return a list of all classes available in this namespace, it is passed the client hash value. More...
 
_.Library.Status GetDefinition (_.Library.String class, _.Stream.GlobalCharacter definition, _.Library.String Hash)
 Return the entire class definition in the stream defintion property.
 
 GetMacroInf (_.Library.String macroname, _.Library.String arg, _.Library.String arglist, _.Library.String signature, _.Library.String location, _.Library.String definition, _.Library.String expansion)
 Return information about this macro. More...
 
_.Library.Status IsClassnameConflict (_.Library.String class)
 Check if there is a class name conflict.
 
_.Library.Status Lock (_.Library.String class)
 Lock the class for editing.
 
_.Library.Status OnOpenClass (_.Library.String class, _.Library.Boolean modified)
 Call the OnBeforeLoad/OnAfterLoad source control events for this class. More...
 
_.Library.Status SaveDefinition (_.Stream.GlobalCharacter definition, _.Library.String Hash, _.Stream.GlobalCharacter List, _.Library.String Lengths)
 Passed a class definition in stream definition this is saved.
 
_.Library.Status Timestamp (_.Library.String class, _.Library.TimeStamp timemodified, _.Library.TimeStamp timecompiled)
 Return the timestamp a class was last modified and last compiled.
 
_.Library.Status UnLock (_.Library.String class)
 Unlock the class.
 

Detailed Description

This class is used internally by InterSystems IRIS.

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.

Member Function Documentation

◆ ClassList()

_.Library.Status ClassList ( _.Library.String  Hash,
_.Stream.GlobalCharacter  List,
_.Library.String  Lengths 
)
static

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.

◆ GetMacroInf()

GetMacroInf ( _.Library.String  macroname,
_.Library.String  arg,
_.Library.String  arglist,
_.Library.String  signature,
_.Library.String  location,
_.Library.String  definition,
_.Library.String  expansion 
)
static

Return information about this macro.

If arglist is not defined ($d(arglist)=0) then it does not return the expansion

◆ OnOpenClass()

_.Library.Status OnOpenClass ( _.Library.String  class,
_.Library.Boolean  modified 
)
static

Call the OnBeforeLoad/OnAfterLoad source control events for this class.

return true if the class is modified and false if it is not