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

/*
 *    @(#) 2.37 src/somd/somdobj.idl, somd, som3.0 9/26/96 14:02:18 [12/22/96 21:11:55]
 * 
 *    COMPONENT_NAME: somd
 * 
 *    ORIGINS: 27
 * 
 *     25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,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.
 * 
 * 
 *    This is the class that implements the behavior of CORBA object references,
 *    e.g., get_implementation, get_interface, duplicate, release, etc.
 * 
 *    In DSOM, there is also another derivation of this class:  SOMDClientProxy.
 *    This subclass inherits the implementation of this class, but extends it
 *    by overriding sommProxyDispatch with a "remote dispatch" method, and
 *    caches the binding to the server process.  Whenever a remote object is
 *    accessed, it is represented in the client process by a SOMDClientProxy
 *    object.
 *  96F8647, 96F8648, 96F8850 (C) Copyright IBM Corp. 1992, 1994
 *  All Rights Reserved
 *  Licensed Materials - Property of IBM
 *   SOMObject: System Object Model root class
 */


#ifndef SOM_ImplementationDef_h
#define SOM_ImplementationDef_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_somd_impldef
#ifdef SOM_DLL_somd
	/* export semantics */
	#if defined(SOM_DEFFILE_somd)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somd))\
	|| !defined(SOM_Module_impldef_Source)
	#define SOM_IMPORTEXPORT_somd_impldef
	#else
	#define SOM_IMPORTEXPORT_somd_impldef SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somd_impldef 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 ImplementationDef
#define ImplementationDef SOMObject
#endif

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

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Container
    #define Container SOMObject
#endif /* Container */
#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 */
#ifndef SOMDObject
    #define SOMDObject SOMObject
#endif /* SOMDObject */
#ifndef Principal
    #define Principal SOMObject
#endif /* Principal */
#ifndef ImplementationDef
    #define ImplementationDef SOMObject
#endif /* ImplementationDef */
#ifndef InterfaceDef
    #define InterfaceDef SOMObject
#endif /* InterfaceDef */
#ifndef NVList
    #define NVList SOMObject
#endif /* NVList */
#ifndef Context
    #define Context SOMObject
#endif /* Context */
#ifndef Request
    #define Request SOMObject
#endif /* Request */
#ifndef CosObjectIdentity_IdentifiableObject
    #define CosObjectIdentity_IdentifiableObject SOMObject
#endif /* CosObjectIdentity_IdentifiableObject */
#ifndef CosStream_Streamable
    #define CosStream_Streamable SOMObject
#endif /* CosStream_Streamable */
#ifndef CosStream_StreamableFactory
    #define CosStream_StreamableFactory SOMObject
#endif /* CosStream_StreamableFactory */
#define ImplementationDef_SOMD_MAXLEN_IMPL_ID 36 /* 36 */
#define ImplementationDef_SOMD_MAXLEN_IMPL_ALIAS 255 /* 255 */
#define ImplementationDef_SOMD_MAXLEN_IMPL_PROGRAM 255 /* 255 */
#define ImplementationDef_SOMD_MAXLEN_FILENAME 255 /* 255 */
#define ImplementationDef_SOMD_MAXLEN_HOSTNAME 32 /* 32 */
#define ImplementationDef_SOMD_MAXLEN_CLASSNAME 255 /* 255 */
#ifndef _IDL_SEQUENCE_octet_defined
#define _IDL_SEQUENCE_octet_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    octet *_buffer;
} _IDL_SEQUENCE_octet;
#endif /* _IDL_SEQUENCE_octet_defined */ 
typedef
_IDL_SEQUENCE_octet* ImplementationDef_octet_seqP;
/*
 *  pointer to an octet sequence
 */

#ifndef _IDL_SEQUENCE_string_defined
#define _IDL_SEQUENCE_string_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    string *_buffer;
} _IDL_SEQUENCE_string;
#endif /* _IDL_SEQUENCE_string_defined */ 
typedef
struct ImplementationDef_prot_response {
string  protocol;
_IDL_SEQUENCE_string* response;
} ImplementationDef_prot_response;
/*
 *  structure containing the protocol along with its responses
 *  to form a valid tagged profile.
 */

