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

  1. #ifndef _DTS_HH_INCLUDED_somobj
  2. #define _DTS_HH_INCLUDED_somobj
  3.  
  4. /* Start Interface SOMObject */
  5.  
  6. // This file was generated by the IBM "DirectToSOM" emitter for C++ (V1.116)
  7. // Generated at 02/22/96 12:05:56 
  8. // The efw file is version 1.57
  9.  
  10. #ifndef som3AssignCtrl
  11. #define som3AssignCtrl somAssignCtrl
  12. #endif
  13.  
  14. #include <somh.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_SOMObject_defined
  23. #define _IDL_SEQUENCE_SOMObject_defined
  24.      #pragma SOMAsDefault(on)
  25. class SOMObject;
  26.      #pragma SOMAsDefault(pop)
  27.      typedef struct {
  28.         unsigned long _maximum;
  29.     unsigned long _length;
  30.     SOMObject **_buffer;
  31.      } _IDL_SEQUENCE_SOMObject;
  32. #endif // _IDL_SEQUENCE_SOMObject_defined
  33. #ifndef _IDL_SEQUENCE_octet_defined
  34. #define _IDL_SEQUENCE_octet_defined
  35.      typedef struct {
  36.         unsigned long _maximum;
  37.     unsigned long _length;
  38.     octet *_buffer;
  39.      } _IDL_SEQUENCE_octet;
  40. #endif // _IDL_SEQUENCE_octet_defined
  41.      #pragma SOMNonDTS(on)
  42.      #pragma SOMAsDefault(on)
  43. class
  44. #if !(defined(SOM_SOMObject_Class_Source) || defined(SOM_DONT_IMPORT_CLASS_SOMObject))
  45. WIN32_DLLIMPORT
  46. #else
  47. WIN32_DLLEXPORT
  48. #endif
  49. SOMObject {
  50.  
  51. // This is the SOM root class, all SOM classes must be descended from
  52. // <SOMObject>. <SOMObject> has no instance data so there is no
  53. // per-instance cost to to being descended from it.
  54.      #pragma SOMClassName(*, "SOMObject")
  55.      #pragma SOMNoMangling(*)
  56.      #pragma SOMNonDTS(*)
  57.  
  58.      #pragma SOMClassVersion (SOMObject, 1, 4)
  59.      #pragma SOMCallstyle (oidl)
  60.      #pragma SOMAsDefault(off)
  61.  
  62.   public :
  63.      typedef /* seq<         0> */ _IDL_SEQUENCE_SOMObject SOMObjectSequence;
  64.      typedef /* seq<         0> */ _IDL_SEQUENCE_octet BooleanSequence;
  65.      typedef struct somObjectOffset {
  66.           ::SOMObject* obj;
  67.           long offset;
  68.      } somObjectOffset;
  69. #ifndef SOMObject__IDL_SEQUENCE_somObjectOffset_defined
  70. #define SOMObject__IDL_SEQUENCE_somObjectOffset_defined
  71.      struct somObjectOffset;
  72.      typedef struct {
  73.         unsigned long _maximum;
  74.     unsigned long _length;
  75.     somObjectOffset *_buffer;
  76.      } _IDL_SEQUENCE_somObjectOffset;
  77. #endif // SOMObject__IDL_SEQUENCE_somObjectOffset_defined 
  78.      typedef /* seq<         0> */ _IDL_SEQUENCE_somObjectOffset somObjectOffsets;
  79.      #pragma SOMAsDefault(pop)
  80.      SOMObject();
  81.      SOMObject(SOMObject&);
  82.      SOMObject(const SOMObject&);
  83.      SOMObject(volatile SOMObject&);
  84.      SOMObject(const volatile SOMObject&);
  85.      virtual ~SOMObject();
  86. #ifdef __EXTENDED__SOM__ASSIGNMENTS__
  87.      virtual SOMObject& somAssign(SOMObject&);
  88.      virtual SOMObject& somAssign(const SOMObject&);
  89.      virtual SOMObject& somAssign(volatile SOMObject&);
  90.      virtual SOMObject& somAssign(const volatile SOMObject&);
  91. #else
  92.      virtual SOMObject* somDefaultAssign(som3AssignCtrl*, SOMObject*);
  93.      virtual SOMObject* somDefaultConstAssign(som3AssignCtrl*, const SOMObject*);
  94.      virtual SOMObject* somDefaultVAssign(som3AssignCtrl*, volatile SOMObject*);
  95.      virtual SOMObject* somDefaultConstVAssign(som3AssignCtrl*, const volatile SOMObject*);
  96. #endif
  97.  
  98.      
  99.      // Obsolete but still supported. Override somDefaultInit instead of somInit.
  100.      virtual void somInit();
  101.      
  102.      // Obsolete but still supported. Override somDestruct instead of somUninit.
  103.      virtual void somUninit();
  104.      
  105.      // Obsolete but still supported. Use somDestruct with a nonzero
  106.      // <doFree> instead.
  107.      virtual void somFree();
  108.      
  109.      // Return the name of the receiver's class.
  110.      virtual string somGetClassName();
  111.      
  112.      // Return the receiver's class.
  113.      virtual ::SOMClass* somGetClass();
  114.      
  115.      // Returns 1 (true) if the receiver responds to methods
  116.      // introduced by <aClassObj>, and 0 (false) otherwise.
  117.      virtual boolean somIsA(::SOMClass* aClassObj);
  118.      
  119.      // Returns 1 (true) if the indicated method can be invoked
  120.      // on the receiver and 0 (false) otherwise.
  121.      virtual boolean somRespondsTo(::somId mId);
  122.      
  123.      // Returns 1 (true) if the receiver is an instance of
  124.      // <aClassObj> and 0 (false) otherwise.
  125.      virtual boolean somIsInstanceOf(::SOMClass* aClassObj);
  126.      
  127.      // Return the size of the receiver.
  128.      virtual long somGetSize();
  129.      
  130.      // Uses <SOMOutCharRoutine> to write a detailed description of this object
  131.      // and its current state.
  132.      //
  133.      // <level> indicates the nesting level for describing compound objects
  134.      // it must be greater than or equal to zero.  All lines in the
  135.      // description will be preceeded by <2*level> spaces.
  136.      //
  137.      // This routine only actually writes the data that concerns the object
  138.      // as a whole, such as class, and uses <somDumpSelfInt> to describe
  139.      // the object's current state.  This approach allows readable
  140.      // descriptions of compound objects to be constructed.
  141.      //
  142.      // Generally it is not necessary to override this method, if it is
  143.      // overriden it generally must be completely replaced.
  144.      virtual void somDumpSelf(long level);
  145.      
  146.      // Uses <SOMOutCharRoutine> to write in the current state of this object.
  147.      // Generally this method will need to be overridden.  When overriding
  148.      // it, begin by calling the parent class form of this method and then
  149.      // write in a description of your class's instance data. This will
  150.      // result in a description of all the object's instance data going
  151.      // from its root ancestor class to its specific class.
  152.      virtual void somDumpSelfInt(long level);
  153.      
  154.      // Uses <SOMOutCharRoutine> to write a brief string with identifying
  155.      // information about this object.  The default implementation just gives
  156.      // the object's class name and its address in memory.
  157.      // <self> is returned.
  158.      virtual ::SOMObject* somPrintSelf();
  159.      
  160.      // This method provides a generic, class-specific dispatch mechanism.
  161.      // It accepts as input <retValue> a pointer to the memory area to be
  162.      // loaded with the result of dispatching the method indicated by
  163.      // <methodId> using the arguments in <ap>. <ap> contains the object
  164.      // on which the method is to be invoked as the first argument.
  165.      virtual boolean somDispatch(::somToken* retValue, ::somId methodId, 
  166.                                  ::va_list ap);
  167.      
  168.      // Like somDispatch, but method resolution for static methods is done
  169.      // according to the clsObj instance method table.
  170.      virtual boolean somClassDispatch(::SOMClass* clsObj, ::somToken* retValue, 
  171.                                       ::somId methodId, ::va_list ap);
  172.      
  173.      // cast the receiving object to cls (which must be an ancestor of the
  174.      // objects true class. Returns true on success.
  175.      virtual boolean somCastObj(::SOMClass* cls);
  176.      
  177.      // reset an object to its true class. Returns true always.
  178.      virtual boolean somResetObj();
  179.      #pragma SOMReleaseOrder ( \
  180.                   "somInit", \
  181.                   "somUninit", \
  182.                   "somFree", \
  183.                   SOMObject(volatile SOMObject&), \
  184.                   "somGetClassName", \
  185.                   "somGetClass", \
  186.                   "somIsA", \
  187.                   "somRespondsTo", \
  188.                   "somIsInstanceOf", \
  189.                   "somGetSize", \
  190.                   "somDumpSelf", \
  191.                   "somDumpSelfInt", \
  192.                   "somPrintSelf", \
  193.                   SOMObject(const volatile SOMObject&), \
  194.                   *, \
  195.                   *, \
  196.                   *, \
  197.                   *, \
  198.                   "somDispatch", \
  199.                   "somClassDispatch", \
  200.                   "somCastObj", \
  201.                   "somResetObj", \
  202.                   SOMObject(), \
  203.                   SOMObject::~SOMObject(), \
  204.                   *, \
  205.                   *, \
  206.                   SOMObject(SOMObject&), \
  207.                   SOMObject(const SOMObject&), \
  208.                   "somDefaultAssign", \
  209.                   "somDefaultConstAssign", \
  210.                   "somDefaultVAssign", \
  211.                   "somDefaultConstVAssign")
  212. };
  213.  
  214.      #pragma SOMAsDefault(pop)
  215.      #pragma SOMNonDTS(pop)
  216. /* End SOMObject */
  217. #endif /* _DTS_HH_INCLUDED_somobj */
  218.