
/*
 * This file was generated by the SOM Compiler.
 * FileName: IMPLDEF.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *    COMPONENT_NAME: somd
 * 
 *    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.
 * 
 *   CLASS SPECIFICATION FOR IMPLEMENTATION DEFINITION
 */


#ifndef SOM_ImplementationDef_h
#define SOM_ImplementationDef_h


#include <som.h>

/*
 * -- 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 class data structures as resolution macros
 */
#define ImplementationDefClassData (*resolve_ImplementationDefClassData())
#define ImplementationDefCClassData (*resolve_ImplementationDefCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ImplementationDef
#define ImplementationDef SOMObject
#endif
#include <somobj.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Container
    #define Container SOMObject
#endif /* Container */

/*
 * End of user-defined types.
 */

/*
 * Passthru lines: File: "C.h", "after"
 */

/* flags */
#define IMPLDEF_MULTI_THREAD  0x00000001
#define IMPLDEF_POOL_THREAD   0x00000002
#define IMPLDEF_DISABLE_SVR   0x00000004
#define IMPLDEF_IMPLID_SET    0x00000008

#ifdef SOM_STRICT_IDL
SOMEXTERN ImplementationDef * SOMLINK resolve_SOMD_ImplDefObject(void);
#define SOMD_ImplDefObject (*resolve_SOMD_ImplDefObject())
#else
SOMEXTERN ImplementationDef ** SOMLINK resolve_SOMD_ImplDefObject(void);
#define SOMD_ImplDefObject (*resolve_SOMD_ImplDefObject())
#endif /* SOM_STRICT_IDL */


#define ImplementationDef_MajorVersion 2
#define ImplementationDef_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ImplementationDefNewClass c
#define ImplementationDefClassData d
#define ImplementationDefCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ImplementationDef_classObj ImplementationDefClassData.classObject
#define _ImplementationDef ImplementationDef_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK ImplementationDefNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct ImplementationDefClassDataStructure {
	SOMClass *classObject;
	somMToken _set_impl_id;
	somMToken _get_impl_id;
	somMToken _set_impl_alias;
	somMToken _get_impl_alias;
	somMToken _set_impl_program;
	somMToken _get_impl_program;
	somMToken _set_impl_flags;
	somMToken _get_impl_flags;
	somMToken _set_impl_server_class;
	somMToken _get_impl_server_class;
	somMToken _set_impl_socket_class;
	somMToken _get_impl_socket_class;
	somMToken _set_impl_refdata_file;
	somMToken _get_impl_refdata_file;
	somMToken _set_impl_refdata_bkup;
	somMToken _get_impl_refdata_bkup;
	somMToken _set_impl_hostname;
	somMToken _get_impl_hostname;
	somMToken _set_impl_def_struct;
	somMToken _get_impl_def_struct;
}  _ImplementationDefClassData;
SOMEXTERN struct ImplementationDefClassDataStructure * SOMLINK resolve_ImplementationDefClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ImplementationDefCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ImplementationDefCClassData;
SOMEXTERN struct ImplementationDefCClassDataStructure * SOMLINK resolve_ImplementationDefCClassData(void);

/*
 * New and Renew macros for ImplementationDef
 */
#define ImplementationDefNew() \
   (_somNew(_ImplementationDef ? _ImplementationDef : ImplementationDefNewClass(ImplementationDef_MajorVersion, ImplementationDef_MinorVersion)))
#define ImplementationDefRenew(buf) \
   (_somRenew(_ImplementationDef ? _ImplementationDef : ImplementationDefNewClass(ImplementationDef_MajorVersion, ImplementationDef_MinorVersion), buf))

/*
 * New Method: _get_impl_id
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_id)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_id "::ImplementationDef::impl_id"
#define ImplementationDef__get_impl_id(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_id) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_id
    #if (defined(_get_impl_id) || defined(__get_impl_id))
        #undef _get_impl_id
        #undef __get_impl_id
        #define SOMGD_get_impl_id 1
    #else
        #define __get_impl_id ImplementationDef__get_impl_id
    #endif /* __get_impl_id */
#endif /* SOMGD_get_impl_id */

