en:docs:tk:som

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:docs:tk:som [2024/07/25 07:36] – [9. IDL, PDL Emitters] prokusheven:docs:tk:som [2024/09/18 15:00] (current) – [Include section] prokushev
Line 354: Line 354:
 ===== SOM Object Interface Definition Language ===== ===== SOM Object Interface Definition Language =====
  
-SOM Object Interface Definition Language is a pre-IDL object definition language used before IBM SOM 2.1. Since IBM SOM 2.1 uses CORBA IDL as defined in OMG CORBA 1.1. SOM Object Interface Definition Language (OIDL) is a simple definition language and not recommended to use. SOM Compiler support is only for compatibility with old source code. OIDL support implementation mostly based on [1] and various OIDL source files found on the Web.+SOM Object Interface Definition Language is a pre-IDL object definition language used before IBM SOM 2. Since IBM SOM 2 uses CORBA IDL as defined in OMG CORBA 1.1. SOM Object Interface Definition Language (OIDL) is a simple definition language and not recommended to use. SOM Compiler support is only for compatibility with old source code. OIDL support implementation mostly based on [2] and various OIDL source files found on the Web.
 OIDL consist of sections set: OIDL consist of sections set:
  
Line 361: Line 361:
   * Release order section (optional)   * Release order section (optional)
   * Parent class section (required)   * Parent class section (required)
-  * Passthru section (optionsl)+  * Passthru section (optional)
   * Metaclass section (optional)   * Metaclass section (optional)
   * Data section (optional)   * Data section (optional)