struct ImplementationDef_prot_response;
#ifndef _IDL_SEQUENCE_ImplementationDef_prot_response_defined
#define _IDL_SEQUENCE_ImplementationDef_prot_response_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    struct ImplementationDef_prot_response *_buffer;
} _IDL_SEQUENCE_ImplementationDef_prot_response;
#endif /* _IDL_SEQUENCE_ImplementationDef_prot_response_defined */ 
typedef
_IDL_SEQUENCE_ImplementationDef_prot_response ImplementationDef_seq_prot_responses;
/*
 *  ImplementationDef attributes
 */


#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_SOMD_MAXLEN_IMPL_ID
    #ifdef SOMD_MAXLEN_IMPL_ID
        #undef SOMD_MAXLEN_IMPL_ID
        #define SOMTGD_SOMD_MAXLEN_IMPL_ID 1
    #else
        #define SOMD_MAXLEN_IMPL_ID ImplementationDef_SOMD_MAXLEN_IMPL_ID
    #endif /* SOMD_MAXLEN_IMPL_ID */
#endif /* SOMTGD_SOMD_MAXLEN_IMPL_ID */
#ifndef SOMTGD_SOMD_MAXLEN_IMPL_ALIAS
    #ifdef SOMD_MAXLEN_IMPL_ALIAS
        #undef SOMD_MAXLEN_IMPL_ALIAS
        #define SOMTGD_SOMD_MAXLEN_IMPL_ALIAS 1
    #else
        #define SOMD_MAXLEN_IMPL_ALIAS ImplementationDef_SOMD_MAXLEN_IMPL_ALIAS
    #endif /* SOMD_MAXLEN_IMPL_ALIAS */
#endif /* SOMTGD_SOMD_MAXLEN_IMPL_ALIAS */
#ifndef SOMTGD_SOMD_MAXLEN_IMPL_PROGRAM
    #ifdef SOMD_MAXLEN_IMPL_PROGRAM
        #undef SOMD_MAXLEN_IMPL_PROGRAM
        #define SOMTGD_SOMD_MAXLEN_IMPL_PROGRAM 1
    #else
        #define SOMD_MAXLEN_IMPL_PROGRAM ImplementationDef_SOMD_MAXLEN_IMPL_PROGRAM
    #endif /* SOMD_MAXLEN_IMPL_PROGRAM */
#endif /* SOMTGD_SOMD_MAXLEN_IMPL_PROGRAM */
#ifndef SOMTGD_SOMD_MAXLEN_FILENAME
    #ifdef SOMD_MAXLEN_FILENAME
        #undef SOMD_MAXLEN_FILENAME
        #define SOMTGD_SOMD_MAXLEN_FILENAME 1
    #else
        #define SOMD_MAXLEN_FILENAME ImplementationDef_SOMD_MAXLEN_FILENAME
    #endif /* SOMD_MAXLEN_FILENAME */
#endif /* SOMTGD_SOMD_MAXLEN_FILENAME */
#ifndef SOMTGD_SOMD_MAXLEN_HOSTNAME
    #ifdef SOMD_MAXLEN_HOSTNAME
        #undef SOMD_MAXLEN_HOSTNAME
        #define SOMTGD_SOMD_MAXLEN_HOSTNAME 1
    #else
        #define SOMD_MAXLEN_HOSTNAME ImplementationDef_SOMD_MAXLEN_HOSTNAME
    #endif /* SOMD_MAXLEN_HOSTNAME */
#endif /* SOMTGD_SOMD_MAXLEN_HOSTNAME */
#ifndef SOMTGD_SOMD_MAXLEN_CLASSNAME
    #ifdef SOMD_MAXLEN_CLASSNAME
        #undef SOMD_MAXLEN_CLASSNAME
        #define SOMTGD_SOMD_MAXLEN_CLASSNAME 1
    #else
        #define SOMD_MAXLEN_CLASSNAME ImplementationDef_SOMD_MAXLEN_CLASSNAME
    #endif /* SOMD_MAXLEN_CLASSNAME */
