Implementing Classes in SOM
Appearance
Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation
The SOM Run-Time Environment
Run-time environment initialization
SOMObject class object
SOMClass class object
SOMClassMgr class object and SOMClassMgrObject
Parent class vs. metaclass
SOM-derived metaclasses
Inheritance
Method Resolution
Offset resolution
Name-lookup resolution
Dispatch-function resolution
Customizing Method Resolution
The four kinds of SOM methods
Static methods
Nonstatic methods
Dynamic methods
Direct-call procedures
Implementing SOM Classes
The implementation template
Stub procedures for methods
Extending the implementation template
Accessing internal instance variables
Making parent method calls
Converting C++ classes to SOM classes
Running incremental updates of the implementation template file
Considerations to ensure that updates work
If you change the parents of a class...
Compiling and linking
Initializing and Uninitializing Objects
Initializer methods
Declaring new initializers in SOM IDL
Considerations re: 'somInit' initialization from earlier SOM releases
Implementing initializers
Selecting non-default ancestor initializer calls
Using initializers when creating new objects
Uninitialization
Using 'somDestruct'
A complete example
Implementation code
Customizing the initialization of class objects
Creating a SOM Class Library
General guidelines for class library designers
Types of class libraries
Building export files
Specifying the initialization function
Using Windows class libraries
Creating the import library
Customizing Memory Management
Customizing Class Loading and Unloading
Customizing class initialization
Customizing DLL loading
Customizing DLL unloading
Customizing Character Output
Customizing Error Handling
Customizing Mutual Exclusion Services (Thread Safety)
Customizing Multi-threading Services