
/*
 * This file was generated by the SOM Compiler.
 * FileName: lname.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 @(#)lname.idl	1.7 1/24/94 10:34:07 [3/30/94 17:08:21]
 */


#ifndef SOM_LName_h
#define SOM_LName_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_lname
#ifdef SOM_DLL_somnmf
	/* export semantics */
	#if defined(SOM_DEFFILE_somnmf)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somnmf))\
	|| !defined(SOM_Module_lname_Source)
	#define SOM_IMPORTEXPORT_somnmf_lname
	#else
	#define SOM_IMPORTEXPORT_somnmf_lname SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somnmf_lname 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 LName
#define LName 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_LName_NoComponent "::LName::NoComponent"
#define LName_NoComponent NULL
#define ex_LName_OverFlow "::LName::OverFlow"
#define LName_OverFlow NULL
#define ex_LName_InvalidName "::LName::InvalidName"
#define LName_InvalidName NULL

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_ex_NoComponent
    #ifdef ex_NoComponent
        #undef ex_NoComponent
        #define SOMTGD_ex_NoComponent 1
    #else
        #define ex_NoComponent ex_LName_NoComponent
    #endif /* ex_NoComponent */
#endif /* SOMTGD_ex_NoComponent */
#ifndef SOMTGD_NoComponent
    #ifdef NoComponent
        #undef NoComponent
        #define SOMTGD_NoComponent 1
    #else
        #define NoComponent LName_NoComponent
    #endif /* NoComponent */
#endif /* SOMTGD_NoComponent */
#ifndef SOMTGD_ex_OverFlow
    #ifdef ex_OverFlow
        #undef ex_OverFlow
        #define SOMTGD_ex_OverFlow 1
    #else
        #define ex_OverFlow ex_LName_OverFlow
    #endif /* ex_OverFlow */
#endif /* SOMTGD_ex_OverFlow */
#ifndef SOMTGD_OverFlow
    #ifdef OverFlow
        #undef OverFlow
        #define SOMTGD_OverFlow 1
    #else
        #define OverFlow LName_OverFlow
    #endif /* OverFlow */
#endif /* SOMTGD_OverFlow */
#ifndef SOMTGD_ex_InvalidName
    #ifdef ex_InvalidName
        #undef ex_InvalidName
        #define SOMTGD_ex_InvalidName 1
    #else
        #define ex_InvalidName ex_LName_InvalidName
    #endif /* ex_InvalidName */
#endif /* SOMTGD_ex_InvalidName */
#ifndef SOMTGD_InvalidName
    #ifdef InvalidName
        #undef InvalidName
        #define SOMTGD_InvalidName 1
    #else
        #define InvalidName LName_InvalidName
    #endif /* InvalidName */
#endif /* SOMTGD_InvalidName */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#define LName_MajorVersion 3
#define LName_MinorVersion 0

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

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct LNameClassDataStructure {
	SOMClass classObject;
	somMToken to_idl_form;
	somMToken insert_component;
	somMToken get_component;
	somMToken delete_component;
	somMToken num_components;
	somMToken equal;
	somMToken less_than;
	somMToken from_idl_form;
	somMToken destroy;
} SOM_IMPORTEXPORT_somnmf_lname SOMDLINK LNameClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct LNameCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somnmf_lname SOMDLINK LNameCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_LName (LNameClassData.classObject)
#ifndef SOMGD_LName
    #if (defined(_LName) || defined(__LName))
        #undef _LName
        #undef __LName
        #define SOMGD_LName 1
    #else
        #define _LName _SOMCLASS_LName
    #endif /* _LName */
#endif /* SOMGD_LName */
#define LName_classObj _SOMCLASS_LName
#define _SOMMTOKEN_LName(method) ((somMToken)LNameClassData.method)

/*
 * New and Renew macros for LName
 */
#define LNameNew() \
   ( _LName ? \
	_somNew(_LName) \
	: ( LNameNewClass(\
		LName_MajorVersion, \
		LName_MinorVersion),\
	   _somNew(_LName)))