#endif /* SOMTGD_SOMD_MAXLEN_CLASSNAME */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_octet_seqP
    #ifdef octet_seqP
        #undef octet_seqP
        #define SOMTGD_octet_seqP 1
    #else
        #define octet_seqP ImplementationDef_octet_seqP
    #endif /* octet_seqP */
#endif /* SOMTGD_octet_seqP */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD_prot_response
    #ifdef prot_response
        #undef prot_response
        #define SOMTGD_prot_response 1
    #else
        #define prot_response ImplementationDef_prot_response
    #endif /* prot_response */
#endif /* SOMTGD_prot_response */
#ifndef SOMTGD__IDL_SEQUENCE_prot_response
    #ifdef _IDL_SEQUENCE_prot_response
        #undef _IDL_SEQUENCE_prot_response
        #define SOMTGD__IDL_SEQUENCE_prot_response 1
    #else
        #define _IDL_SEQUENCE_prot_response _IDL_SEQUENCE_ImplementationDef_prot_response
    #endif /* _IDL_SEQUENCE_prot_response */
#endif /* SOMTGD__IDL_SEQUENCE_prot_response */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_seq_prot_responses
    #ifdef seq_prot_responses
        #undef seq_prot_responses
        #define SOMTGD_seq_prot_responses 1
    #else
        #define seq_prot_responses ImplementationDef_seq_prot_responses
    #endif /* seq_prot_responses */
#endif /* SOMTGD_seq_prot_responses */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

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

/* flags */
#define IMPLDEF_MULTI_THREAD  0x00000001
#define IMPLDEF_DISABLE_SVR   0x00000004
#define IMPLDEF_IMPLID_SET    0x00000008
#define IMPLDEF_SECUREMODE    0x00000020
#define IMPLDEF_MANAGED       0x00000040

#ifndef SOM_IMPORTEXPORT_somd
#if defined(_WIN32) && !defined(SOM_DLL_somd)
#define SOM_IMPORTEXPORT_somd SOMDLLIMPORT
#else
#define SOM_IMPORTEXPORT_somd
#endif
#endif
#ifdef SOM_STRICT_IDL
SOMEXTERN SOM_IMPORTEXPORT_somd ImplementationDef  SOMDLINK SOMD_ImplDefObject;
#else
SOMEXTERN SOM_IMPORTEXPORT_somd ImplementationDef*  SOMDLINK SOMD_ImplDefObject;
#endif /* SOM_STRICT_IDL */


#define ImplementationDef_MajorVersion 2
#define ImplementationDef_MinorVersion 2

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

/*
 * Declare the ABI 2 ClassData 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_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;
	somMToken get_impl_winserver_handle;
	somMToken _set_config_file;
	somMToken _get_config_file;
	somMToken _set_impldef_class;
	somMToken _get_impldef_class;
	somMToken _set_svr_objref;
	somMToken _get_svr_objref;
	somMToken _set_protocols;
	somMToken _get_protocols;
	somMToken _set_registrar_resp;
	somMToken _get_registrar_resp;
	somMToken _set_impl_version;
	somMToken _get_impl_version;
	somMToken _set_class_in_NS;
	somMToken _get_class_in_NS;
} SOM_IMPORTEXPORT_somd_impldef SOMDLINK ImplementationDefClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct ImplementationDefCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somd_impldef SOMDLINK ImplementationDefCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_ImplementationDef (ImplementationDefClassData.classObject)
#ifndef SOMGD_ImplementationDef
    #if (defined(_ImplementationDef) || defined(__ImplementationDef))
        #undef _ImplementationDef
        #undef __ImplementationDef
        #define SOMGD_ImplementationDef 1
    #else
        #define _ImplementationDef _SOMCLASS_ImplementationDef
    #endif /* _ImplementationDef */
#endif /* SOMGD_ImplementationDef */
#define ImplementationDef_classObj _SOMCLASS_ImplementationDef
#define _SOMMTOKEN_ImplementationDef(method) ((somMToken)ImplementationDefClassData.method)

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

/*
 * New Method: _get_impl_id
 */