/*
 * New Method: _set_impl_id
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_id)(ImplementationDef *somSelf, Environment *ev,
		string impl_id);
#define somMD_ImplementationDef__set_impl_id "::ImplementationDef::impl_id"
#define ImplementationDef__set_impl_id(somSelf,ev,impl_id) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_id) \
	(somSelf,ev,impl_id))
#ifndef SOMGD_set_impl_id
    #if (defined(_set_impl_id) || defined(__set_impl_id))
        #undef _set_impl_id
        #undef __set_impl_id
        #define SOMGD_set_impl_id 1
    #else
        #define __set_impl_id ImplementationDef__set_impl_id
    #endif /* __set_impl_id */
#endif /* SOMGD_set_impl_id */

/*
 * New Method: _get_impl_alias
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_alias)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_alias "::ImplementationDef::impl_alias"
#define ImplementationDef__get_impl_alias(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_alias) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_alias
    #if (defined(_get_impl_alias) || defined(__get_impl_alias))
        #undef _get_impl_alias
        #undef __get_impl_alias
        #define SOMGD_get_impl_alias 1
    #else
        #define __get_impl_alias ImplementationDef__get_impl_alias
    #endif /* __get_impl_alias */
#endif /* SOMGD_get_impl_alias */

/*
 * New Method: _set_impl_alias
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_alias)(ImplementationDef *somSelf, Environment *ev,
		string impl_alias);
#define somMD_ImplementationDef__set_impl_alias "::ImplementationDef::impl_alias"
#define ImplementationDef__set_impl_alias(somSelf,ev,impl_alias) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_alias) \
	(somSelf,ev,impl_alias))
#ifndef SOMGD_set_impl_alias
    #if (defined(_set_impl_alias) || defined(__set_impl_alias))
        #undef _set_impl_alias
        #undef __set_impl_alias
        #define SOMGD_set_impl_alias 1
    #else
        #define __set_impl_alias ImplementationDef__set_impl_alias
    #endif /* __set_impl_alias */
#endif /* SOMGD_set_impl_alias */

/*
 * New Method: _get_impl_program
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_program)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_program "::ImplementationDef::impl_program"
#define ImplementationDef__get_impl_program(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_program) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_program
    #if (defined(_get_impl_program) || defined(__get_impl_program))
        #undef _get_impl_program
        #undef __get_impl_program
        #define SOMGD_get_impl_program 1
    #else
        #define __get_impl_program ImplementationDef__get_impl_program
    #endif /* __get_impl_program */
#endif /* SOMGD_get_impl_program */

/*
 * New Method: _set_impl_program
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_program)(ImplementationDef *somSelf, Environment *ev,
		string impl_program);
#define somMD_ImplementationDef__set_impl_program "::ImplementationDef::impl_program"
#define ImplementationDef__set_impl_program(somSelf,ev,impl_program) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_program) \
	(somSelf,ev,impl_program))
#ifndef SOMGD_set_impl_program
    #if (defined(_set_impl_program) || defined(__set_impl_program))
        #undef _set_impl_program
        #undef __set_impl_program
        #define SOMGD_set_impl_program 1
    #else
        #define __set_impl_program ImplementationDef__set_impl_program
    #endif /* __set_impl_program */
#endif /* SOMGD_set_impl_program */

/*
 * New Method: _get_impl_flags
 */
typedef Flags   (SOMLINK * somTD_ImplementationDef__get_impl_flags)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_flags "::ImplementationDef::impl_flags"
#define ImplementationDef__get_impl_flags(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_flags) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_flags
    #if (defined(_get_impl_flags) || defined(__get_impl_flags))
        #undef _get_impl_flags
        #undef __get_impl_flags
        #define SOMGD_get_impl_flags 1
    #else
        #define __get_impl_flags ImplementationDef__get_impl_flags
    #endif /* __get_impl_flags */
#endif /* SOMGD_get_impl_flags */

/*
 * New Method: _set_impl_flags
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_flags)(ImplementationDef *somSelf, Environment *ev,
		Flags impl_flags);
#define somMD_ImplementationDef__set_impl_flags "::ImplementationDef::impl_flags"
#define ImplementationDef__set_impl_flags(somSelf,ev,impl_flags) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_flags) \
	(somSelf,ev,impl_flags))
#ifndef SOMGD_set_impl_flags
    #if (defined(_set_impl_flags) || defined(__set_impl_flags))
        #undef _set_impl_flags
        #undef __set_impl_flags
        #define SOMGD_set_impl_flags 1
    #else
        #define __set_impl_flags ImplementationDef__set_impl_flags
    #endif /* __set_impl_flags */