#define LNameRenew(buf) \
   ( _LName ? \
	_somRenew(_LName, buf) \
	: ( LNameNewClass(\
		LName_MajorVersion, \
		LName_MinorVersion),\
	   _somRenew(_LName, buf)))

/*
 * New Method: insert_component
 */
typedef LName   SOMLINK somTP_LName_insert_component(LName somSelf, Environment *ev, 
		unsigned long i, 
		LNameComponent n);
typedef somTP_LName_insert_component *somTD_LName_insert_component;
#define somMD_LName_insert_component "::LName::insert_component"
#define LName_insert_component(somSelf,ev,i,n) \
    (SOM_Resolve(somSelf, LName, insert_component) \
	(somSelf,ev,i,n))
#ifndef SOMGD_insert_component
    #if (defined(_insert_component) || defined(__insert_component))
        #undef _insert_component
        #undef __insert_component
        #define SOMGD_insert_component 1
    #else
        #define _insert_component LName_insert_component
    #endif /* _insert_component */
#endif /* SOMGD_insert_component */

/*
 * New Method: get_component
 */
typedef LNameComponent   SOMLINK somTP_LName_get_component(LName somSelf, Environment *ev, 
		unsigned long i);
typedef somTP_LName_get_component *somTD_LName_get_component;
#define somMD_LName_get_component "::LName::get_component"
#define LName_get_component(somSelf,ev,i) \
    (SOM_Resolve(somSelf, LName, get_component) \
	(somSelf,ev,i))
#ifndef SOMGD_get_component
    #if (defined(_get_component) || defined(__get_component))
        #undef _get_component
        #undef __get_component
        #define SOMGD_get_component 1
    #else
        #define _get_component LName_get_component
    #endif /* _get_component */
#endif /* SOMGD_get_component */

/*
 * New Method: delete_component
 */
typedef LNameComponent   SOMLINK somTP_LName_delete_component(LName somSelf, Environment *ev, 
		unsigned long i);
typedef somTP_LName_delete_component *somTD_LName_delete_component;
#define somMD_LName_delete_component "::LName::delete_component"
#define LName_delete_component(somSelf,ev,i) \
    (SOM_Resolve(somSelf, LName, delete_component) \
	(somSelf,ev,i))
#ifndef SOMGD_delete_component
    #if (defined(_delete_component) || defined(__delete_component))
        #undef _delete_component
        #undef __delete_component
        #define SOMGD_delete_component 1
    #else
        #define _delete_component LName_delete_component
    #endif /* _delete_component */
#endif /* SOMGD_delete_component */

/*
 * New Method: num_components
 */
typedef unsigned long   SOMLINK somTP_LName_num_components(LName somSelf, Environment *ev);
typedef somTP_LName_num_components *somTD_LName_num_components;
#define somMD_LName_num_components "::LName::num_components"
#define LName_num_components(somSelf,ev) \
    (SOM_Resolve(somSelf, LName, num_components) \
	(somSelf,ev))
#ifndef SOMGD_num_components
    #if (defined(_num_components) || defined(__num_components))
        #undef _num_components
        #undef __num_components
        #define SOMGD_num_components 1
    #else
        #define _num_components LName_num_components
    #endif /* _num_components */
#endif /* SOMGD_num_components */

/*
 * New Method: equal
 */
typedef boolean   SOMLINK somTP_LName_equal(LName somSelf, Environment *ev, 
		LName ln);
typedef somTP_LName_equal *somTD_LName_equal;
#define somMD_LName_equal "::LName::equal"
#define LName_equal(somSelf,ev,ln) \
    (SOM_Resolve(somSelf, LName, equal) \
	(somSelf,ev,ln))
#ifndef SOMGD_equal
    #if (defined(_equal) || defined(__equal))
        #undef _equal
        #undef __equal
        #define SOMGD_equal 1
    #else
        #define _equal LName_equal
    #endif /* _equal */
#endif /* SOMGD_equal */

/*
 * New Method: less_than
 */
typedef boolean   SOMLINK somTP_LName_less_than(LName somSelf, Environment *ev, 
		LName ln);