typedef string   SOMLINK somTP_ImplementationDef__get_impl_id(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_id *somTD_ImplementationDef__get_impl_id;
/*
 *  Refers to the unique impl_id of a server.
 *  On _get_impl_id, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__get_impl_id "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_id(ImplementationDef somSelf, Environment *ev, 
		string impl_id);
typedef somTP_ImplementationDef__set_impl_id *somTD_ImplementationDef__set_impl_id;
/*
 *  Refers to the unique impl_id of a server.
 *  On _get_impl_id, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__set_impl_id "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_alias(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_alias *somTD_ImplementationDef__get_impl_alias;
/*
 *  impl_alias refers to the server alias
 *  On _get_impl_alias, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__get_impl_alias "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_alias(ImplementationDef somSelf, Environment *ev, 
		string impl_alias);
typedef somTP_ImplementationDef__set_impl_alias *somTD_ImplementationDef__set_impl_alias;
/*
 *  impl_alias refers to the server alias
 *  On _get_impl_alias, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__set_impl_alias "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_program(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_program *somTD_ImplementationDef__get_impl_program;
/*
 *  Contains the name of the server process executable. Default is
 *  somdsvr.exe.
 *  On _get_impl_program, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__get_impl_program "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_program(ImplementationDef somSelf, Environment *ev, 
		string impl_program);
typedef somTP_ImplementationDef__set_impl_program *somTD_ImplementationDef__set_impl_program;
/*
 *  Contains the name of the server process executable. Default is
 *  somdsvr.exe.
 *  On _get_impl_program, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__set_impl_program "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_flags(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_flags *somTD_ImplementationDef__get_impl_flags;
/*
 *  Bit vector representing the various server options.
 */
#define somMD_ImplementationDef__get_impl_flags "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_flags(ImplementationDef somSelf, Environment *ev, 
		Flags impl_flags);
typedef somTP_ImplementationDef__set_impl_flags *somTD_ImplementationDef__set_impl_flags;
/*
 *  Bit vector representing the various server options.
 */
#define somMD_ImplementationDef__set_impl_flags "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_server_class(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_server_class *somTD_ImplementationDef__get_impl_server_class;
/*
 *  Represents the class of the server object. Default is SOMDServer.
 *  On _get_impl_server_class, ownership of results are transfered to the
 *  caller.
 */
#define somMD_ImplementationDef__get_impl_server_class "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_server_class(ImplementationDef somSelf, Environment *ev, 
		string impl_server_class);
typedef somTP_ImplementationDef__set_impl_server_class *somTD_ImplementationDef__set_impl_server_class;
/*
 *  Represents the class of the server object. Default is SOMDServer.
 *  On _get_impl_server_class, ownership of results are transfered to the
 *  caller.
 */
#define somMD_ImplementationDef__set_impl_server_class "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_refdata_file(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_refdata_file *somTD_ImplementationDef__get_impl_refdata_file;
/*
 *  Contains the name of the file containing ref data.
 *  Meaningful only in 2.X environment.
 *  On _get_impl_refdata_file, ownership of results are transfered to the
 *  caller.
 */
#define somMD_ImplementationDef__get_impl_refdata_file "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_refdata_file(ImplementationDef somSelf, Environment *ev, 
		string impl_refdata_file);
typedef somTP_ImplementationDef__set_impl_refdata_file *somTD_ImplementationDef__set_impl_refdata_file;
/*
 *  Contains the name of the file containing ref data.
 *  Meaningful only in 2.X environment.
 *  On _get_impl_refdata_file, ownership of results are transfered to the
 *  caller.
 */
#define somMD_ImplementationDef__set_impl_refdata_file "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_refdata_bkup(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_refdata_bkup *somTD_ImplementationDef__get_impl_refdata_bkup;
/*
 *  Contains the name of the file containing ref data backup.
 *  Meaningful only in 2.X environment.
 *  On _get_impl_refdata_bkup, ownership of results are transfered to the
 *  caller.
 */
#define somMD_ImplementationDef__get_impl_refdata_bkup "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_refdata_bkup(ImplementationDef somSelf, Environment *ev, 
		string impl_refdata_bkup);