Line 375: Line 375:
 [#include ( <metaclass> | "metaclass" ) ] [#include ( <metaclass> | "metaclass" ) ]
 </code> </code>
 +
 +ancestor is the name of the OIDL file containing the private part of an ancestor class' interface needed in the definition of this class. If ancestor is enclosed in angle brackets (%%<>%%), the search for the file will begin in system-specific locations. If parent is enclosed in double quotation marks (%%""%%), the search for the file will begin in the local context, then move to the system-specific locations.
 +
 +parent is the name of the OIDL file containing the parent class of the class for which the Include statement is provided. If parent is enclosed in angle
 +brackets (%%<>%%), the search for the file will begin in system-specific locations. If parent is enclosed in double quotation marks (%%""%%), the search for the file will begin in the local context, then move to the system-specific locations.
 +
 +metaclass is the OIDL file containing the metaclass of the class for which the include statement is provided. If metaclass is enclosed in angle brackets (%%<>%%), the search for the file will begin in system-specific locations. If metaclass is enclosed in double quotation marks (%%""%%), the search for the file will begin in the local context, then move to the system-specific locations.
  
 ==== Class section ==== ==== Class section ====
Line 736: Line 743:
 Добавить описание символов шаблона. Добавить описание символов шаблона.
  
-===== 10. Developing new emitter =====+===== Developing new emitter =====
  
 somFree Emitter Framework provides templates and libraries for developing emitters compatible with both IBM SOM 2.1 and IBM SOM 3.0 compilers. Because of different ABI (refer Appendix 1 for more information) somFree emitters automatically configures for corresponding API. somFree Emitter Framework provides templates and libraries for developing emitters compatible with both IBM SOM 2.1 and IBM SOM 3.0 compilers. Because of different ABI (refer Appendix 1 for more information) somFree emitters automatically configures for corresponding API.
  
-===== 13. CORBA C Language mapping =====+===== CORBA C Language mapping =====
  
 somFree Compiler support CORBA C Language Mapping Specification 1.0 [1]. CORBA C Language mapping slightly differ from SOM C Language mapping, used by original IBM SOM 2.1. CORBA C Language mapping is default for somFree Compiler. This chapter provides short description of mapping. For full description refer to [1]. somFree Compiler support CORBA C Language Mapping Specification 1.0 [1]. CORBA C Language mapping slightly differ from SOM C Language mapping, used by original IBM SOM 2.1. CORBA C Language mapping is default for somFree Compiler. This chapter provides short description of mapping. For full description refer to [1].
  
-===== 14. SOM C Language mapping =====+===== SOM C Language mapping =====
  
 SOM C Language mapping is a IBM SOM mapping variant. For some reason (most probably because variable arguments support) IBM SOM not exactly implements C Language Mapping Specification. SOM C Language mapping is a IBM SOM mapping variant. For some reason (most probably because variable arguments support) IBM SOM not exactly implements C Language Mapping Specification.
Line 750: Line 757:
 ====== Programmer's reference ====== ====== Programmer's reference ======
  
-===== 1. SOM Runtime C library =====+===== SOM Runtime C library =====
  
 SOM Runtime C library somwm35i is a subset of C runtime library functions found to be used by IBM SOM 3.0 for NT emitters. SOM Runtime C library provided only for support of IBM SOM 3.0 for NT emitters. This is not full featured C library but compatibility layer and must not be used for development. Functions utilize IBM Optlink calling convention. This library required only under Windows NT systems. SOM Runtime C library somwm35i is a subset of C runtime library functions found to be used by IBM SOM 3.0 for NT emitters. SOM Runtime C library provided only for support of IBM SOM 3.0 for NT emitters. This is not full featured C library but compatibility layer and must not be used for development. Functions utilize IBM Optlink calling convention. This library required only under Windows NT systems.
Line 806: Line 813:
   * strpbrk   * strpbrk
  
-===== 2. somFree Compiler library =====+===== somFree Compiler library =====
  
 somFree Compiler library somc is a set of helper functions for compiler tasks. Used by IBM SOM emitters. Library provided solely to provide support of IBM emitters. Must not be used to write new code. somFree Compiler library somc is a set of helper functions for compiler tasks. Used by IBM SOM emitters. Library provided solely to provide support of IBM emitters. Must not be used to write new code.
Line 1642: Line 1649:
 ==== somtinitMalloc, somtinitMallocSL function ==== ==== somtinitMalloc, somtinitMallocSL function ====
  
-<code>+<code c>
 SOMEXTERN void somtinitMalloc(BOOL dynamic) SOMEXTERN void somtinitMalloc(BOOL dynamic)
 SOMEXTERN void SOMLINK somtinitMallocSL(BOOL dynamic) SOMEXTERN void SOMLINK somtinitMallocSL(BOOL dynamic)
Line 1773: Line 1780:
 ==== somtclsname, somtclsnameSL function ==== ==== somtclsname, somtclsnameSL function ====
  
-<code>+<code c>
 SOMEXTERN char * somtclsname(Entry * cls); SOMEXTERN char * somtclsname(Entry * cls);
 SOMEXTERN char * SOMLINK somtclsnameSL(Entry * cls); SOMEXTERN char * SOMLINK somtclsnameSL(Entry * cls);
Line 1828: Line 1835:
 ==== somtgetAbistyle, somtgetAbistyleSL function ==== ==== somtgetAbistyle, somtgetAbistyleSL function ====
  
-<code>+<code c>
 SOMEXTERN enum SOMTABIStyle  somtgetAbistyle( Entry * ep ); SOMEXTERN enum SOMTABIStyle  somtgetAbistyle( Entry * ep );
 SOMEXTERN enum SOMTABIStyle  SOMLINK somtgetAbistyleSL( Entry * ep ); SOMEXTERN enum SOMTABIStyle  SOMLINK somtgetAbistyleSL( Entry * ep );
Line 1855: Line 1862:
 ==== somtincludeOnce, somtincludeOnceSL function ==== ==== somtincludeOnce, somtincludeOnceSL function ====
  
-<code>+<code c>
 SOMEXTERN char * somtincludeOnceSL(Entry *cls, char *ext, char *buf); SOMEXTERN char * somtincludeOnceSL(Entry *cls, char *ext, char *buf);
 SOMEXTERN char * SOMLINK somtincludeOnceSL(Entry *cls, char *ext, char *buf); SOMEXTERN char * SOMLINK somtincludeOnceSL(Entry *cls, char *ext, char *buf);
Line 1954: Line 1961:
 ==== somtcleanFiles, somtcleanFilesSL function ==== ==== somtcleanFiles, somtcleanFilesSL function ====
  
-<code>+<code c>
 SOMEXTERN void somtcleanFiles(int status); SOMEXTERN void somtcleanFiles(int status);
 SOMEXTERN void  SOMLINK somtcleanFilesSL(int status); SOMEXTERN void  SOMLINK somtcleanFilesSL(int status);
Line 2013: Line 2020:
 ==== somtfullComment, somtfullCommentSL function ==== ==== somtfullComment, somtfullCommentSL function ====
  
-<code>+<code c>
 SOMEXTERN void somtfullCommentSL(FILE * fp, char *fmt,...); SOMEXTERN void somtfullCommentSL(FILE * fp, char *fmt,...);
 SOMEXTERN void SOMLINK somtfullCommentSL(FILE * fp, char *fmt,...); SOMEXTERN void SOMLINK somtfullCommentSL(FILE * fp, char *fmt,...);
Line 2040: Line 2047:
 ==== somtoidlComment, somtoidlCommentSL function ==== ==== somtoidlComment, somtoidlCommentSL function ====
  
-<code>+<code c>
 SOMEXTERN void somtoidlComment(FILE * fp, int min, int max, char style, char *comment); SOMEXTERN void somtoidlComment(FILE * fp, int min, int max, char style, char *comment);
 SOMEXTERN void  SOMLINK somtoidlCommentSL(FILE * fp, int min, int max, char style, char *comment); SOMEXTERN void  SOMLINK somtoidlCommentSL(FILE * fp, int min, int max, char style, char *comment);
Line 2090: Line 2097:
 ==== somtobseleteHeaderFile, somtobseleteHeaderFileSL function ==== ==== somtobseleteHeaderFile, somtobseleteHeaderFileSL function ====
  
-<code>+<code c>
 SOMEXTERN FILE * somtobseleteHeaderFile(char *file, Entry *cls, char *ext, char *newext); SOMEXTERN FILE * somtobseleteHeaderFile(char *file, Entry *cls, char *ext, char *newext);
 SOMEXTERN FILE * SOMLINK somtobseleteHeaderFileSL(char *file, Entry *cls, char *ext, char *newext); SOMEXTERN FILE * SOMLINK somtobseleteHeaderFileSL(char *file, Entry *cls, char *ext, char *newext);
Line 2117: Line 2124:
 ==== somtstrictidl, somtstrictidlSL function ==== ==== somtstrictidl, somtstrictidlSL function ====
  
-<code>+<code c>
 SOMEXTERN void somtstrictidl(FILE *fp); SOMEXTERN void somtstrictidl(FILE *fp);
 SOMEXTERN void SOMLINK somtstrictidlSL(FILE *fp); SOMEXTERN void SOMLINK somtstrictidlSL(FILE *fp);
Line 2214: Line 2221:
 ===== somtuniqString, somtuniqStringSL function ===== ===== somtuniqString, somtuniqStringSL function =====
  
-<code>+<code c>
 SOMEXTERN char * somtuniqString(MemBuf *membuf, char *s); SOMEXTERN char * somtuniqString(MemBuf *membuf, char *s);
 SOMEXTERN char * SOMLINK somtuniqStringSL(MemBuf *membuf, char *s); SOMEXTERN char * SOMLINK somtuniqStringSL(MemBuf *membuf, char *s);