Jump to content

Implementing Classes in SOM: Difference between revisions

From EDM2
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
==The SOM Run-Time Environment==
        Run-time environment initialization
===Run-time environment initialization===
            SOMObject class object
====SOMObject class object====
            SOMClass class object
====SOMClass class object====
            SOMClassMgr class object and SOMClassMgrObject  
====SOMClassMgr class object and SOMClassMgrObject ====
        Parent class vs. metaclass
===Parent class vs. metaclass===
        SOM-derived metaclasses  
===SOM-derived metaclasses ===
    Inheritance
==Inheritance==
    Method Resolution
==Method Resolution==
        Offset resolution
===Offset resolution===
        Name-lookup resolution
===Name-lookup resolution===
        Dispatch-function resolution
===Dispatch-function resolution===
        Customizing Method Resolution
===Customizing Method Resolution===
        The four kinds of SOM methods
===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
==Implementing SOM Classes==
        The implementation template
===The implementation template===
            Stub procedures for methods  
====Stub procedures for methods====
        Extending the implementation template
===Extending the implementation template===
            Accessing internal instance variables
====Accessing internal instance variables====
            Making parent method calls
====Making parent method calls====
            Converting C++ classes to SOM classes
====Converting C++ classes to SOM classes====
            Running incremental updates of the implementation template file
====Running incremental updates of the implementation template file====
            Considerations to ensure that updates work
====Considerations to ensure that updates work====
            If you change the parents of a class...  
====If you change the parents of a class... ====
        Compiling and linking  
===Compiling and linking ===
    Initializing and Uninitializing Objects
==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
==Creating a SOM Class Library==
        General guidelines for class library designers
===General guidelines for class library designers===
        Types of class libraries
===Types of class libraries===
        Building export files
===Building export files===
        Specifying the initialization function
===Specifying the initialization function===
             Using Windows class libraries  
             Using Windows class libraries  
        Creating the import library  
===Creating the import library===
    Customizing Memory Management
==Customizing Memory Management==
    Customizing Class Loading and Unloading
==Customizing Class Loading and Unloading==
        Customizing class initialization
===Customizing class initialization===
        Customizing DLL loading
===Customizing DLL loading===
        Customizing DLL unloading  
===Customizing DLL unloading ===
    Customizing Character Output
==Customizing Character Output==
    Customizing Error Handling
==Customizing Error Handling==
    Customizing Mutual Exclusion Services (Thread Safety)
==Customizing Mutual Exclusion Services (Thread Safety)==
    Customizing Multi-threading Services
==Customizing Multi-threading Services==

Revision as of 03:37, 28 August 2020

System Object Model Programming Guide
  1. About This Book
  2. Introduction to the SOMobjects Developer Toolkit
  3. Tutorial for Implementing SOM Classes
  4. Using SOM Classes in Client Programs
  5. SOM IDL and the SOM Compiler
  6. Implementing Classes in SOM
  7. Distributed SOM (DSOM)
  8. The SOM Interface Repository Framework
  9. The Metaclass Framework
  10. The Event Management Framework
  11. SOMobjects Error Codes
  12. SOM IDL Language Grammar
  13. Implementing Sockets Subclasses
  14. Glossary

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