typedef somTP_ImplementationDef__set_impl_refdata_bkup *somTD_ImplementationDef__set_impl_refdata_bkup;
/*
 *  Contains the name of the file containing ref data backup.
 *  Meaningful only in 2.X environment.
 *  On _get_impl_refdata_bkup, ownership of results are transfered to the
 *  caller.
 */
#define somMD_ImplementationDef__set_impl_refdata_bkup "::ImplementationDef::_set_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 somTP_ImplementationDef__get_impl_hostname(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impl_hostname *somTD_ImplementationDef__get_impl_hostname;
/*
 *  Contains the hostname on which the server process would be started.
 *  Meaningful only in 2.X environment.
 *  On _get_impl_hostname, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__get_impl_hostname "::ImplementationDef::_get_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 somTP_ImplementationDef__set_impl_hostname(ImplementationDef somSelf, Environment *ev, 
		string impl_hostname);
typedef somTP_ImplementationDef__set_impl_hostname *somTD_ImplementationDef__set_impl_hostname;
/*
 *  Contains the hostname on which the server process would be started.
 *  Meaningful only in 2.X environment.
 *  On _get_impl_hostname, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__set_impl_hostname "::ImplementationDef::_set_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 */

/*
 * New Method: _get_config_file
 */
typedef string   SOMLINK somTP_ImplementationDef__get_config_file(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_config_file *somTD_ImplementationDef__get_config_file;
/*
 *  Contains the path of the config file which a server process could
 *  use to override those provided by the default config file in SOMENV.
 *  On _get_config_file, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__get_config_file "::ImplementationDef::_get_config_file"
#define ImplementationDef__get_config_file(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_config_file) \
	(somSelf,ev))
#ifndef SOMGD_get_config_file
    #if (defined(_get_config_file) || defined(__get_config_file))
        #undef _get_config_file
        #undef __get_config_file
        #define SOMGD_get_config_file 1
    #else
        #define __get_config_file ImplementationDef__get_config_file
    #endif /* __get_config_file */
#endif /* SOMGD_get_config_file */

/*
 * New Method: _set_config_file
 */
typedef void   SOMLINK somTP_ImplementationDef__set_config_file(ImplementationDef somSelf, Environment *ev, 
		string config_file);
typedef somTP_ImplementationDef__set_config_file *somTD_ImplementationDef__set_config_file;
/*
 *  Contains the path of the config file which a server process could
 *  use to override those provided by the default config file in SOMENV.
 *  On _get_config_file, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__set_config_file "::ImplementationDef::_set_config_file"
#define ImplementationDef__set_config_file(somSelf,ev,config_file) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_config_file) \
	(somSelf,ev,config_file))
#ifndef SOMGD_set_config_file
    #if (defined(_set_config_file) || defined(__set_config_file))
        #undef _set_config_file
        #undef __set_config_file
        #define SOMGD_set_config_file 1
    #else
        #define __set_config_file ImplementationDef__set_config_file
    #endif /* __set_config_file */
#endif /* SOMGD_set_config_file */

/*
 * New Method: _get_impldef_class
 */
typedef string   SOMLINK somTP_ImplementationDef__get_impldef_class(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_impldef_class *somTD_ImplementationDef__get_impldef_class;
/*
 *  Contains the class of the ImplDef object. By default it is
 *  ImplementationDef.
 *  On _get_impldef_class, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__get_impldef_class "::ImplementationDef::_get_impldef_class"
#define ImplementationDef__get_impldef_class(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_impldef_class) \
	(somSelf,ev))
#ifndef SOMGD_get_impldef_class
    #if (defined(_get_impldef_class) || defined(__get_impldef_class))
        #undef _get_impldef_class
        #undef __get_impldef_class
        #define SOMGD_get_impldef_class 1
    #else
        #define __get_impldef_class ImplementationDef__get_impldef_class
    #endif /* __get_impldef_class */
#endif /* SOMGD_get_impldef_class */

/*
 * New Method: _set_impldef_class
 */
typedef void   SOMLINK somTP_ImplementationDef__set_impldef_class(ImplementationDef somSelf, Environment *ev, 
		string impldef_class);
typedef somTP_ImplementationDef__set_impldef_class *somTD_ImplementationDef__set_impldef_class;
/*
 *  Contains the class of the ImplDef object. By default it is
 *  ImplementationDef.
 *  On _get_impldef_class, ownership of results are transfered to the caller.
 */
#define somMD_ImplementationDef__set_impldef_class "::ImplementationDef::_set_impldef_class"
#define ImplementationDef__set_impldef_class(somSelf,ev,impldef_class) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_impldef_class) \
	(somSelf,ev,impldef_class))
#ifndef SOMGD_set_impldef_class
    #if (defined(_set_impldef_class) || defined(__set_impldef_class))
        #undef _set_impldef_class
        #undef __set_impldef_class
        #define SOMGD_set_impldef_class 1
    #else
        #define __set_impldef_class ImplementationDef__set_impldef_class
    #endif /* __set_impldef_class */
#endif /* SOMGD_set_impldef_class */

/*
 * New Method: _get_svr_objref
 */
typedef ImplementationDef_octet_seqP   SOMLINK somTP_ImplementationDef__get_svr_objref(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_svr_objref *somTD_ImplementationDef__get_svr_objref;
/*
 *  A pointer to a sequence of octets representing the binary form of the
 *  server's objref.
 */
#define somMD_ImplementationDef__get_svr_objref "::ImplementationDef::_get_svr_objref"
#define ImplementationDef__get_svr_objref(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_svr_objref) \
	(somSelf,ev))
#ifndef SOMGD_get_svr_objref
    #if (defined(_get_svr_objref) || defined(__get_svr_objref))
        #undef _get_svr_objref
        #undef __get_svr_objref
        #define SOMGD_get_svr_objref 1
    #else
        #define __get_svr_objref ImplementationDef__get_svr_objref
    #endif /* __get_svr_objref */
#endif /* SOMGD_get_svr_objref */

/*
 * New Method: _set_svr_objref
 */
typedef void   SOMLINK somTP_ImplementationDef__set_svr_objref(ImplementationDef somSelf, Environment *ev, 
		ImplementationDef_octet_seqP svr_objref);
typedef somTP_ImplementationDef__set_svr_objref *somTD_ImplementationDef__set_svr_objref;
/*
 *  A pointer to a sequence of octets representing the binary form of the
 *  server's objref.
 */
#define somMD_ImplementationDef__set_svr_objref "::ImplementationDef::_set_svr_objref"
#define ImplementationDef__set_svr_objref(somSelf,ev,svr_objref) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_svr_objref) \
	(somSelf,ev,svr_objref))
