home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cset21v5.zip / TOOLKT21 / CPLUS / OS2H / SOMCLS.API < prev    next >
Text File  |  1993-04-30  |  6KB  |  101 lines

  1. /*
  2.  *    @(#)somcls.API 1.1 5/13/92 12:55:19 [5/14/92] (c)IBM Corp. 1992
  3.  */
  4.  
  5.  
  6. #ifndef SOMClass_API
  7. #define SOMClass_API
  8. /*
  9.  * The Class API
  10.  */
  11.  
  12. /* A procedure to create the SOMClass Class */
  13. SOMEXTERN SOMClass * SOMLINK SOMClassNewClass(
  14.                 integer4 majorVersion,
  15.                 integer4 minorVersion);
  16.  
  17. /* The static interface to SOMClass and its instances */
  18. SOMEXTERN struct SOMClassClassDataStructure {
  19.         SOMClass *classObject;
  20.         somMToken somNew;
  21.         somMToken somRenew;
  22.         somMToken somInitClass;
  23.         somMToken somClassReady;
  24.         somMToken somGetName;
  25.         somMToken somGetParent;
  26.         somMToken somDescendedFrom;
  27.         somMToken somCheckVersion;
  28.         somMToken somFindMethod;
  29.         somMToken somFindMethodOk;
  30.         somMToken somSupportsMethod;
  31.         somMToken somGetNumMethods;
  32.         somMToken somGetInstanceSize;
  33.         somMToken somGetInstanceOffset;
  34.         somMToken somGetInstancePartSize;
  35.         somMToken somGetMethodIndex;
  36.         somMToken somGetNumStaticMethods;
  37.         somMToken somGetPClsMtab;
  38.         somMToken somGetClassMtab;
  39.         somMToken somAddStaticMethod;
  40.         somMToken somOverrideSMethod;
  41.         somMToken somAddDynamicMethod;
  42.         somMToken somGetMethodOffset;
  43.         somMToken somGetApplyStub;
  44.         somMToken somFindSMethod;
  45.         somMToken somFindSMethodOk;
  46.         somMToken somGetMethodDescriptor;
  47.         somMToken somGetNthMethodInfo;
  48.         somMToken somSetClassData;
  49.         somMToken somGetClassData;
  50.         somMToken somNewNoInit;
  51.         somMToken somRenewNoInit;
  52.         somMToken somGetInstanceToken;
  53.         somMToken somGetMemberToken;
  54.         somMToken somSetMethodDescriptor;
  55.         somMToken somGetMethodData;
  56. } SOMClassClassData;
  57.  
  58. /*
  59.  * -- Typedefs for Procedures that support SOMClass Methods
  60.  */
  61.  
  62. extern "C" {
  63. typedef void    (SOMLINK *somTD_SOMClass_somAddDynamicMethod)(SOMClass *somSelf,INOUT somId methodId,INOUT somId methodDescriptor,IN somMethodProc *method,IN somMethodProc *applyStub);
  64. typedef somMToken    (SOMLINK *somTD_SOMClass_somAddStaticMethod)(SOMClass *somSelf,INOUT somId methodId,INOUT somId methodDescriptor,IN somMethodProc *method,IN somMethodProc *redispatchStub,IN somMethodProc *applyStub);
  65. typedef void    (SOMLINK *somTD_SOMClass_somClassReady)(SOMClass *somSelf);
  66. typedef void    (SOMLINK *somTD_SOMClass_somInitClass)(SOMClass *somSelf,IN zString className,IN SOMObject *parentClass,IN integer4 instanceSize,IN int maxStaticMethods,IN integer4 majorVersion,IN integer4 minorVersion);
  67. typedef void    (SOMLINK *somTD_SOMClass_somOverrideSMethod)(SOMClass *somSelf,INOUT somId methodId,IN somMethodProc *method);
  68. typedef SOMAny *   (SOMLINK *somTD_SOMClass_somNew)(SOMClass *somSelf);
  69. typedef SOMAny *   (SOMLINK *somTD_SOMClass_somNewNoInit)(SOMClass *somSelf);
  70. typedef SOMAny *   (SOMLINK *somTD_SOMClass_somRenew)(SOMClass *somSelf,IN void *obj);
  71. typedef SOMAny *   (SOMLINK *somTD_SOMClass_somRenewNoInit)(SOMClass *somSelf,IN void *obj);
  72. typedef somMethodProc *   (SOMLINK *somTD_SOMClass_somGetApplyStub)(SOMClass *somSelf,INOUT somId methodId);
  73. typedef somClassDataStructure *   (SOMLINK *somTD_SOMClass_somGetClassData)(SOMClass *somSelf);
  74. typedef somMethodTab *   (SOMLINK *somTD_SOMClass_somGetClassMtab)(SOMClass *somSelf);
  75. typedef somDToken    (SOMLINK *somTD_SOMClass_somGetInstanceToken)(SOMClass *somSelf);
  76. typedef somDToken    (SOMLINK *somTD_SOMClass_somGetMemberToken)(SOMClass *somSelf,integer4 memberOffset,somDToken instanceToken);
  77. typedef integer4    (SOMLINK *somTD_SOMClass_somGetInstanceOffset)(SOMClass *somSelf);
  78. typedef integer4    (SOMLINK *somTD_SOMClass_somGetInstancePartSize)(SOMClass *somSelf);
  79. typedef integer4    (SOMLINK *somTD_SOMClass_somGetInstanceSize)(SOMClass *somSelf);
  80. typedef int    (SOMLINK *somTD_SOMClass_somGetMethodData)(SOMClass *somSelf,INOUT somId method,OUT somMethodData *md);
  81. typedef somId    (SOMLINK *somTD_SOMClass_somGetMethodDescriptor)(SOMClass *somSelf,IN somId methodId);
  82. typedef int    (SOMLINK *somTD_SOMClass_somGetMethodIndex)(SOMClass *somSelf,somId id);
  83. typedef integer4    (SOMLINK *somTD_SOMClass_somGetMethodOffset)(SOMClass *somSelf,INOUT somId methodId);
  84. typedef zString    (SOMLINK *somTD_SOMClass_somGetName)(SOMClass *somSelf);
  85. typedef somId    (SOMLINK *somTD_SOMClass_somGetNthMethodInfo)(SOMClass *somSelf,IN int n,OUT somId *descriptor);
  86. typedef int    (SOMLINK *somTD_SOMClass_somGetNumMethods)(SOMClass *somSelf);
  87. typedef int    (SOMLINK *somTD_SOMClass_somGetNumStaticMethods)(SOMClass *somSelf);
  88. typedef SOMClass *   (SOMLINK *somTD_SOMClass_somGetParent)(SOMClass *somSelf);
  89. typedef somMethodTab *   (SOMLINK *somTD_SOMClass_somGetPClsMtab)(SOMClass *somSelf);
  90. typedef void    (SOMLINK *somTD_SOMClass_somSetClassData)(SOMClass *somSelf,IN somClassDataStructure *cds);
  91. typedef int    (SOMLINK *somTD_SOMClass_somSetMethodDescriptor)(SOMClass *somSelf,IN somId methodId,IN somId descriptor);
  92. typedef int    (SOMLINK *somTD_SOMClass_somCheckVersion)(SOMClass *somSelf,IN integer4 majorVersion,IN integer4 minorVersion);
  93. typedef int    (SOMLINK *somTD_SOMClass_somDescendedFrom)(SOMClass *somSelf,IN SOMClass *aClassObj);
  94. typedef int    (SOMLINK *somTD_SOMClass_somSupportsMethod)(SOMClass *somSelf,INOUT somId mId);
  95. typedef int    (SOMLINK *somTD_SOMClass_somFindMethod)(SOMClass *somSelf,INOUT somId methodId,OUT somMethodProc **m);
  96. typedef int    (SOMLINK *somTD_SOMClass_somFindMethodOk)(SOMClass *somSelf,INOUT somId methodId,OUT somMethodProc **m);
  97. typedef somMethodProc *   (SOMLINK *somTD_SOMClass_somFindSMethod)(SOMClass *somSelf,INOUT somId methodId);
  98. typedef somMethodProc *   (SOMLINK *somTD_SOMClass_somFindSMethodOk)(SOMClass *somSelf,INOUT somId methodId);
  99. }
  100. #endif /* SOMClass_API */
  101.