source: trunk/Lucide/SOURCE/sominc/somobj.xh @ 88

Last change on this file since 88 was 88, checked in by Eugene Romanenko, 15 years ago

UI improvements, save files, ability to compile plugins with gcc, saveAs for djvu plugin, djvu plugin compiled with gcc, get rid of ddjvuapi.dll

File size: 24.4 KB
Line 
1
2/*
3 * This file was generated by the SOM Compiler.
4 * FileName: somobj.xh.
5 * Generated using:
6 *     SOM Precompiler somipc: 2.29.1.17
7 *     SOM Emitter emitxh: 2.47
8 */
9
10#ifndef SOM_SOMObject_xh
11#define SOM_SOMObject_xh
12
13class SOMObject;
14
15/*
16 *  This is the SOM root class, all SOM classes must be descended from
17 *  <SOMObject>. <SOMObject> has no instance data so there is no
18 *  per-instance cost to to being descended from it.
19 */
20
21#define SOMObject_MajorVersion 1
22#define SOMObject_MinorVersion 5
23
24/* C++ SOM defs */
25#include <som.xh>
26
27#ifndef SOMObject_API
28#define SOMObject_API
29/*
30 * -- The Class API
31 */
32
33/*
34 * Start of bindings for IDL types
35 */
36
37class SOMClass;
38class SOMObject;
39#ifndef _IDL_SEQUENCE_SOMObject_defined
40#define _IDL_SEQUENCE_SOMObject_defined
41typedef struct {
42    unsigned long _maximum;
43    unsigned long _length;
44    SOMObject **_buffer;
45} _IDL_SEQUENCE_SOMObject;
46#endif /* _IDL_SEQUENCE_SOMObject_defined */
47typedef
48_IDL_SEQUENCE_SOMObject SOMObject_SOMObjectSequence;
49/*
50 *  a sequence of SOM Objects
51 */
52
53#ifndef _IDL_SEQUENCE_octet_defined
54#define _IDL_SEQUENCE_octet_defined
55typedef struct {
56    unsigned long _maximum;
57    unsigned long _length;
58    octet *_buffer;
59} _IDL_SEQUENCE_octet;
60#endif /* _IDL_SEQUENCE_octet_defined */
61typedef
62_IDL_SEQUENCE_octet SOMObject_BooleanSequence;
63/*
64 *  a sequence of booleans.
65 */
66
67typedef
68struct SOMObject_somObjectOffset {
69SOMObject* obj;
70long  offset;
71} SOMObject_somObjectOffset;
72/*
73 *  a structure to describe an object-related offset
74 */
75
76struct SOMObject_somObjectOffset;
77#ifndef _IDL_SEQUENCE_SOMObject_somObjectOffset_defined
78#define _IDL_SEQUENCE_SOMObject_somObjectOffset_defined
79typedef struct {
80    unsigned long _maximum;
81    unsigned long _length;
82    struct SOMObject_somObjectOffset *_buffer;
83} _IDL_SEQUENCE_SOMObject_somObjectOffset;
84#endif /* _IDL_SEQUENCE_SOMObject_somObjectOffset_defined */
85typedef
86_IDL_SEQUENCE_SOMObject_somObjectOffset SOMObject_somObjectOffsets;
87/*
88 *  a sequence of object-related offsets
89 */
90
91
92#ifndef SOM_DONT_USE_SHORT_NAMES
93
94#ifndef SOM_DONT_USE_SHORT_NAMES
95#ifndef SOMTGD_SOMObjectSequence
96    #ifdef SOMObjectSequence
97        #undef SOMObjectSequence
98        #define SOMTGD_SOMObjectSequence 1
99    #else
100        #define SOMObjectSequence SOMObject_SOMObjectSequence
101    #endif /* SOMObjectSequence */
102#endif /* SOMTGD_SOMObjectSequence */
103#endif /* SOM_DONT_USE_SHORT_NAMES */
104
105#ifndef SOM_DONT_USE_SHORT_NAMES
106#ifndef SOMTGD_BooleanSequence
107    #ifdef BooleanSequence
108        #undef BooleanSequence
109        #define SOMTGD_BooleanSequence 1
110    #else
111        #define BooleanSequence SOMObject_BooleanSequence
112    #endif /* BooleanSequence */
113#endif /* SOMTGD_BooleanSequence */
114#endif /* SOM_DONT_USE_SHORT_NAMES */
115#ifndef SOMTGD_somObjectOffset
116    #ifdef somObjectOffset
117        #undef somObjectOffset
118        #define SOMTGD_somObjectOffset 1
119    #else
120        #define somObjectOffset SOMObject_somObjectOffset
121    #endif /* somObjectOffset */
122#endif /* SOMTGD_somObjectOffset */
123#ifndef SOMTGD__IDL_SEQUENCE_somObjectOffset
124    #ifdef _IDL_SEQUENCE_somObjectOffset
125        #undef _IDL_SEQUENCE_somObjectOffset
126        #define SOMTGD__IDL_SEQUENCE_somObjectOffset 1
127    #else
128        #define _IDL_SEQUENCE_somObjectOffset _IDL_SEQUENCE_SOMObject_somObjectOffset
129    #endif /* _IDL_SEQUENCE_somObjectOffset */
130#endif /* SOMTGD__IDL_SEQUENCE_somObjectOffset */
131
132#ifndef SOM_DONT_USE_SHORT_NAMES
133#ifndef SOMTGD_somObjectOffsets
134    #ifdef somObjectOffsets
135        #undef somObjectOffsets
136        #define SOMTGD_somObjectOffsets 1
137    #else
138        #define somObjectOffsets SOMObject_somObjectOffsets
139    #endif /* somObjectOffsets */
140#endif /* SOMTGD_somObjectOffsets */
141#endif /* SOM_DONT_USE_SHORT_NAMES */
142#endif /* SOM_DONT_USE_SHORT_NAMES */
143
144/*
145 * End of bindings for IDL types.
146 */
147
148/* A procedure to create the SOMObject Class */
149SOMEXTERN SOMClass * SOMLINK SOMObjectNewClass(
150                integer4 majorVersion,
151                integer4 minorVersion);
152
153/* The API to the SOMObject class object, and the methods it introduces. */
154SOMEXTERN struct SOMObjectClassDataStructure {
155        SOMClass *classObject;
156        somMToken somInit;
157        somMToken somUninit;
158        somMToken somFree;
159        somMToken somDefaultVCopyInit;
160        somMToken somGetClassName;
161        somMToken somGetClass;
162        somMToken somIsA;
163        somMToken somRespondsTo;
164        somMToken somIsInstanceOf;
165        somMToken somGetSize;
166        somMToken somDumpSelf;
167        somMToken somDumpSelfInt;
168        somMToken somPrintSelf;
169        somMToken somDefaultConstVCopyInit;
170        somMToken somDispatchV;
171        somMToken somDispatchL;
172        somMToken somDispatchA;
173        somMToken somDispatchD;
174        somMToken somDispatch;
175        somMToken somClassDispatch;
176        somMToken somCastObj;
177        somMToken somResetObj;
178        somMToken somDefaultInit;
179        somMToken somDestruct;
180        somMToken somPrivate1;
181        somMToken somPrivate2;
182        somMToken somDefaultCopyInit;
183        somMToken somDefaultConstCopyInit;
184        somMToken somDefaultAssign;
185        somMToken somDefaultConstAssign;
186        somMToken somDefaultVAssign;
187        somMToken somDefaultConstVAssign;
188} SOMDLINK SOMObjectClassData;
189#define _SOMObject SOMObjectClassData.classObject
190
191/* The API to parentMtabs for SOMObject, and the instance data it introduces. */
192SOMEXTERN struct SOMObjectCClassDataStructure {
193        somMethodTabs parentMtab;
194        somDToken              instanceDataToken;
195} SOMDLINK SOMObjectCClassData;
196
197/*
198 * -- Typedefs for SOMObject Method Procedures
199 */
200SOMEXTERNF {
201typedef void   SOMLINK somTP_SOMObject_somDefaultInit(SOMObject *somSelf,
202                som3InitCtrl* ctrl);
203typedef somTP_SOMObject_somDefaultInit *somTD_SOMObject_somDefaultInit;
204typedef void   SOMLINK somTP_SOMObject_somDestruct(SOMObject *somSelf,
205                octet doFree,
206                som3DestructCtrl* ctrl);
207typedef somTP_SOMObject_somDestruct *somTD_SOMObject_somDestruct;
208typedef void   SOMLINK somTP_SOMObject_somDefaultCopyInit(SOMObject *somSelf,
209                som3InitCtrl* ctrl,
210                SOMObject* fromObj);
211typedef somTP_SOMObject_somDefaultCopyInit *somTD_SOMObject_somDefaultCopyInit;
212typedef SOMObject*   SOMLINK somTP_SOMObject_somDefaultAssign(SOMObject *somSelf,
213                som3AssignCtrl* ctrl,
214                SOMObject* fromObj);
215typedef somTP_SOMObject_somDefaultAssign *somTD_SOMObject_somDefaultAssign;
216typedef void   SOMLINK somTP_SOMObject_somDefaultConstCopyInit(SOMObject *somSelf,
217                som3InitCtrl* ctrl,
218                SOMObject* fromObj);
219typedef somTP_SOMObject_somDefaultConstCopyInit *somTD_SOMObject_somDefaultConstCopyInit;
220typedef void   SOMLINK somTP_SOMObject_somDefaultVCopyInit(SOMObject *somSelf,
221                som3InitCtrl* ctrl,
222                SOMObject* fromObj);
223typedef somTP_SOMObject_somDefaultVCopyInit *somTD_SOMObject_somDefaultVCopyInit;
224typedef void   SOMLINK somTP_SOMObject_somDefaultConstVCopyInit(SOMObject *somSelf,
225                som3InitCtrl* ctrl,
226                SOMObject* fromObj);
227typedef somTP_SOMObject_somDefaultConstVCopyInit *somTD_SOMObject_somDefaultConstVCopyInit;
228typedef SOMObject*   SOMLINK somTP_SOMObject_somDefaultConstAssign(SOMObject *somSelf,
229                som3AssignCtrl* ctrl,
230                SOMObject* fromObj);
231typedef somTP_SOMObject_somDefaultConstAssign *somTD_SOMObject_somDefaultConstAssign;
232typedef SOMObject*   SOMLINK somTP_SOMObject_somDefaultVAssign(SOMObject *somSelf,
233                som3AssignCtrl* ctrl,
234                SOMObject* fromObj);
235typedef somTP_SOMObject_somDefaultVAssign *somTD_SOMObject_somDefaultVAssign;
236typedef SOMObject*   SOMLINK somTP_SOMObject_somDefaultConstVAssign(SOMObject *somSelf,
237                som3AssignCtrl* ctrl,
238                SOMObject* fromObj);
239typedef somTP_SOMObject_somDefaultConstVAssign *somTD_SOMObject_somDefaultConstVAssign;
240typedef void   SOMLINK somTP_SOMObject_somInit(SOMObject *somSelf);
241typedef somTP_SOMObject_somInit *somTD_SOMObject_somInit;
242typedef void   SOMLINK somTP_SOMObject_somFree(SOMObject *somSelf);
243typedef somTP_SOMObject_somFree *somTD_SOMObject_somFree;
244typedef void   SOMLINK somTP_SOMObject_somUninit(SOMObject *somSelf);
245typedef somTP_SOMObject_somUninit *somTD_SOMObject_somUninit;
246typedef SOMClass*   SOMLINK somTP_SOMObject_somGetClass(SOMObject *somSelf);
247typedef somTP_SOMObject_somGetClass *somTD_SOMObject_somGetClass;
248typedef string   SOMLINK somTP_SOMObject_somGetClassName(SOMObject *somSelf);
249typedef somTP_SOMObject_somGetClassName *somTD_SOMObject_somGetClassName;
250typedef long   SOMLINK somTP_SOMObject_somGetSize(SOMObject *somSelf);
251typedef somTP_SOMObject_somGetSize *somTD_SOMObject_somGetSize;
252typedef boolean   SOMLINK somTP_SOMObject_somIsA(SOMObject *somSelf,
253                SOMClass* aClassObj);
254typedef somTP_SOMObject_somIsA *somTD_SOMObject_somIsA;
255typedef boolean   SOMLINK somTP_SOMObject_somIsInstanceOf(SOMObject *somSelf,
256                SOMClass* aClassObj);
257typedef somTP_SOMObject_somIsInstanceOf *somTD_SOMObject_somIsInstanceOf;
258typedef boolean   SOMLINK somTP_SOMObject_somRespondsTo(SOMObject *somSelf,
259                somId mId);
260typedef somTP_SOMObject_somRespondsTo *somTD_SOMObject_somRespondsTo;
261typedef boolean   SOMLINK somTP_SOMObject_somDispatch(SOMObject *somSelf,
262                somToken* retValue,
263                somId methodId,
264                va_list ap);
265typedef somTP_SOMObject_somDispatch *somTD_SOMObject_somDispatch;
266typedef boolean   SOMLINK somTP_SOMObject_somClassDispatch(SOMObject *somSelf,
267                SOMClass* clsObj,
268                somToken* retValue,
269                somId methodId,
270                va_list ap);
271typedef somTP_SOMObject_somClassDispatch *somTD_SOMObject_somClassDispatch;
272typedef boolean   SOMLINK somTP_SOMObject_somCastObj(SOMObject *somSelf,
273                SOMClass* cls);
274typedef somTP_SOMObject_somCastObj *somTD_SOMObject_somCastObj;
275typedef boolean   SOMLINK somTP_SOMObject_somResetObj(SOMObject *somSelf);
276typedef somTP_SOMObject_somResetObj *somTD_SOMObject_somResetObj;
277typedef void   SOMLINK somTP_SOMObject_somDispatchV(SOMObject *somSelf,
278                somId methodId,
279                somId descriptor,
280                va_list ap);
281typedef somTP_SOMObject_somDispatchV *somTD_SOMObject_somDispatchV;
282typedef long   SOMLINK somTP_SOMObject_somDispatchL(SOMObject *somSelf,
283                somId methodId,
284                somId descriptor,
285                va_list ap);
286typedef somTP_SOMObject_somDispatchL *somTD_SOMObject_somDispatchL;
287typedef void*   SOMLINK somTP_SOMObject_somDispatchA(SOMObject *somSelf,
288                somId methodId,
289                somId descriptor,
290                va_list ap);
291typedef somTP_SOMObject_somDispatchA *somTD_SOMObject_somDispatchA;
292typedef double   SOMLINK somTP_SOMObject_somDispatchD(SOMObject *somSelf,
293                somId methodId,
294                somId descriptor,
295                va_list ap);
296typedef somTP_SOMObject_somDispatchD *somTD_SOMObject_somDispatchD;
297typedef SOMObject*   SOMLINK somTP_SOMObject_somPrintSelf(SOMObject *somSelf);
298typedef somTP_SOMObject_somPrintSelf *somTD_SOMObject_somPrintSelf;
299typedef void   SOMLINK somTP_SOMObject_somDumpSelf(SOMObject *somSelf,
300                long level);
301typedef somTP_SOMObject_somDumpSelf *somTD_SOMObject_somDumpSelf;
302typedef void   SOMLINK somTP_SOMObject_somDumpSelfInt(SOMObject *somSelf,
303                long level);
304typedef somTP_SOMObject_somDumpSelfInt *somTD_SOMObject_somDumpSelfInt;
305}
306
307#endif /* SOMObject_API */
308
309
310/*
311 * -- This emitter treats Method Tokens as Thunks by default.
312 * -- Use the sc modifier "nothunks" to change this default
313 */
314#undef somresolve_
315#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
316// special somclass api for use in SOMObject.xh
317#include <somcls.api>
318
319/*
320 * -- The C++ Wrapper Class for SOMObject
321 */
322
323class SOMObject
324{
325/*
326 *  This is the SOM root class, all SOM classes must be descended from
327 *  <SOMObject>. <SOMObject> has no instance data so there is no
328 *  per-instance cost to to being descended from it.
329 */
330public:
331
332// SOMObject::new creates the class object if necessary, and then uses somNewNoInit
333// to allocate memory and create the object. Initialization is in ctors.
334void *operator new(size_t)
335{
336   if (!_SOMObject) SOMObjectNewClass(SOMObject_MajorVersion,SOMObject_MinorVersion);
337   return (void*)
338      SOM_Resolve(_SOMObject,SOMClass,somNewNoInit)
339         ((SOMClass *)((void*)_SOMObject));
340}
341
342// SOMObject::delete uses somDestruct.
343void operator delete(void * obj)
344{
345   if (obj && *(void**)obj) {
346      SOM_Resolve(obj,SOMObject,somFree)
347         ((SOMObject*)obj);
348   }
349}
350
351SOMObject& operator=(SOMObject& fromObj)
352{
353   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
354   return *this;
355}
356
357SOMObject()
358{
359}
360
361SOMObject(SOMObject* fromObj)
362{
363}
364
365#ifdef __IBMCPP__
366#pragma info(nocnv,nopar)
367#endif
368SOMObject(const SOMObject* fromObj)
369{
370}
371#ifdef __IBMCPP__
372#pragma info(restore)
373#endif
374
375
376/* initializer method: somDefaultInit */
377void   somDefaultInit(som3InitCtrl* ctrl)
378{
379/*
380 *  A default initializer for a SOM object. Passing a null ctrl
381 *  indicates to the receiver that its class is the class of the
382 *  object being initialized, whereby the initializer will determine
383 *  an appropriate control structure.
384 */
385   SOM_ResolveD(this,SOMObject,SOMObject,somDefaultInit)
386        (this,ctrl);
387}
388
389
390/* method: somDestruct */
391void   somDestruct(octet doFree,
392                som3DestructCtrl* ctrl)
393{
394/*
395 *  The default destructor for a SOM object. A nonzero <doFree>
396 *  indicates that the object storage should be freed by the
397 *  object's class (via somDeallocate) after uninitialization.
398 *  As with somDefaultInit, a null ctrl can be passed.
399 */
400   SOM_ResolveD(this,SOMObject,SOMObject,somDestruct)
401        (this,doFree,ctrl);
402}
403
404
405/* initializer method: somDefaultCopyInit */
406void   somDefaultCopyInit(som3InitCtrl* ctrl,
407                SOMObject* fromObj)
408{
409/*
410 *  A default copy constructor. Use this to make copies of objects for
411 *  calling methods with "by-value" argument semantics.
412 */
413   SOM_ResolveD(this,SOMObject,SOMObject,somDefaultCopyInit)
414        (this,ctrl,fromObj);
415}
416
417
418/* method: somDefaultAssign */
419SOMObject*  somDefaultAssign(som3AssignCtrl* ctrl,
420                SOMObject* fromObj)
421{
422/*
423 *  A default assignment operator. Use this to "assign" the state of one
424 *  object to another.
425 */
426   return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultAssign)
427        (this,ctrl,fromObj);
428}
429
430
431/* initializer method: somDefaultConstCopyInit */
432void   somDefaultConstCopyInit(som3InitCtrl* ctrl,
433                SOMObject* fromObj)
434{
435/*
436 *  A default copy constructor that uses a const fromObj.
437 */
438   SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstCopyInit)
439        (this,ctrl,fromObj);
440}
441
442
443/* initializer method: somDefaultVCopyInit */
444void   somDefaultVCopyInit(som3InitCtrl* ctrl,
445                SOMObject* fromObj)
446{
447/*
448 *  A default copy constructor that uses a volatile fromObj.
449 */
450   SOM_ResolveD(this,SOMObject,SOMObject,somDefaultVCopyInit)
451        (this,ctrl,fromObj);
452}
453
454
455/* initializer method: somDefaultConstVCopyInit */
456void   somDefaultConstVCopyInit(som3InitCtrl* ctrl,
457                SOMObject* fromObj)
458{
459/*
460 *  A default copy constructor that uses a const volatile fromObj.
461 */
462   SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstVCopyInit)
463        (this,ctrl,fromObj);
464}
465
466
467/* method: somDefaultConstAssign */
468SOMObject*  somDefaultConstAssign(som3AssignCtrl* ctrl,
469                SOMObject* fromObj)
470{
471/*
472 *  A default assignment operator that uses a const fromObj.
473 */
474   return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstAssign)
475        (this,ctrl,fromObj);
476}
477
478
479/* method: somDefaultVAssign */
480SOMObject*  somDefaultVAssign(som3AssignCtrl* ctrl,
481                SOMObject* fromObj)
482{
483/*
484 *  A default assignment operator that uses a volatile fromObj.
485 */
486   return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultVAssign)
487        (this,ctrl,fromObj);
488}
489
490
491/* method: somDefaultConstVAssign */
492SOMObject*  somDefaultConstVAssign(som3AssignCtrl* ctrl,
493                SOMObject* fromObj)
494{
495/*
496 *  A default assignment operator that uses a const volatile fromObj.
497 */
498   return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstVAssign)
499        (this,ctrl,fromObj);
500}
501
502
503/* method: somInit */
504void   somInit()
505{
506/*
507 *  Obsolete but still supported. Override somDefaultInit instead of somInit.
508 */
509   SOM_ResolveD(this,SOMObject,SOMObject,somInit)
510        (this);
511}
512
513
514/* method: somFree */
515void   somFree()
516{
517/*
518 *  Use as directed by framework implementations.
519 */
520   SOM_ResolveD(this,SOMObject,SOMObject,somFree)
521        (this);
522}
523
524
525/* method: somUninit */
526void   somUninit()
527{
528/*
529 *  Obsolete but still supported. Override somDestruct instead of somUninit.
530 */
531   SOM_ResolveD(this,SOMObject,SOMObject,somUninit)
532        (this);
533}
534
535
536/* method: somGetClass */
537SOMClass*   somGetClass()
538{
539/*
540 *  Return the receiver's class.
541 */
542   return SOM_ResolveD(this,SOMObject,SOMObject,somGetClass)
543        (this);
544}
545
546
547/* method: somGetClassName */
548string   somGetClassName()
549{
550/*
551 *  Return the name of the receiver's class.
552 */
553   return SOM_ResolveD(this,SOMObject,SOMObject,somGetClassName)
554        (this);
555}
556
557
558/* method: somGetSize */
559long   somGetSize()
560{
561/*
562 *  Return the size of the receiver.
563 */
564   return SOM_ResolveD(this,SOMObject,SOMObject,somGetSize)
565        (this);
566}
567
568
569/* method: somIsA */
570boolean   somIsA(SOMClass* aClassObj)
571{
572/*
573 *  Returns 1 (true) if the receiver responds to methods
574 *  introduced by <aClassObj>, and 0 (false) otherwise.
575 */
576   return SOM_ResolveD(this,SOMObject,SOMObject,somIsA)
577        (this,aClassObj);
578}
579
580
581/* method: somIsInstanceOf */
582boolean   somIsInstanceOf(SOMClass* aClassObj)
583{
584/*
585 *  Returns 1 (true) if the receiver is an instance of
586 *  <aClassObj> and 0 (false) otherwise.
587 */
588   return SOM_ResolveD(this,SOMObject,SOMObject,somIsInstanceOf)
589        (this,aClassObj);
590}
591
592
593/* method: somRespondsTo */
594boolean   somRespondsTo(somId mId)
595{
596/*
597 *  Returns 1 (true) if the indicated method can be invoked
598 *  on the receiver and 0 (false) otherwise.
599 */
600   return SOM_ResolveD(this,SOMObject,SOMObject,somRespondsTo)
601        (this,mId);
602}
603
604
605/* va_list method: somDispatch */
606
607/*
608 *  This method provides a generic, class-specific dispatch mechanism.
609 *  It accepts as input <retValue> a pointer to the memory area to be
610 *  loaded with the result of dispatching the method indicated by
611 *  <methodId> using the arguments in <ap>. <ap> contains the object
612 *  on which the method is to be invoked as the first argument.
613 */
614/* the va_list invocation form */
615boolean   SOMObject_somDispatch(somToken* retValue,
616                somId methodId,
617                va_list ap)
618{return SOM_ResolveD(this,SOMObject,SOMObject,somDispatch)
619        (this,retValue,methodId,ap);
620}
621
622/* the varargs invocation form */
623boolean   somDispatch(somToken* retValue,
624                somId methodId,
625                ...)
626{
627/*
628 *  This method provides a generic, class-specific dispatch mechanism.
629 *  It accepts as input <retValue> a pointer to the memory area to be
630 *  loaded with the result of dispatching the method indicated by
631 *  <methodId> using the arguments in <ap>. <ap> contains the object
632 *  on which the method is to be invoked as the first argument.
633 */
634   va_list ap;
635   va_start(ap, methodId);
636   boolean __somResult =
637      SOM_ResolveD(this,SOMObject,SOMObject,somDispatch)
638        (this,retValue,methodId,ap);
639   va_end(ap);
640   return __somResult;
641}
642
643
644/* va_list method: somClassDispatch */
645
646/*
647 *  Like somDispatch, but method resolution for static methods is done
648 *  according to the clsObj instance method table.
649 */
650/* the va_list invocation form */
651boolean   SOMObject_somClassDispatch(SOMClass* clsObj,
652                somToken* retValue,
653                somId methodId,
654                va_list ap)
655{return SOM_ResolveD(this,SOMObject,SOMObject,somClassDispatch)
656        (this,clsObj,retValue,methodId,ap);
657}
658
659/* the varargs invocation form */
660boolean   somClassDispatch(SOMClass* clsObj,
661                somToken* retValue,
662                somId methodId,
663                ...)
664{
665/*
666 *  Like somDispatch, but method resolution for static methods is done
667 *  according to the clsObj instance method table.
668 */
669   va_list ap;
670   va_start(ap, methodId);
671   boolean __somResult =
672      SOM_ResolveD(this,SOMObject,SOMObject,somClassDispatch)
673        (this,clsObj,retValue,methodId,ap);
674   va_end(ap);
675   return __somResult;
676}
677
678
679/* method: somCastObj */
680boolean   somCastObj(SOMClass* cls)
681{
682/*
683 *  cast the receiving object to cls (which must be an ancestor of the
684 *  objects true class. Returns true on success.
685 */
686   return SOM_ResolveD(this,SOMObject,SOMObject,somCastObj)
687        (this,cls);
688}
689
690
691/* method: somResetObj */
692boolean   somResetObj()
693{
694/*
695 *  reset an object to its true class. Returns true always.
696 */
697   return SOM_ResolveD(this,SOMObject,SOMObject,somResetObj)
698        (this);
699}
700
701
702/* va_list method: somDispatchV */
703
704/*
705 *  Obsolete. Use somDispatch instead.
706 */
707/* the va_list invocation form */
708void   SOMObject_somDispatchV(somId methodId,
709                somId descriptor,
710                va_list ap)
711{   SOM_ResolveD(this,SOMObject,SOMObject,somDispatchV)
712        (this,methodId,descriptor,ap);
713}
714
715/* the varargs invocation form */
716void   somDispatchV(somId methodId,
717                somId descriptor,
718                ...)
719{
720/*
721 *  Obsolete. Use somDispatch instead.
722 */
723   va_list ap;
724   va_start(ap, descriptor);
725   SOM_ResolveD(this,SOMObject,SOMObject,somDispatchV)
726        (this,methodId,descriptor,ap);
727   va_end(ap);
728}
729
730
731/* va_list method: somDispatchL */
732
733/*
734 *  Obsolete. Use somDispatch instead.
735 */
736/* the va_list invocation form */
737long   SOMObject_somDispatchL(somId methodId,
738                somId descriptor,
739                va_list ap)
740{return SOM_ResolveD(this,SOMObject,SOMObject,somDispatchL)
741        (this,methodId,descriptor,ap);
742}
743
744/* the varargs invocation form */
745long   somDispatchL(somId methodId,
746                somId descriptor,
747                ...)
748{
749/*
750 *  Obsolete. Use somDispatch instead.
751 */
752   va_list ap;
753   va_start(ap, descriptor);
754   long __somResult =
755      SOM_ResolveD(this,SOMObject,SOMObject,somDispatchL)
756        (this,methodId,descriptor,ap);
757   va_end(ap);
758   return __somResult;
759}
760
761
762/* va_list method: somDispatchA */
763
764/*
765 *  Obsolete. Use somDispatch instead.
766 */
767/* the va_list invocation form */
768void*   SOMObject_somDispatchA(somId methodId,
769                somId descriptor,
770                va_list ap)
771{return SOM_ResolveD(this,SOMObject,SOMObject,somDispatchA)
772        (this,methodId,descriptor,ap);
773}
774
775/* the varargs invocation form */
776void*   somDispatchA(somId methodId,
777                somId descriptor,
778                ...)
779{
780/*
781 *  Obsolete. Use somDispatch instead.
782 */
783   va_list ap;
784   va_start(ap, descriptor);
785   void* __somResult =
786      SOM_ResolveD(this,SOMObject,SOMObject,somDispatchA)
787        (this,methodId,descriptor,ap);
788   va_end(ap);
789   return __somResult;
790}
791
792
793/* va_list method: somDispatchD */
794
795/*
796 *  Obsolete. Use somDispatch instead.
797 */
798/* the va_list invocation form */
799double   SOMObject_somDispatchD(somId methodId,
800                somId descriptor,
801                va_list ap)
802{return SOM_ResolveD(this,SOMObject,SOMObject,somDispatchD)
803        (this,methodId,descriptor,ap);
804}
805
806/* the varargs invocation form */
807double   somDispatchD(somId methodId,
808                somId descriptor,
809                ...)
810{
811/*
812 *  Obsolete. Use somDispatch instead.
813 */
814   va_list ap;
815   va_start(ap, descriptor);
816   double __somResult =
817      SOM_ResolveD(this,SOMObject,SOMObject,somDispatchD)
818        (this,methodId,descriptor,ap);
819   va_end(ap);
820   return __somResult;
821}
822
823
824/* method: somPrintSelf */
825SOMObject*   somPrintSelf()
826{
827/*
828 *  Uses <SOMOutCharRoutine> to write a brief string with identifying
829 *  information about this object.  The default implementation just gives
830 *  the object's class name and its address in memory.
831 *  <self> is returned.
832 */
833   return SOM_ResolveD(this,SOMObject,SOMObject,somPrintSelf)
834        (this);
835}
836
837
838/* method: somDumpSelf */
839void   somDumpSelf(long level)
840{
841/*
842 *  Uses <SOMOutCharRoutine> to write a detailed description of this object
843 *  and its current state.
844 *
845 *  <level> indicates the nesting level for describing compound objects
846 *  it must be greater than or equal to zero.  All lines in the
847 *  description will be preceeded by <2*level> spaces.
848 *
849 *  This routine only actually writes the data that concerns the object
850 *  as a whole, such as class, and uses <somDumpSelfInt> to describe
851 *  the object's current state.  This approach allows readable
852 *  descriptions of compound objects to be constructed.
853 *
854 *  Generally it is not necessary to override this method, if it is
855 *  overriden it generally must be completely replaced.
856 */
857   SOM_ResolveD(this,SOMObject,SOMObject,somDumpSelf)
858        (this,level);
859}
860
861
862/* method: somDumpSelfInt */
863void   somDumpSelfInt(long level)
864{
865/*
866 *  Uses <SOMOutCharRoutine> to write in the current state of this object.
867 *  Generally this method will need to be overridden.  When overriding
868 *  it, begin by calling the parent class form of this method and then
869 *  write in a description of your class's instance data. This will
870 *  result in a description of all the object's instance data going
871 *  from its root ancestor class to its specific class.
872 */
873   SOM_ResolveD(this,SOMObject,SOMObject,somDumpSelfInt)
874        (this,level);
875}
876
877
878
879};   /* SOMObject */
880
881
882
883#endif       /* SOM_SOMObject_xh */
Note: See TracBrowser for help on using the repository browser.