#ifndef SOMGD_set_svr_objref
    #if (defined(_set_svr_objref) || defined(__set_svr_objref))
        #undef _set_svr_objref
        #undef __set_svr_objref
        #define SOMGD_set_svr_objref 1
    #else
        #define __set_svr_objref ImplementationDef__set_svr_objref
    #endif /* __set_svr_objref */
#endif /* SOMGD_set_svr_objref */

/*
 * New Method: _get_protocols
 */
typedef string   SOMLINK somTP_ImplementationDef__get_protocols(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_protocols *somTD_ImplementationDef__get_protocols;
/*
 *  This contains the set of space separated protocol names that was used
 *  in forming the objref.
 */
#define somMD_ImplementationDef__get_protocols "::ImplementationDef::_get_protocols"
#define ImplementationDef__get_protocols(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_protocols) \
	(somSelf,ev))
#ifndef SOMGD_get_protocols
    #if (defined(_get_protocols) || defined(__get_protocols))
        #undef _get_protocols
        #undef __get_protocols
        #define SOMGD_get_protocols 1
    #else
        #define __get_protocols ImplementationDef__get_protocols
    #endif /* __get_protocols */
#endif /* SOMGD_get_protocols */

/*
 * New Method: _set_protocols
 */
typedef void   SOMLINK somTP_ImplementationDef__set_protocols(ImplementationDef somSelf, Environment *ev, 
		string protocols);
