home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / sccommon.idl < prev    next >
Encoding:
Text File  |  1996-02-21  |  4.2 KB  |  123 lines

  1. //
  2. //   COMPONENT_NAME: some
  3. //
  4. //   ORIGINS: 27
  5. //
  6. //
  7. //   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  8. //   All Rights Reserved
  9. //   Licensed Materials - Property of IBM
  10. //   US Government Users Restricted Rights - Use, duplication or
  11. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  12. //
  13.  
  14. #ifndef sccommon_idl
  15. #define sccommon_idl
  16.  
  17. #include <scentry.idl>
  18. interface SOMTTypedefEntryC;
  19.  
  20. enum somtVisibilityT { somtInternalVE, somtPublicVE, somtPrivateVE };
  21. interface SOMTCommonEntryC : SOMTEntryC
  22.  
  23. // This class defines a number of methods and attributes that are
  24. // common to <SOMTMethodEntry>, <SOMTDataEntry>, and
  25. // <SOMTParameterEntry>.  No entries of this type will actually
  26. // be found in the entry graph, instead they will all be one of
  27. // the types mentioned above.
  28. // Exception: entries whose somtElementType is SOMTTypedefBE, which
  29. // represent a reference to a user-defined type, are instance of this class.
  30.  
  31. {
  32.  
  33.   readonly attribute SOMTEntryC somtTypeObj;
  34.  
  35.   // The object representing the base type of the entry.
  36.   // This does not include pointer stars or array declarators.
  37.  
  38.   readonly attribute string somtPtrs;
  39.  
  40.   // The string of stars associated with the entry's type.
  41.   // For example, an object of type "foo" would have somtPtrs = NULL,
  42.   // type "foo *" would have somtPtrs = "*", type
  43.   // "foo **" would have somtPtrs = "**", etc.
  44.  
  45.   readonly attribute string somtArrayDimsString;
  46.  
  47.   // Array dimensions in string form.
  48.  
  49.   unsigned long somtGetFirstArrayDimension();
  50.   // The first array dimension, for items of type array.
  51.   // Zero indicates that the item is not an array.
  52.  
  53.   unsigned long somtGetNextArrayDimension();
  54.   // The next array dimension, for items of type array,
  55.   // relative to the previous call to this method or to
  56.   // somtGetFirstArrayDimension.  Zero indicates no more dimensions.
  57.  
  58.   readonly attribute string somtSourceText;
  59.  
  60.   // The un-parsed source text for this entry, with leading and
  61.   // trailing white space removed.  For attribute/typedef declarators
  62.   // and for user-defined types, this attribute only provides the
  63.   // source text for the entry's name.  For methods, arguments, 
  64.   // and instance variables, however, this attribute provides the 
  65.   // full definition.
  66.  
  67.   readonly attribute string somtType;
  68.  
  69.   // The IDL type for this entry in string form. For methods this is the
  70.   // return type.  For data or parameters this is the type of the data
  71.   // item or parameter. For user-defined types, this is the type specification.
  72.   // It is of the form:   <typename><pointer-stars> <array-declarators>
  73.  
  74.   readonly attribute somtVisibilityT somtVisibility;
  75.  
  76.   // The visibility of this entry.  Note: the visibility of
  77.   // parameter entries will always be public, and methods can never be
  78.   // internal.
  79.  
  80.   boolean somtIsArray(out long size);
  81.  
  82.   // Returns 1 (true) if the type involves an array.  When the type
  83.   // involves an array then <size> is set to be the size of the
  84.   // array.
  85.  
  86.   boolean somtIsPointer();
  87.  
  88.   // Returns 1 (true) if the type involves a pointer, and 0 (false)
  89.   // otherwise
  90.  
  91. #ifdef __SOMIDL__
  92.   implementation {
  93.     releaseorder: _get_somtSourceText, _get_somtType, 
  94.                   _get_somtVisibility, somtIsArray, 
  95.                   somtIsPointer, somtIsArrayDominant, 
  96.                   _get_somtTypeObj, _get_somtPtrs, 
  97.                   _get_somtArrayDimsString, somtGetFirstArrayDimension, 
  98.                   somtGetNextArrayDimension;
  99.  
  100.     majorversion = 2;
  101.     minorversion = 1;
  102.     filestem = sccommon;
  103.     callstyle = oidl;
  104.  
  105.     passthru C_h = "typedef enum somtVisibilityT { somtInternalVE, somtPublicVE, somtPrivateVE } somtVisibilityT;";
  106.     passthru C_xh = "typedef enum somtVisibilityT { somtInternalVE, somtPublicVE, somtPrivateVE } somtVisibilityT;";
  107.     passthru C_hh = "typedef enum somtVisibilityT { somtInternalVE, somtPublicVE, somtPrivateVE } somtVisibilityT;";
  108.  
  109.     somDumpSelfInt: override;
  110.     somtSetSymbolsOnEntry: override;
  111.  
  112.     somtTypeObj: nodata;
  113.     somtPtrs: nodata;
  114.     somtArrayDimsString: nodata;
  115.     somtType: nodata;
  116.     somtVisibility: nodata;
  117.  
  118.  
  119.   };
  120. #endif /* __SOMIDL__ */
  121. };
  122. #endif  /* sccommon_idl */
  123.