The Conroy & Conroy Subroutine Library (2021.3 edition)

TSDebug_Iterator
What: class
Ancestor: TSDebug_Interface
File: DebugInt
Layer: 1
Platforms: C++, C#, Javascript, Pascal (OOP), PHP, Python

This class implements a debugging iterator. It provides base functionality. For the most part, a descendent only has to implement the Build_Children() method. Note that reference counting effectively does nothing in languages that have inherent reference counting. It has the following methods:

Activate
void Activate()
procedure Activate
Does nothing in this class. Override to do something when this item is activated (usually by double-click).

Arbitrary_Length
bool Arbitrary_Length()
function Arbitrary_Length : boolean
Returns False in this class. A descendent should return true if this item is of arbitrary length.

Attach
void Attach()
procedure Attach
Increases the reference count by one.

Build_Children
void Build_Children()
procedure Build_Children
Does nothing in this class. In a descendent, this method should build all child items and store them for later retrieval.

Can_Change
bool Can_Change()
function Can_Change : boolean
Returns False. If a descendent can be modified, it should return True.

Child
TCOM_Debug_Interface* Child( int32 Ordinal )
function Child( Ordinal : longint ) : TCOM_Debug_Interface
Returns the child the specified index.

Count
int32 Count()
function Count : longint
Returns the number of children.

Detach
void Detach()
procedure Detach
Decreases the reference count by one. When the reference count goes to 0, the object self-destructs.

Get_Context
int32 Get_Context()
function Get_Context : longint
Returns the context value associated with the item.

Get_Title
char* Get_Title()
function Get_Title : PChar
Returns the Title of this debug item.

Has_Children
bool Has_Children()
function Has_Children : boolean
Returns true if this item has any children.

Kill
void Kill()
procedure Kill
Does nothing in this class. If the descendent allows this item to be deleted, it should do so when called.

Modify
string At( int Index )
function Modify( Data : Pchar ; Size : integer ) : Pchar
Does nothing in this class. In a descendent, if modification is allowed, it should modify the data as specified by the data pointer and size, in bytes.

Recursive
bool Recursive()
function Recursive : boolean
Returns False in this class. Descendents should return true if the child items include higher levels in the debug structure.

Set_Context
void Set_Contexxt( int32 Value )
procedure Set_Context( Value : longint )
Sets the item's context.