typedef somTP_ImplementationDef__set_protocols *somTD_ImplementationDef__set_protocols;
/*
 *  This contains the set of space separated protocol names that was used
 *  in forming the objref.
 */
#define somMD_ImplementationDef__set_protocols "::ImplementationDef::_set_protocols"
#define ImplementationDef__set_protocols(somSelf,ev,protocols) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_protocols) \
	(somSelf,ev,protocols))
#ifndef SOMGD_set_protocols
    #if (defined(_set_protocols) || defined(__set_protocols))
        #undef _set_protocols
        #undef __set_protocols
        #define SOMGD_set_protocols 1
    #else
        #define __set_protocols ImplementationDef__set_protocols
    #endif /* __set_protocols */
#endif /* SOMGD_set_protocols */

/*
 * New Method: _get_registrar_resp
 */
typedef ImplementationDef_seq_prot_responses*   SOMLINK somTP_ImplementationDef__get_registrar_resp(ImplementationDef somSelf, Environment *ev);
typedef somTP_ImplementationDef__get_registrar_resp *somTD_ImplementationDef__get_registrar_resp;
/*
 *  Represents a sequence of structures where each structure contains the
 *  protocol name and a set of responses. This would be used to generate
 *  the tagged profile for that specific protocol through a programmatic
 *  interface.
 */
#define somMD_ImplementationDef__get_registrar_resp "::ImplementationDef::_get_registrar_resp"
#define ImplementationDef__get_registrar_resp(somSelf,ev) \
    (SOM_Resolve(somSelf, ImplementationDef, _get_registrar_resp) \
	(somSelf,ev))
#ifndef SOMGD_get_registrar_resp
    #if (defined(_get_registrar_resp) || defined(__get_registrar_resp))
        #undef _get_registrar_resp
        #undef __get_registrar_resp
        #define SOMGD_get_registrar_resp 1
    #else
        #define __get_registrar_resp ImplementationDef__get_registrar_resp
    #endif /* __get_registrar_resp */
#endif /* SOMGD_get_registrar_resp */

/*
 * New Method: _set_registrar_resp
 */
typedef void   SOMLINK somTP_ImplementationDef__set_registrar_resp(ImplementationDef somSelf, Environment *ev, 
		ImplementationDef_seq_prot_responses* registrar_resp);
typedef somTP_ImplementationDef__set_registrar_resp *somTD_ImplementationDef__set_registrar_resp;
/*
 *  Represents a sequence of structures where each structure contains the
 *  protocol name and a set of responses. This would be used to generate
 *  the tagged profile for that specific protocol through a programmatic
 *  interface.
 */
#define somMD_ImplementationDef__set_registrar_resp "::ImplementationDef::_set_registrar_resp"
#define ImplementationDef__set_registrar_resp(somSelf,ev,registrar_resp) \
    (SOM_Resolve(somSelf, ImplementationDef, _set_registrar_resp) \
	(somSelf,ev,registrar_resp))
#ifndef SOMGD_set_registrar_resp
    #if (defined(_set_registrar_resp) || defined(__set_registrar_resp))
        #undef _set_registrar_resp
        #undef __set_registrar_resp
        #define SOMGD_set_registrar_resp 1
    #else
        #define __set_registrar_resp ImplementationDef__set_registrar_resp
    #endif /* __set_registrar_resp */
#endif /* SOMGD_set_registrar_resp */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define ImplementationDef_externalize_to_stream CosStream_Streamable_externalize_to_stream
#define ImplementationDef_internalize_from_stream CosStream_Streamable_internalize_from_stream
#define ImplementationDef_somDefaultInit SOMObject_somDefaultInit
#define ImplementationDef_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ImplementationDef_is_identical CosObjectIdentity_IdentifiableObject_is_identical
#define ImplementationDef__get_constant_random_id CosObjectIdentity_IdentifiableObject__get_constant_random_id
#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_somUninit SOMObject_somUninit
#define ImplementationDef_somFree SOMObject_somFree
#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_somPrintSelf SOMObject_somPrintSelf
#define ImplementationDef_somDumpSelf SOMObject_somDumpSelf
#define ImplementationDef_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ImplementationDef_h */
