%Library.RoutineIndexpersistent 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:
- 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.
The name of the routine.
The type of routine, this will be one of:
- MAC - Macro routine, content is stored in ^rMAC global
- INT - Cache Object Script 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
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.
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.