#endif /* SOMGD_set_impl_flags */

/*
 * New Method: _get_impl_server_class
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_server_class)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_server_class "::ImplementationDef::impl_server_class"
#define ImplementationDef__get_impl_server_class(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_server_class) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_server_class
    #if (defined(_get_impl_server_class) || defined(__get_impl_server_class))
        #undef _get_impl_server_class
        #undef __get_impl_server_class
        #define SOMGD_get_impl_server_class 1
    #else
        #define __get_impl_server_class ImplementationDef__get_impl_server_class
    #endif /* __get_impl_server_class */
#endif /* SOMGD_get_impl_server_class */

/*
 * New Method: _set_impl_server_class
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_server_class)(ImplementationDef *somSelf, Environment *ev,
		string impl_server_class);
#define somMD_ImplementationDef__set_impl_server_class "::ImplementationDef::impl_server_class"
#define ImplementationDef__set_impl_server_class(somSelf,ev,impl_server_class) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_server_class) \
	(somSelf,ev,impl_server_class))
#ifndef SOMGD_set_impl_server_class
    #if (defined(_set_impl_server_class) || defined(__set_impl_server_class))
        #undef _set_impl_server_class
        #undef __set_impl_server_class
        #define SOMGD_set_impl_server_class 1
    #else
        #define __set_impl_server_class ImplementationDef__set_impl_server_class
    #endif /* __set_impl_server_class */
#endif /* SOMGD_set_impl_server_class */

/*
 * New Method: _get_impl_refdata_file
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_refdata_file)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_refdata_file "::ImplementationDef::impl_refdata_file"
#define ImplementationDef__get_impl_refdata_file(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_refdata_file) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_refdata_file
    #if (defined(_get_impl_refdata_file) || defined(__get_impl_refdata_file))
        #undef _get_impl_refdata_file
        #undef __get_impl_refdata_file
        #define SOMGD_get_impl_refdata_file 1
    #else
        #define __get_impl_refdata_file ImplementationDef__get_impl_refdata_file
    #endif /* __get_impl_refdata_file */
#endif /* SOMGD_get_impl_refdata_file */

/*
 * New Method: _set_impl_refdata_file
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_refdata_file)(ImplementationDef *somSelf, Environment *ev,
		string impl_refdata_file);
#define somMD_ImplementationDef__set_impl_refdata_file "::ImplementationDef::impl_refdata_file"
#define ImplementationDef__set_impl_refdata_file(somSelf,ev,impl_refdata_file) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_refdata_file) \
	(somSelf,ev,impl_refdata_file))
#ifndef SOMGD_set_impl_refdata_file
    #if (defined(_set_impl_refdata_file) || defined(__set_impl_refdata_file))
        #undef _set_impl_refdata_file
        #undef __set_impl_refdata_file
        #define SOMGD_set_impl_refdata_file 1
    #else
        #define __set_impl_refdata_file ImplementationDef__set_impl_refdata_file
    #endif /* __set_impl_refdata_file */
#endif /* SOMGD_set_impl_refdata_file */

/*
 * New Method: _get_impl_refdata_bkup
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_refdata_bkup)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_refdata_bkup "::ImplementationDef::impl_refdata_bkup"
#define ImplementationDef__get_impl_refdata_bkup(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_refdata_bkup) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_refdata_bkup
    #if (defined(_get_impl_refdata_bkup) || defined(__get_impl_refdata_bkup))
        #undef _get_impl_refdata_bkup
        #undef __get_impl_refdata_bkup
        #define SOMGD_get_impl_refdata_bkup 1
    #else
        #define __get_impl_refdata_bkup ImplementationDef__get_impl_refdata_bkup
    #endif /* __get_impl_refdata_bkup */
#endif /* SOMGD_get_impl_refdata_bkup */

