Implementing Classes in SOM: Difference between revisions
Appearance
Created page with "{{Template:SOMPG}} {{IBM-Reprint}} The SOM Run-Time Environment Run-time environment initialization SOMObject class object SOMClass class ..." |
No edit summary |
||
Line 2: | Line 2: | ||
{{IBM-Reprint}} | {{IBM-Reprint}} | ||
==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 | Static methods | ||
Nonstatic methods | Nonstatic methods | ||
Dynamic methods | Dynamic methods | ||
Direct-call procedures | 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 | Initializer methods | ||
Declaring new initializers in SOM IDL | Declaring new initializers in SOM IDL | ||
Line 43: | Line 43: | ||
Implementation code | Implementation code | ||
Customizing the initialization of class objects | 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 | 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== |
Revision as of 03:37, 28 August 2020
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