In SOM, a class defines the implementation of objects. An object is an instance of a class or an instantiation of the class. In SOM run time, classes are themselves objects that have their own methods and interfaces and are themselves defined by other classes. These other classes are referred to as metaclasses. An instance of a metaclass is a class object and an instance of a class is an object. Construction and deletion of an object (creating and deleting an instance of a class) is performed by method calls on the class object. (The C macro ClassNameNew and the C++ new operator result in calls to the somNew method of the class object.)
Primitive classes that are the basis for all other classes include:
SOM permits derivative implementations of these classes that can override or extend the class method or variable set. Ultimedia Services contains the classes:
Additionally, several Ultimedia Services classes have unique metaclasses that provide unique object construction methods. For example, UMSAudioFileMClass is the metaclass of UMSAudioFile and provides the additional construction methods of make_by_filename and make_by_alias.
To learn more about programming with metaclass objects, see:
For a more thorough discussion of these relationships, see the AIX Version 4 SOMobjects Base Toolkit User's Guide.