home *** CD-ROM | disk | FTP | other *** search
- //
- // COMPONENT_NAME: some
- //
- // ORIGINS: 27
- //
- //
- // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994
- // All Rights Reserved
- // Licensed Materials - Property of IBM
- // US Government Users Restricted Rights - Use, duplication or
- // disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- //
-
- #ifndef scentry_idl
- #define scentry_idl
-
- #include <somobj.idl>
- #include "sctypes.h"
-
- interface SOMTEntryC : SOMObject
-
- // A SOM class interface definition is compiled to produce a graph
- // structure whose nodes are instances of <SOMTEntry> or its
- // sub-classes. Each entry is derived from some syntactic element of
- // the definition source. The attributes defined in <SOMTEntryC>
- // refer to this syntactic element in a fairly obvious way.
- //
-
- {
- attribute string somtEntryName;
- // The name associated with this entry. Eg, the name of
- // the data item, the class, the method, the type, etc.
-
- attribute SOMTTypes somtElementType;
- // Returns the type of this entry.
- // This is not datatype, but entry type (method, class,
- // passthru, etc.). The value is defined by SOMTTypes.
-
- readonly attribute string somtElementTypeName;
- // String version of somtElementType.
-
- readonly attribute string somtEntryComment;
- // Returns the comment associated with this entry, or NULL is this
- // entry has no associated comment. Comments will have comment
- // delimitors removed, but will retain newline characters as
- // specified in the source file. (use smLookupComment)
-
- readonly attribute unsigned long somtSourceLineNumber;
- // Returns the line number in the source file where this entry's
- // syntactic form ended.
-
- readonly attribute TypeCode somtTypeCode;
- // The typecode, if appropriate, or NULL.
-
- readonly attribute boolean somtIsReference;
- // Whether the entry is just a reference to the real type (TRUE)
- // rather than a declaration of it (FALSE).
-
- readonly attribute string somtIDLScopedName;
- // The IDL scoped name of the entry (using double colon as delimiter).
-
- readonly attribute string somtCScopedName;
- // The C scoped name of the entry (using underscore as delimiter).
-
- string somtGetModifierValue(in string modifierName);
-
- // Returns the value of the named modifier if this entry has the
- // named modifier and NULL otherwise. Note: if the modifier is
- // present but does not have a value then a value of <'\1'> is
- // returned.
-
- boolean somtGetFirstModifier(inout string modifierName,
- inout string modifierValue);
-
- // Returns the first modifier associated with this entry. 1 (true)
- // is returned if the entry has at least one modifier and 0 (false)
- // otherwise.
-
- boolean somtGetNextModifier(inout string modifierName,
- inout string modifierValue);
-
- // Returns the next modifier (with respect to the last call to
- // <somtGetNextModifier> or <somtGetFirstModifier>)
- // associated with this entry. 1 (true) is returned if the entry
- // had another modifier and 0 (false) otherwise.
-
- long somtFormatModifier(in string buffer,
- in string name,
- in string value);
-
- // Formats the indicated name/value pair into buffer. Buffer must
- // be big enough to hold all the formatted pair, no checks are made.
- // The number of characters added to buffer are returned (not
- // including the trailing null character).
- // Note: value may be null
- // You will probably never call this method, it is provided so that
- // you can override it to control the format returned in
- // <somtGetModifierList>.
-
- long somtGetModifierList(in string buffer);
-
- // The modifiers for this entry are placed in <buffer> in template
- // list form (newline separated). Buffer must be big enough to
- // hold all the modifiers, no checks are made. The number of
- // modifiers is returned.
-
- long somtSetSymbolsOnEntry(in SOMTEmitC emitter,
- in string prefix);
-
- // Places a number of symbol/value pairs in <t>. All the symbols
- // will begin with <prefix>.
-
- void somtSetEntryStruct(inout Entry es);
-
- // Sets the entry struct data member.
- // Note, when overridding this method, it is important to call the
- // parent version of the method first and then do your processing.
-
-
- #ifdef __SOMIDL__
- implementation {
-
- releaseorder: _get_somtEntryName, _set_somtEntryName,
- _get_somtElementType, _set_somtElementType,
- _get_somtEntryComment, _get_somtSourceLineNumber,
- _get_somtTypeCode, _get_somtIsReference,
- somtGetModifierValue, somtGetFirstModifier,
- somtGetNextModifier, somtFormatModifier,
- somtGetModifierList, somtSetSymbolsOnEntry,
- somtSetEntryStruct, _get_somtEntryStruct,
- somtShowAssocEntry, _get_somtCScopedName,
- _get_somtIDLScopedName, _get_somtElementTypeName;
-
- majorversion = 2;
- minorversion = 1;
- filestem = scentry;
- callstyle = oidl;
-
- passthru C_h_after = "#include <sctypes.h>"
- "#include <scemit.h>"
- "#include <sctmplt.h>";
- passthru C_xh_after = "#include <sctypes.h>"
- "#include <sctmplt.xh>";
- passthru C_hh_after = "#include <sctypes.h>"
- "#include <sctmplt.hh>";
-
-
- somInit: override;
- somUninit: override;
- somPrintSelf: override;
- somDumpSelfInt: override;
- somDumpSelf: override;
-
- somtEntryComment: nodata;
- somtCScopedName: nodata;
- somtIDLScopedName: nodata;
- somtSourceLineNumber: nodata;
- somtTypeCode: nodata;
- somtIsReference: nodata;
- somtEntryStruct: nodata;
- somtElementTypeName: nodata;
-
- };
- #endif /* __SOMIDL__ */
- };
-
- #endif /* scentry_idl */
-