SomGetRelatedClasses

This method returns an array of class objects that were all registered during the dynamic loading of a class.

For backward compatibility, this method does not take an Environment parameter.


 * Original Class : SOMClassMgr

Syntax
SOMClass *somGetRelatedClasses (SOMClassMgr receiver, SOMClass classObj)

Parameters

 * receiver (SOMClassMgr) : Usually a pointer to SOMClassMgrObject, or a pointer to an instance of a user-defined subclass of SOMClassMgr.


 * classObj (SOMClass) : A pointer to a SOMClass object.

Return Code

 * rc (SOMClass *) : Returns a pointer to an array of pointers to class objects, or NULL, if the specified class was not dynamically loaded.

Remarks
The somGetRelatedClasses method returns an array of class objects that were all registered during the dynamic loading of the specified class. These classes are considered to define an affinity group. Any class is a member of at most one affinity group. The affinity group returned by this call is the one containing the class identified by the classObj parameter.

The first element in the array is either the class that caused the group to be loaded, or the special value -1, which means that the class manager is currently in the process of unregistering and deleting the affinity group (only class-manager objects would ever see this value). The remainder of the array consists of pointers to class objects, ordered in reverse chronological sequence to that in which they were originally registered. This list includes the given argument, classObj, as one of its elements, as well as the class that caused the group to be loaded (also given by the first element of the array). The array is terminated by a NULL pointer as the last element.

Use SOMFree to release the array when it is no longer needed. If the supplied class was not dynamically loaded, it is not a member of any affinity group and NULL is returned.

Example Code
 SOMClass myClass, *relatedClasses; string className; long i;
 * 1) include 

className = SOMClass_somGetName (myClass)); relatedClasses = SOMClassMgr_somGetRelatedClasses                               (SOMClassMgrObject, myClass); if (relatedClasses && *relatedClasses) {    somPrintf ("Class=%s, related classes are: ", className);    for (i=1; relatedClasses[i]; i++)        somPrintf ("%s ",SOMClass_somGetName (relatedClasses[i]));    somPrintf ("\n");    somPrintf ("Class that caused loading was %s\n", relatedClasses[0] == (SOMClass) -1 ? "-1" :           SOMClass_somGetName (relatedClasses[0]));    SOMFree (relatedClasses); } else    somPrintf ("No classes related to %s\n", className); 

Methods

 * somGetInitFunction