
/*
 * This file was generated by the SOM Compiler.
 * FileName: lnamec.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.19
 *     SOM Emitter emith.dll: 2.31.1.64
 */

/*
 *    COMPONENT_NAME: somnm
 * 
 *    ORIGINS: 27
 * 
 * 
 *     25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,1996
 *    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.
 * 
 * 
 *    @(#) 1.7 @(#)lnamec.idl	1.7 1/24/94 10:34:13 [3/30/94 17:08:21]
 */


#ifndef SOM_LNameComponent_h
#define SOM_LNameComponent_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>
#ifndef SOM_IMPORTEXPORT_somnmf_lnamec
#ifdef SOM_DLL_somnmf
	/* export semantics */
	#if defined(SOM_DEFFILE_somnmf)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somnmf))\
	|| !defined(SOM_Module_lnamec_Source)
	#define SOM_IMPORTEXPORT_somnmf_lnamec
	#else
	#define SOM_IMPORTEXPORT_somnmf_lnamec SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somnmf_lnamec SOMDLLIMPORT
#endif
#endif

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef LNameComponent
#define LNameComponent SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_SOMObject_h
#ifdef SOMLOCALINCLUDES
#include "somobj.h"
#else
#include <somobj.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ExtendedNaming_PropertyBindingIterator
    #define ExtendedNaming_PropertyBindingIterator SOMObject
#endif /* ExtendedNaming_PropertyBindingIterator */
#ifndef ExtendedNaming_PropertyIterator
    #define ExtendedNaming_PropertyIterator SOMObject
#endif /* ExtendedNaming_PropertyIterator */
#ifndef ExtendedNaming_IndexIterator
    #define ExtendedNaming_IndexIterator SOMObject
#endif /* ExtendedNaming_IndexIterator */
#define ex_LNameComponent_NotSet "::LNameComponent::NotSet"
#define LNameComponent_NotSet NULL

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_ex_NotSet
    #ifdef ex_NotSet
        #undef ex_NotSet
        #define SOMTGD_ex_NotSet 1
    #else
        #define ex_NotSet ex_LNameComponent_NotSet
    #endif /* ex_NotSet */
#endif /* SOMTGD_ex_NotSet */
#ifndef SOMTGD_NotSet
    #ifdef NotSet
        #undef NotSet
        #define SOMTGD_NotSet 1
    #else
        #define NotSet LNameComponent_NotSet
    #endif /* NotSet */
#endif /* SOMTGD_NotSet */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */

#define LNameComponent_MajorVersion 3
#define LNameComponent_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somnmf_lnamec SOMClass  SOMLINK LNameComponentNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct LNameComponentClassDataStructure {
	SOMClass classObject;
	somMToken get_id;
	somMToken set_id;
	somMToken get_kind;
	somMToken set_kind;
	somMToken destroy;
} SOM_IMPORTEXPORT_somnmf_lnamec SOMDLINK LNameComponentClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct LNameComponentCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somnmf_lnamec SOMDLINK LNameComponentCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_LNameComponent (LNameComponentClassData.classObject)
#ifndef SOMGD_LNameComponent
    #if (defined(_LNameComponent) || defined(__LNameComponent))
        #undef _LNameComponent
        #undef __LNameComponent
        #define SOMGD_LNameComponent 1
    #else
        #define _LNameComponent _SOMCLASS_LNameComponent
    #endif /* _LNameComponent */
#endif /* SOMGD_LNameComponent */
#define LNameComponent_classObj _SOMCLASS_LNameComponent
#define _SOMMTOKEN_LNameComponent(method) ((somMToken)LNameComponentClassData.method)

/*
 * New and Renew macros for LNameComponent
 */
#define LNameComponentNew() \
   ( _LNameComponent ? \
	_somNew(_LNameComponent) \
	: ( LNameComponentNewClass(\
		LNameComponent_MajorVersion, \
		LNameComponent_MinorVersion),\
	   _somNew(_LNameComponent)))
#define LNameComponentRenew(buf) \
   ( _LNameComponent ? \
	_somRenew(_LNameComponent, buf) \
	: ( LNameComponentNewClass(\
		LNameComponent_MajorVersion, \
		LNameComponent_MinorVersion),\
	   _somRenew(_LNameComponent, buf)))

/*
 * New Method: get_id
 */
typedef string   SOMLINK somTP_LNameComponent_get_id(LNameComponent somSelf, Environment *ev);
typedef somTP_LNameComponent_get_id *somTD_LNameComponent_get_id;
#define somMD_LNameComponent_get_id "::LNameComponent::get_id"
#define LNameComponent_get_id(somSelf,ev) \
    (SOM_Resolve(somSelf, LNameComponent, get_id) \
	(somSelf,ev))
#ifndef SOMGD_get_id
    #if (defined(_get_id) || defined(__get_id))
        #undef _get_id
        #undef __get_id
        #define SOMGD_get_id 1
    #else
        #define _get_id LNameComponent_get_id
    #endif /* _get_id */
