home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / somcls.hh < prev    next >
Encoding:
Text File  |  1996-02-22  |  25.5 KB  |  572 lines

  1. #ifndef _DTS_HH_INCLUDED_somcls
  2. #define _DTS_HH_INCLUDED_somcls
  3.  
  4. /* Start Interface SOMClass */
  5.  
  6. // This file was generated by the IBM "DirectToSOM" emitter for C++ (V1.116)
  7. // Generated at 02/22/96 12:06:07 
  8. // The efw file is version 1.57
  9.  
  10. #ifndef som3AssignCtrl
  11. #define som3AssignCtrl somAssignCtrl
  12. #endif
  13.  
  14. #include <som.hh>
  15.  
  16.      #pragma SOMAsDefault(on)
  17. class SOMClass;
  18.      #pragma SOMAsDefault(pop)
  19.      #pragma SOMAsDefault(on)
  20. class SOMObject;
  21.      #pragma SOMAsDefault(pop)
  22. #ifndef _IDL_SEQUENCE_SOMClass_defined
  23. #define _IDL_SEQUENCE_SOMClass_defined
  24.      #pragma SOMAsDefault(on)
  25. class SOMClass;
  26.      #pragma SOMAsDefault(pop)
  27.      typedef struct {
  28.         unsigned long _maximum;
  29.     unsigned long _length;
  30.     SOMClass **_buffer;
  31.      } _IDL_SEQUENCE_SOMClass;
  32. #endif // _IDL_SEQUENCE_SOMClass_defined
  33. #include <somobj.hh>
  34. #pragma SOMNonDTS(on)
  35.  
  36. class
  37. #if !(defined(SOM_SOMClass_Class_Source) || defined(SOM_DONT_IMPORT_CLASS_SOMClass))
  38. WIN32_DLLIMPORT
  39. #else
  40. WIN32_DLLEXPORT
  41. #endif
  42. SOMClass : public ::SOMObject {
  43.  
  44. //
  45. //  This is the SOM metaclass.  That is, the instances of this class
  46. //  are class objects.  When the SOM environment is created an instance
  47. //  of SOMClass is created and a pointer to it is placed in the external
  48. //  data location (SOMClassClassData.classObject). Bindings provide the
  49. //  macro _SOMClass for this expression. _SOMClass is unique in that it
  50. //  is its own class object. I.e., _SOMClass == _somGetClass(_SOMClass).
  51. //  SOMClass can be subclassed just like any SOM class. The subclasses
  52. //  of SOMClass are new metaclasses and can generate class objects with
  53. //  different implementations than those produced by _SOMClass.
  54. //
  55. //  An important rule for metaclass programming is that no methods
  56. //  introduced by SOMClass should ever be overridden. While this
  57. //  limits the utility of metaclass programming in SOM, it guarantees
  58. //  that SOM will operate correctly. Special class frameworks may be
  59. //  available from IBM to alleviate this restriction.
  60. //
  61.  
  62.      #pragma SOMClassName(*, "SOMClass")
  63.      #pragma SOMNoMangling(*)
  64.      #pragma SOMNonDTS(*)
  65.  
  66.      #pragma SOMClassVersion (SOMClass, 1, 4)
  67.      #pragma SOMCallstyle (oidl)
  68.      #pragma SOMAsDefault(off)
  69.  
  70.   public :
  71. #ifndef SOMClass__IDL_SEQUENCE_somToken_defined
  72. #define SOMClass__IDL_SEQUENCE_somToken_defined
  73.      typedef struct {
  74.         unsigned long _maximum;
  75.     unsigned long _length;
  76.     somToken *_buffer;
  77.      } _IDL_SEQUENCE_somToken;
  78. #endif // SOMClass__IDL_SEQUENCE_somToken_defined 
  79.      typedef /* seq<         0> */ _IDL_SEQUENCE_somToken somTokenSequence;
  80.      typedef /* seq<         0> */ _IDL_SEQUENCE_SOMClass SOMClassSequence;
  81.      
  82.      // a structure to describe a class-related offset
  83.      typedef struct somOffsetInfo {
  84.           ::SOMClass* cls;
  85.           long offset;
  86.      } somOffsetInfo;
  87. #ifndef SOMClass__IDL_SEQUENCE_somOffsetInfo_defined
  88. #define SOMClass__IDL_SEQUENCE_somOffsetInfo_defined
  89.      struct somOffsetInfo;
  90.      typedef struct {
  91.         unsigned long _maximum;
  92.     unsigned long _length;
  93.     somOffsetInfo *_buffer;
  94.      } _IDL_SEQUENCE_somOffsetInfo;
  95. #endif // SOMClass__IDL_SEQUENCE_somOffsetInfo_defined 
  96.      typedef /* seq<         0> */ _IDL_SEQUENCE_somOffsetInfo somOffsets;
  97. #ifndef SOMClass__IDL_SEQUENCE_somId_defined
  98. #define SOMClass__IDL_SEQUENCE_somId_defined
  99.      typedef struct {
  100.         unsigned long _maximum;
  101.     unsigned long _length;
  102.     somId *_buffer;
  103.      } _IDL_SEQUENCE_somId;
  104. #endif // SOMClass__IDL_SEQUENCE_somId_defined 
  105.      typedef /* seq<         0> */ _IDL_SEQUENCE_somId somIdSequence;
  106.      somOffsets somInstanceDataOffsets;
  107.  
  108.      #pragma SOMAttribute(somInstanceDataOffsets, readonly, virtualaccessors, nodata)
  109.      #pragma SOMAsDefault(pop)
  110.      SOMClass();
  111.      SOMClass(SOMClass&);
  112.      virtual ~SOMClass();
  113. #ifdef __EXTENDED__SOM__ASSIGNMENTS__
  114.      virtual SOMClass& somAssign(SOMClass&);
  115. #else
  116.      virtual SOMObject* somDefaultAssign(som3AssignCtrl*, SOMObject*);
  117. #endif
  118.  
  119.      
  120.      // Uses SOMMalloc to allocate storage for a new instance of the
  121.      // receiving class, and then calls somRenewNoInitNoZero to load the
  122.      // new object's method table pointer. Then somDefaultInit is called to
  123.      // initialize the new object.  Note: If the instance is a class object,
  124.      // somInitMIClass must then be invoked to declare parents and
  125.      // initialize the class's instance method table. Upon failure, NULL
  126.      // is returned.
  127.      virtual ::SOMObject* somNew();
  128.      
  129.      // Equivalent to somNew except that storage is not allocated.
  130.      // <obj> is taken as the address of the new object.
  131.      virtual ::SOMObject* somRenew(void* obj);
  132.      
  133.      // somInitClass is obsolete, and should no longer be used. The SOM 2.0
  134.      // kernel provides special handling for redispatch stubs in the case
  135.      // of SOM 1.0 classes, and use of this method is what tells the kernel
  136.      // that old-style redispatch stubs will be registered.
  137.      virtual void somInitClass(string className, ::SOMClass* parentClass, 
  138.                                long dataSize, long maxStaticMethods, 
  139.                                long majorVersion, long minorVersion);
  140.      
  141.      // This method is invoked when all of the static initialization for
  142.      // the class has been finished.  The default implementation simply
  143.      // registers the newly constructed class with the SOMClassMgr.
  144.      virtual void somClassReady();
  145.      
  146.      // This object's class name as a NULL terminated string.
  147.      virtual string somGetName();
  148.      
  149.      // Returns the parent class of self (along its "left-hand" derivation
  150.      // path), if one exists and NULL otherwise.
  151.      virtual ::SOMClass* somGetParent();
  152.      
  153.      // Returns 1 (true) if <self> is a descendent class of <aClassObj> and
  154.      // 0 (false) otherwise.  Note: a class object is considered to be
  155.      // descended itself for the purposes of this method.
  156.      virtual boolean somDescendedFrom(::SOMClass* aClassObj);
  157.      
  158.      // Returns 1 (true) if the implementation of this class is
  159.      // compatible with the specified major and minor version number and
  160.      // false (0) otherwise.  An implementation is compatible with the
  161.      // specified version numbers if it has the same major version number
  162.      // and a minor version number that is equal to or greater than
  163.      // <minorVersion>.    The major, minor version number pair (0,0) is
  164.      // considered to match any version.  This method is usually called
  165.      // immediately after creating the class object to verify that a
  166.      // dynamically loaded class definition is compatible with a using
  167.      // application.
  168.      virtual boolean somCheckVersion(long majorVersion, long minorVersion);
  169.      
  170.      // Finds the method procedure associated with <methodId> for this
  171.      // class and sets <m> to it.  1 (true) is returned when the
  172.      // method procedure is a static method and 0 (false) is returned
  173.      // when the method procedure is dynamic method.
  174.      //
  175.      // If the class does not support the specified method then
  176.      // <m> is set to NULL and the return value is meaningless.
  177.      //
  178.      virtual boolean somFindMethod(::somId methodId, ::somMethodPtr* m);
  179.      
  180.      // Just like <somFindMethod> except that if the method is not
  181.      // supported then an error is raised and execution is halted.
  182.      virtual boolean somFindMethodOk(::somId methodId, ::somMethodPtr* m);
  183.      
  184.      // Returns 1 (true) if the indicated method is supported by this
  185.      // class and 0 (false) otherwise.
  186.      virtual boolean somSupportsMethod(::somId mId);
  187.      
  188.      // The number of methods currently supported by this class,
  189.      // including inherited methods (both static and dynamic).
  190.      virtual long somGetNumMethods();
  191.      
  192.      // The total size of an instance of the receiving class.
  193.      virtual long somGetInstanceSize();
  194.      
  195.      // Returns the offset of instance data introduced by the receiver in
  196.      // an instance of the receiver. This method is obsolete and not useful in
  197.      // multiple-inheritance situations. The attribute somInstanceDataOffsets
  198.      // replaces this method.
  199.      virtual long somGetInstanceOffset();
  200.      
  201.      // The size in bytes of the instance data introduced by the receiving
  202.      // class.
  203.      virtual long somGetInstancePartSize();
  204.      
  205.      // Returns the index for the specified method. (A number that may
  206.      // change if any methods are added or deleted to this class object or
  207.      // any of its ancestors).  This number is the basis for other calls to
  208.      // get info about the method. Indexes start at 0. A -1 is returned if
  209.      // the method cannot be found.
  210.      virtual long somGetMethodIndex(::somId id);
  211.      
  212.      // The number of static methods that this class has.  Can
  213.      // be used by a child class when initializing its method table.
  214.      virtual long somGetNumStaticMethods();
  215.      
  216.      // Returns a list of the method tables of this class's parent classes in the
  217.      // specific format required by somParentNumResolve (for making parent method
  218.      // calls. The first entry on the list is actually the method table of the
  219.      // receiving class. Because the CClassData structure contains this list, the
  220.      // method table for any class with a CClassData structure is statically
  221.      // available. This method now returns a list because older SI emitters load
  222.      // CClassData.parentMtab with the result of this call, and the new runtime
  223.      // requires a list of classes in that position.
  224.      virtual ::somMethodTabs somGetPClsMtab();
  225.      
  226.      // A pointer to the method table used by instances of this class. This
  227.      // method was misnamed; it should have been called somGetInstanceMtab.
  228.      virtual ::somMethodTab* somGetClassMtab();
  229.      
  230.      // Adds the indicated method, creating and returning a new method token.
  231.      //
  232.      // <methodDescriptor> is the somId for an identifier that can be used
  233.      // to access signature information about the method from an interface
  234.      // repository.
  235.      //
  236.      // <method> is the actual method procedure for this method
  237.      //
  238.      // <redispatchStub> is a procedure with the same calling sequence as
  239.      // <method> that invokes somDispatch for the method.
  240.      //
  241.      // <applyStub> is a procedure used to support somApply.
  242.      virtual ::somMToken somAddStaticMethod(::somId methodId, 
  243.                                             ::somId methodDescriptor, 
  244.                                             ::somMethodPtr method, 
  245.                                             ::somMethodPtr redispatchStub, 
  246.                                             ::somMethodPtr applyStub);
  247.      
  248.      // This method can be used instead of <somAddStaticMethod> or
  249.      // <somAddDynamicMethod> when it is known that the class' parent
  250.      // class already supports this method.  This call does not require the
  251.      // method descriptor and stub methods that the others do.
  252.      virtual void somOverrideSMethod(::somId methodId, ::somMethodPtr method);
  253.      
  254.      // Adds the indicated method to the class's name lookup list.
  255.      // If this happens to override a static method then this operation is
  256.      // equivalent to <somOverrideSMethod> and the <methodDescriptor> and
  257.      // <applyStub> arguments are ignored (the overridden method's values
  258.      // will be used).
  259.      //
  260.      // <methodDescriptor> is the somId of a string describing the calling
  261.      // sequence to this method as described in <somcGetNthMethodInfo>
  262.      // defined in the SOMObject class definition.
  263.      //
  264.      // <method> is the actual method procedure for this method
  265.      //
  266.      // <applyStub> is a procedure that takes a standard variable argument
  267.      // list data structure applies it to its target object by calling
  268.      // <method> with arguments derived from the data structure.  Its
  269.      // calling sequence is the same as the calling sequence of the
  270.      // dispatch methods defined in SOMObject.  This stub is used in the
  271.      // support of the dispatch methods used in some classes.  In classes
  272.      // where the dispatch functions do not need such a function this
  273.      // parameter may be null.
  274.      virtual void somAddDynamicMethod(::somId methodId, ::somId methodDescriptor, 
  275.                                       ::somMethodPtr method, 
  276.                                       ::somMethodPtr applyStub);
  277.      
  278.      // Finds the indicated method, which must be a static method supported
  279.      // by this class, and returns a pointer to its method procedure.
  280.      // If the method is not supported by the receiver (as a static method
  281.      // or at all) then a NULL pointer is returned.
  282.      virtual ::somMethodPtr somFindSMethod(::somId methodId);
  283.      
  284.      // Uses <somFindSMethod>, and raises an error if the result is NULL.
  285.      virtual ::somMethodPtr somFindSMethodOk(::somId methodId);
  286.      
  287.      // Returns the method descriptor for the indicated method.    If
  288.      // this object does not support the indicated method then NULL is
  289.      // returned.
  290.      virtual ::somId somGetMethodDescriptor(::somId methodId);
  291.      
  292.      // Returns the id of the <n>th method if one exists and NULL
  293.      // otherwise.
  294.      //
  295.      // The ordering of the methods is unpredictable, but will not change
  296.      // unless some change is made to the class or one of its ancestor classes.
  297.      //
  298.      // See CORBA documentation for info on method descriptors.
  299.      virtual ::somId somGetNthMethodInfo(long n, ::somId* descriptor);
  300.      
  301.      // The class' pointer to the static <className>ClassData structure.
  302.      virtual void somSetClassData(::somClassDataStructure* cds);
  303.      virtual ::somClassDataStructure* somGetClassData();
  304.      
  305.      // Equivalent to somNew except that somDefaultInit is not called.
  306.      virtual ::SOMObject* somNewNoInit();
  307.      
  308.      // Equivalent to somRenew except that somDefaultInit is not called.
  309.      virtual ::SOMObject* somRenewNoInit(void* obj);
  310.      
  311.      // A data token that identifies the introduced portion of this class
  312.      // within itself or any derived class.  This token can be subsequently
  313.      // passed to the run-time somDataResolve function to locate the instance
  314.      // data introduced by this class in any object derived from this class.
  315.      virtual ::somDToken somGetInstanceToken();
  316.      
  317.      // Returns a data token that for the data member at offset
  318.      // "memberOffset" within the introduced portion of the class identified
  319.      // by instanceToken.  The instance token must have been obtained from a
  320.      // previous invocation of somGetInstanceToken.  The returned member
  321.      // token can be subsequently passed to the run-time somDataResolve
  322.      // function to locate the data member.
  323.      virtual ::somDToken somGetMemberToken(long memberOffset, 
  324.                                            ::somDToken instanceToken);
  325.      
  326.      // Sets the method descriptor given by <descriptor> for the method
  327.      // <methodId> into the method information kept by the receiving class.
  328.      // 1 (true) is returned if the method is supported by this object
  329.      // and 0 (false) otherwise.
  330.      virtual boolean somSetMethodDescriptor(::somId methodId, 
  331.                                             ::somId descriptor);
  332.      
  333.      // Sets the fields in the method descriptor block, <md>, to
  334.      // information about the method.  1 (true) is returned if the method is
  335.      // supported by this object and 0 (false) otherwise. The id field in
  336.      // the method descriptor block will also be set to NULL.
  337.      virtual boolean somGetMethodData(::somId methodId, ::somMethodData* md);
  338.      
  339.      // Overrides the method table pointers to point to the redispatch stubs.
  340.      // All the methods except somDispatch methods are overriden.
  341.      virtual void somOverrideMtab();
  342.      
  343.      // Returns the specified method's access token. This token can then
  344.      // be passed to method resolution routines, which use the token
  345.      // to select a method pointer from a method table.
  346.      virtual ::somMToken somGetMethodToken(::somId methodId);
  347.      
  348.      // The parent classes of self.
  349.      virtual SOMClassSequence somGetParents();
  350.      
  351.      // Returns a list of the method tables of this class's parent classes in the
  352.      // specific format required by somParentNumResolve (for making parent method
  353.      // calls. The first entry on the list is actually the method table of the
  354.      // receiving class. Because the CClassData structure contains this list, the
  355.      // method table for any class with a CClassData structure is statically
  356.      // available.
  357.      virtual ::somMethodTabs somGetPClsMtabs();
  358.      
  359.      // somInitMIClass implements the second phase of dynamic class creation:
  360.      // inheritance of interface and possibly implementation (instance
  361.      // variables) by suitable initialization of <self> (a class object).
  362.      //
  363.      // For somInitMIClass, the inherit_vars argument controls whether abstract
  364.      // or implementation inheritance is used. Inherit_vars is a 32 bit
  365.      // bit-vector. Implementation is inherited from parent i iff the bit
  366.      // 1<<i is on, or i>=32.
  367.      // On a class-by-class basis, for each class ancestor, implementation
  368.      // inheritance always takes precidence over abstract inheritance. This is
  369.      // necessary to guarantee that procedures supporting parent method calls
  370.      // (available on non-abstract parents) are always supported by parent
  371.      // instance variables.
  372.      //
  373.      // <className> is a string containing the class name. A copy is made, so
  374.      // the string may be freed upon return to the caller if this is desired.
  375.      //
  376.      // <parentClasses> is a SOMClassSequence containing pointers to the
  377.      // parent classes. somInitMIClass makes a copy of this, so it may
  378.      // be freed upon return to the caller if this is desired.
  379.      //
  380.      // <dataSize> is the space needed for the instance variables
  381.      // introduced by this class.
  382.      //
  383.      // <dataAlignment> specifies the desired byte alignment for instance
  384.      // data introduced by this class. A value of 0 selects a system-wide default;
  385.      // any other argument is taken as the desired byte alignment multiple. Thus,
  386.      // for example, even if a byte multiple of 8 is needed for double precision
  387.      // values on a given system (so 8 is the default), a class whose instance data
  388.      // doesn't require this can indicate otherwise. If A is the next memory
  389.      // address available for holding instance data, the address that will be
  390.      // used is A + (A mod byte-alignment).
  391.      //
  392.      // <maxStaticMethods> is the maximum number of static methods that will be
  393.      // added to the initialized class using addStaticMethod.
  394.      //
  395.      // <majorVersion> indicates the major version number for this
  396.      // implementation of the class definition, and <minorVersion>
  397.      // indicates the minor version number.
  398.      virtual void somInitMIClass(long inherit_vars, string className, 
  399.                                  SOMClassSequence* parentClasses, 
  400.                                  long dataSize, long dataAlignment, 
  401.                                  long maxStaticMethods, long majorVersion, 
  402.                                  long minorVersion);
  403.      
  404.      // Returns the class' major and minor version numbers in the corresponding
  405.      // output parameters.
  406.      virtual void somGetVersionNumbers(long* majorVersion, long* minorVersion);
  407.      
  408.      // Like <somFindSMethodOK>, but without restriction to static methods.
  409.      virtual ::somMethodPtr somLookupMethod(::somId methodId);
  410.      
  411.      // Equivalent to somRenew except that memory is not zeroed out.
  412.      virtual ::SOMObject* somRenewNoZero(void* obj);
  413.      
  414.      // The purpose of this method is to load an object's method table.
  415.      // The SOM API requires that somRenewNoInitNoZero always be
  416.      // called when creating a new object whose metaclass is not SOMClass.
  417.      // This is because metaclasses must be guaranteed that they can use
  418.      // somRenewNoInitNoZero to track object creation if this is desired.
  419.      virtual ::SOMObject* somRenewNoInitNoZero(void* obj);
  420.  
  421.      
  422.      // Allocates memory to hold an object and returns a pointer to this memory.
  423.      // This is a nonstatic method, and cannot be overridden. The default
  424.      // implementation calls SOMMalloc, but a class designer can specify a
  425.      // different implementation using the somallocate modifier in IDL. The
  426.      // allocator takes the same parameters as this method.
  427.      string somAllocate(long size);
  428.  
  429.      
  430.      // Zeros out the method table pointer stored in the word pointed to by
  431.      // memptr, and then deallocates the block of memory pointed to by memptr.
  432.      // This is a nonstatic method and cannot be overridden. The default
  433.      // deallocator called is SOMFree, but a class designer can specify a
  434.      // different deallocator using the somdeallocate modifier in IDL. The
  435.      // deallocator takes the same parameters as this method.
  436.      void somDeallocate(string memptr);
  437.      
  438.      // Returns a redispatch stub for the indicated method, if possible.
  439.      // If not possible (because a valid redispatch stub has not been
  440.      // registered, and there is insufficient information to dynamically
  441.      // construct one), then a NULL is returned.
  442.      virtual ::somMethodProc* somGetRdStub(::somId methodId);
  443.      
  444.      // loads *md with the method data associated with the the nth method,
  445.      // or NULL if there is no such method. Returns true is successful;
  446.      // false otherwise.
  447.      virtual boolean somGetNthMethodData(long n, ::somMethodData* md);
  448.      
  449.      // Loads a structure used to control calls to initializers.
  450.      // Computed when first requested (using the somDirectedInitClasses
  451.      // attribute) and then cached.
  452.      virtual ::somBooleanVector somGetInstanceInitMask(::somInitCtrl* ctrl);
  453.      
  454.      // Loads a structure used to control calls to somDestruct.
  455.      // Computed at the same time as somInstanceConstructionMask
  456.      virtual ::somBooleanVector somGetInstanceDestructionMask(::somDestructCtrl* ctrl);
  457.      
  458.      // if the receiving class either introduces or overrides the
  459.      // indicated method, then its somMethodPtr is returned, otherwise
  460.      // NULL is returned.
  461.      virtual ::somMethodPtr somDefinedMethod(::somMToken method);
  462.      
  463.      // Loads a structure used to control calls to assignment ops.
  464.      // Computed at the same time as somInstanceConstructionMask
  465.      virtual ::somBooleanVector somGetInstanceAssignmentMask(::somAssignCtrl* ctrl);
  466.      
  467.      // The alignment required for the instance data structure
  468.      // introduced by the receiving class.
  469.      long somDataAlignment;
  470.  
  471.      #pragma SOMAttribute(somDataAlignment, readonly, virtualaccessors)
  472.      
  473.      // The ancestors whose initializers the receiving
  474.      // class wants to directly invoke.
  475.      SOMClassSequence somDirectInitClasses;
  476.  
  477.      #pragma SOMAttribute(somDirectInitClasses, virtualaccessors, noset)
  478.      
  479.      // The memory allocation routine used by somAllocate. Provided in this
  480.      // form to support array allocation.
  481.      ::somMethodProc *somClassAllocate;
  482.  
  483.      #pragma SOMAttribute(somClassAllocate, readonly, virtualaccessors)
  484.      
  485.      // The memory allocation routine called by somDeallocate. Provided in
  486.      // this form to support array deallocation.
  487.      ::somMethodProc *somClassDeallocate;
  488.  
  489.      #pragma SOMAttribute(somClassDeallocate, readonly, virtualaccessors)
  490.      #pragma SOMReleaseOrder ( \
  491.                   "somNew", \
  492.                   "somRenew", \
  493.                   "somInitClass", \
  494.                   "somClassReady", \
  495.                   "somGetName", \
  496.                   "somGetParent", \
  497.                   "somDescendedFrom", \
  498.                   "somCheckVersion", \
  499.                   "somFindMethod", \
  500.                   "somFindMethodOk", \
  501.                   "somSupportsMethod", \
  502.                   "somGetNumMethods", \
  503.                   "somGetInstanceSize", \
  504.                   "somGetInstanceOffset", \
  505.                   "somGetInstancePartSize", \
  506.                   "somGetMethodIndex", \
  507.                   "somGetNumStaticMethods", \
  508.                   "somGetPClsMtab", \
  509.                   "somGetClassMtab", \
  510.                   "somAddStaticMethod", \
  511.                   "somOverrideSMethod", \
  512.                   "somAddDynamicMethod", \
  513.                   *, \
  514.                   *, \
  515.                   "somFindSMethod", \
  516.                   "somFindSMethodOk", \
  517.                   "somGetMethodDescriptor", \
  518.                   "somGetNthMethodInfo", \
  519.                   "somSetClassData", \
  520.                   "somGetClassData", \
  521.                   "somNewNoInit", \
  522.                   "somRenewNoInit", \
  523.                   "somGetInstanceToken", \
  524.                   "somGetMemberToken", \
  525.                   "somSetMethodDescriptor", \
  526.                   "somGetMethodData", \
  527.                   "somOverrideMtab", \
  528.                   "somGetMethodToken", \
  529.                   "somGetParents", \
  530.                   "somGetPClsMtabs", \
  531.                   "somInitMIClass", \
  532.                   "somGetVersionNumbers", \
  533.                   "somLookupMethod", \
  534.                   "_get_somInstanceDataOffsets", \
  535.                   "somRenewNoZero", \
  536.                   "somRenewNoInitNoZero", \
  537.                   "somAllocate", \
  538.                   "somDeallocate", \
  539.                   "somGetRdStub", \
  540.                   "somGetNthMethodData", \
  541.                   *, \
  542.                   *, \
  543.                   "_get_somDirectInitClasses", \
  544.                   "_set_somDirectInitClasses", \
  545.                   "somGetInstanceInitMask", \
  546.                   "somGetInstanceDestructionMask", \
  547.                   *, \
  548.                   *, \
  549.                   *, \
  550.                   *, \
  551.                   *, \
  552.                   "somDefinedMethod", \
  553.                   *, \
  554.                   *, \
  555.                   *, \
  556.                   *, \
  557.                   *, \
  558.                   *, \
  559.                   *, \
  560.                   *, \
  561.                   "_get_somDataAlignment", \
  562.                   "somGetInstanceAssignmentMask", \
  563.                   *, \
  564.                   *, \
  565.                   "_get_somClassAllocate", \
  566.                   "_get_somClassDeallocate")
  567. };
  568.  
  569.      #pragma SOMNonDTS(pop)
  570. /* End SOMClass */
  571. #endif /* _DTS_HH_INCLUDED_somcls */
  572.