/*
 * New Method: _set_impl_refdata_bkup
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_refdata_bkup)(ImplementationDef *somSelf, Environment *ev,
		string impl_refdata_bkup);
#define somMD_ImplementationDef__set_impl_refdata_bkup "::ImplementationDef::impl_refdata_bkup"
#define ImplementationDef__set_impl_refdata_bkup(somSelf,ev,impl_refdata_bkup) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_refdata_bkup) \
	(somSelf,ev,impl_refdata_bkup))
#ifndef SOMGD_set_impl_refdata_bkup
    #if (defined(_set_impl_refdata_bkup) || defined(__set_impl_refdata_bkup))
        #undef _set_impl_refdata_bkup
        #undef __set_impl_refdata_bkup
        #define SOMGD_set_impl_refdata_bkup 1
    #else
        #define __set_impl_refdata_bkup ImplementationDef__set_impl_refdata_bkup
    #endif /* __set_impl_refdata_bkup */
#endif /* SOMGD_set_impl_refdata_bkup */

/*
 * New Method: _get_impl_hostname
 */
typedef string   (SOMLINK * somTD_ImplementationDef__get_impl_hostname)(ImplementationDef *somSelf, Environment *ev);
#define somMD_ImplementationDef__get_impl_hostname "::ImplementationDef::impl_hostname"
#define ImplementationDef__get_impl_hostname(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impl_hostname) \
	(somSelf,ev))
#ifndef SOMGD_get_impl_hostname
    #if (defined(_get_impl_hostname) || defined(__get_impl_hostname))
        #undef _get_impl_hostname
        #undef __get_impl_hostname
        #define SOMGD_get_impl_hostname 1
    #else
        #define __get_impl_hostname ImplementationDef__get_impl_hostname
    #endif /* __get_impl_hostname */
#endif /* SOMGD_get_impl_hostname */

/*
 * New Method: _set_impl_hostname
 */
typedef void   (SOMLINK * somTD_ImplementationDef__set_impl_hostname)(ImplementationDef *somSelf, Environment *ev,
		string impl_hostname);
#define somMD_ImplementationDef__set_impl_hostname "::ImplementationDef::impl_hostname"
#define ImplementationDef__set_impl_hostname(somSelf,ev,impl_hostname) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impl_hostname) \
	(somSelf,ev,impl_hostname))
#ifndef SOMGD_set_impl_hostname
    #if (defined(_set_impl_hostname) || defined(__set_impl_hostname))
        #undef _set_impl_hostname
        #undef __set_impl_hostname
        #define SOMGD_set_impl_hostname 1
    #else
        #define __set_impl_hostname ImplementationDef__set_impl_hostname
    #endif /* __set_impl_hostname */
#endif /* SOMGD_set_impl_hostname */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ImplementationDef_somDefaultInit SOMObject_somDefaultInit
#define ImplementationDef_somDestruct SOMObject_somDestruct
#define ImplementationDef_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ImplementationDef_somDefaultAssign SOMObject_somDefaultAssign
#define ImplementationDef_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ImplementationDef_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ImplementationDef_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ImplementationDef_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ImplementationDef_somDefaultVAssign SOMObject_somDefaultVAssign
#define ImplementationDef_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ImplementationDef_somInit SOMObject_somInit
#define ImplementationDef_somFree SOMObject_somFree
#define ImplementationDef_somUninit SOMObject_somUninit
#define ImplementationDef_somGetClass SOMObject_somGetClass
#define ImplementationDef_somGetClassName SOMObject_somGetClassName
#define ImplementationDef_somGetSize SOMObject_somGetSize
#define ImplementationDef_somIsA SOMObject_somIsA
#define ImplementationDef_somIsInstanceOf SOMObject_somIsInstanceOf
#define ImplementationDef_somRespondsTo SOMObject_somRespondsTo
#define ImplementationDef_somDispatch SOMObject_somDispatch
#define ImplementationDef_somClassDispatch SOMObject_somClassDispatch
#define ImplementationDef_somCastObj SOMObject_somCastObj
#define ImplementationDef_somResetObj SOMObject_somResetObj
#define ImplementationDef_somDispatchV SOMObject_somDispatchV
#define ImplementationDef_somDispatchL SOMObject_somDispatchL
#define ImplementationDef_somDispatchA SOMObject_somDispatchA
#define ImplementationDef_somDispatchD SOMObject_somDispatchD
#define ImplementationDef_somPrintSelf SOMObject_somPrintSelf
#define ImplementationDef_somDumpSelf SOMObject_somDumpSelf
#define ImplementationDef_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ImplementationDef_h */