#endif /* SOMGD_get_id */

/*
 * New Method: set_id
 */
typedef void   SOMLINK somTP_LNameComponent_set_id(LNameComponent somSelf, Environment *ev, 
		string i);
typedef somTP_LNameComponent_set_id *somTD_LNameComponent_set_id;
#define somMD_LNameComponent_set_id "::LNameComponent::set_id"
#define LNameComponent_set_id(somSelf,ev,i) \
    (SOM_Resolve(somSelf, LNameComponent, set_id) \
	(somSelf,ev,i))
#ifndef SOMGD_set_id
    #if (defined(_set_id) || defined(__set_id))
        #undef _set_id
        #undef __set_id
        #define SOMGD_set_id 1
    #else
        #define _set_id LNameComponent_set_id
    #endif /* _set_id */
#endif /* SOMGD_set_id */

/*
 * New Method: get_kind
 */
typedef string   SOMLINK somTP_LNameComponent_get_kind(LNameComponent somSelf, Environment *ev);
typedef somTP_LNameComponent_get_kind *somTD_LNameComponent_get_kind;
#define somMD_LNameComponent_get_kind "::LNameComponent::get_kind"
#define LNameComponent_get_kind(somSelf,ev) \
    (SOM_Resolve(somSelf, LNameComponent, get_kind) \
	(somSelf,ev))
#ifndef SOMGD_get_kind
    #if (defined(_get_kind) || defined(__get_kind))
        #undef _get_kind
        #undef __get_kind
        #define SOMGD_get_kind 1
    #else
        #define _get_kind LNameComponent_get_kind
    #endif /* _get_kind */
#endif /* SOMGD_get_kind */

/*
 * New Method: set_kind
 */
typedef void   SOMLINK somTP_LNameComponent_set_kind(LNameComponent somSelf, Environment *ev, 
		string k);
typedef somTP_LNameComponent_set_kind *somTD_LNameComponent_set_kind;
#define somMD_LNameComponent_set_kind "::LNameComponent::set_kind"
#define LNameComponent_set_kind(somSelf,ev,k) \
    (SOM_Resolve(somSelf, LNameComponent, set_kind) \
	(somSelf,ev,k))
#ifndef SOMGD_set_kind
    #if (defined(_set_kind) || defined(__set_kind))
        #undef _set_kind
        #undef __set_kind
        #define SOMGD_set_kind 1
    #else
        #define _set_kind LNameComponent_set_kind
    #endif /* _set_kind */
#endif /* SOMGD_set_kind */

/*
 * New Method: destroy
 */
typedef void   SOMLINK somTP_LNameComponent_destroy(LNameComponent somSelf, Environment *ev);
typedef somTP_LNameComponent_destroy *somTD_LNameComponent_destroy;
#define somMD_LNameComponent_destroy "::LNameComponent::destroy"
#define LNameComponent_destroy(somSelf,ev) \
    (SOM_Resolve(somSelf, LNameComponent, destroy) \
	(somSelf,ev))
#ifndef SOMGD_destroy
    #if (defined(_destroy) || defined(__destroy))
        #undef _destroy
        #undef __destroy
        #define SOMGD_destroy 1
    #else
        #define _destroy LNameComponent_destroy
    #endif /* _destroy */
#endif /* SOMGD_destroy */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define LNameComponent_somDefaultInit SOMObject_somDefaultInit
#define LNameComponent_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define LNameComponent_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define LNameComponent_somDefaultAssign SOMObject_somDefaultAssign
#define LNameComponent_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define LNameComponent_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define LNameComponent_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define LNameComponent_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define LNameComponent_somDefaultVAssign SOMObject_somDefaultVAssign
#define LNameComponent_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define LNameComponent_somInit SOMObject_somInit
#define LNameComponent_somUninit SOMObject_somUninit
#define LNameComponent_somFree SOMObject_somFree
#define LNameComponent_somGetClass SOMObject_somGetClass
#define LNameComponent_somGetClassName SOMObject_somGetClassName
#define LNameComponent_somGetSize SOMObject_somGetSize
#define LNameComponent_somIsA SOMObject_somIsA
#define LNameComponent_somIsInstanceOf SOMObject_somIsInstanceOf
#define LNameComponent_somRespondsTo SOMObject_somRespondsTo
#define LNameComponent_somDispatch SOMObject_somDispatch
#define LNameComponent_somClassDispatch SOMObject_somClassDispatch
#define LNameComponent_somCastObj SOMObject_somCastObj
#define LNameComponent_somResetObj SOMObject_somResetObj
#define LNameComponent_somPrintSelf SOMObject_somPrintSelf
#define LNameComponent_somDumpSelf SOMObject_somDumpSelf
#define LNameComponent_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_LNameComponent_h */
