persistent class %Library.RoutineIndex
Index for all the routines in this namespace. Using this index avoids the overhead of loading
all the information from ^ROUTINE, ^rMAC, ^rINC which makes the routine editing tool substantially
faster. In case you have tools that enter routines directly into the global and you wish to add
this routine to the index then after you have edited the global you should call:
The global structure is:
- Type - is one of "MAC","INT","BAS","MVB","INC","OBJ"
- Name - is the name of this item, eg routine '%qserver' for classes this is the upper case version.
- Modified - is the last date/time the routine was modified in $zdt($h,3) format
- Length - is the size in bytes
The size in bytes of this routine.
The date/time that this routine was last saved.
as %String(MAXLEN=128) [ Required ];
The name of the routine.
as %String [ Required ];
The type of routine, this will be one of:
- MAC - Macro routine, content is stored in ^rMAC global
- INT - ObjectScript routine, content is stored in ^ROUTINE global
- INC - Include file, these may be included from a MAC routine, content
is stored in ^rINC
- BAS - Cache Basic routine, content is stored in the ^ROUTINE global
- MVB - MultiValue Basic routine, content is stored in the ^ROUTINE global
- OBJ - Object code, content is stored in ^rOBJ global
classmethod RebuildIndex(namespace As %String, ByRef num As %Integer)
In case this index gets out of sync with the routines in the current namespace
you can call this method to rebuild the index from the various ^ROUTINE, ^rINC,
^rMAC globals. This only rebuilds the index for entries that really live in
this namespace, if you have routine mappings so that some routines are in a
separate namespace you will need to rebuilt these seperately.
classmethod RebuildItemIndex(rtn As %String, ext As %String, namespace As %String)
Rebuild the index information for this single item. You pass this the
rtn name, its ext (one of "INT", "INC", "MAC", "BAS", "MVB", "OBJ")
and optionally the namespace as namespace.
You can call this after modifying the routine global directly to update the
index correct with the new information.
index (Index on Name,Type) [IdKey];