typedef somTP_LName_less_than *somTD_LName_less_than;
#define somMD_LName_less_than "::LName::less_than"
#define LName_less_than(somSelf,ev,ln) \
    (SOM_Resolve(somSelf, LName, less_than) \
	(somSelf,ev,ln))
#ifndef SOMGD_less_than
    #if (defined(_less_than) || defined(__less_than))
        #undef _less_than
        #undef __less_than
        #define SOMGD_less_than 1
    #else
        #define _less_than LName_less_than
    #endif /* _less_than */
#endif /* SOMGD_less_than */

/*
 * New Method: to_idl_form
 */
typedef CosNaming_Name   SOMLINK somTP_LName_to_idl_form(LName somSelf, Environment *ev);
typedef somTP_LName_to_idl_form *somTD_LName_to_idl_form;
#define somMD_LName_to_idl_form "::LName::to_idl_form"
#define LName_to_idl_form(somSelf,ev) \
    (SOM_Resolve(somSelf, LName, to_idl_form) \
	(somSelf,ev))
#ifndef SOMGD_to_idl_form
    #if (defined(_to_idl_form) || defined(__to_idl_form))
        #undef _to_idl_form
        #undef __to_idl_form
        #define SOMGD_to_idl_form 1
    #else
        #define _to_idl_form LName_to_idl_form
    #endif /* _to_idl_form */
#endif /* SOMGD_to_idl_form */

/*
 * New Method: from_idl_form
 */
typedef void   SOMLINK somTP_LName_from_idl_form(LName somSelf, Environment *ev, 
		CosNaming_Name* n);
typedef somTP_LName_from_idl_form *somTD_LName_from_idl_form;
#define somMD_LName_from_idl_form "::LName::from_idl_form"
#define LName_from_idl_form(somSelf,ev,n) \
    (SOM_Resolve(somSelf, LName, from_idl_form) \
	(somSelf,ev,n))
#ifndef SOMGD_from_idl_form
    #if (defined(_from_idl_form) || defined(__from_idl_form))
        #undef _from_idl_form
        #undef __from_idl_form
        #define SOMGD_from_idl_form 1
    #else
        #define _from_idl_form LName_from_idl_form
    #endif /* _from_idl_form */
#endif /* SOMGD_from_idl_form */

/*
 * New Method: destroy
 */
typedef void   SOMLINK somTP_LName_destroy(LName somSelf, Environment *ev);
typedef somTP_LName_destroy *somTD_LName_destroy;
#define somMD_LName_destroy "::LName::destroy"
#define LName_destroy(somSelf,ev) \
    (SOM_Resolve(somSelf, LName, destroy) \
	(somSelf,ev))
#ifndef SOMGD_destroy
    #if (defined(_destroy) || defined(__destroy))
        #undef _destroy
        #undef __destroy
        #define SOMGD_destroy 1
    #else
        #define _destroy LName_destroy
    #endif /* _destroy */
#endif /* SOMGD_destroy */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define LName_somDefaultInit SOMObject_somDefaultInit
#define LName_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define LName_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define LName_somDefaultAssign SOMObject_somDefaultAssign
#define LName_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define LName_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define LName_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define LName_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define LName_somDefaultVAssign SOMObject_somDefaultVAssign
#define LName_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define LName_somInit SOMObject_somInit
#define LName_somUninit SOMObject_somUninit
#define LName_somFree SOMObject_somFree
#define LName_somGetClass SOMObject_somGetClass
#define LName_somGetClassName SOMObject_somGetClassName
#define LName_somGetSize SOMObject_somGetSize
#define LName_somIsA SOMObject_somIsA
#define LName_somIsInstanceOf SOMObject_somIsInstanceOf
#define LName_somRespondsTo SOMObject_somRespondsTo
#define LName_somDispatch SOMObject_somDispatch
#define LName_somClassDispatch SOMObject_somClassDispatch
#define LName_somCastObj SOMObject_somCastObj
#define LName_somResetObj SOMObject_somResetObj
#define LName_somPrintSelf SOMObject_somPrintSelf
#define LName_somDumpSelf SOMObject_somDumpSelf
#define LName_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_LName_h */
