
/*
 * This file was generated by the SOM Compiler.
 * FileName: CNTXT.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.
 * 
 *   IDL specification for CORBA Context Object.
 */


#ifndef SOM_Context_h
#define SOM_Context_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 ContextClassData (*resolve_ContextClassData())
#define ContextCClassData (*resolve_ContextCClassData())

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

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

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

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

/*
 * Context flags
 */
#define CTX_DELETE_DESCENDENTS      0x00000200
#define CTX_RESTRICT_SCOPE          0x00000400


/* alias for CORBA compatibility */
#ifndef Context_delete
#define Context_delete Context_destroy
#endif


#define Context_MajorVersion 2
#define Context_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ContextNewClass c
#define ContextClassData d
#define ContextCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define Context_classObj ContextClassData.classObject
#define _Context Context_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ContextClassDataStructure {
	SOMClass *classObject;
	somMToken set_one_value;
	somMToken set_values;
	somMToken get_values;
	somMToken delete_values;
	somMToken create_child;
	somMToken destroy;
	somMToken _get_context_name;
	somMToken _set_context_name;
	somMToken _get_context_parent;
	somMToken _set_context_parent;
	somMToken _get_properties;
	somMToken _set_properties;
}  _ContextClassData;
SOMEXTERN struct ContextClassDataStructure * SOMLINK resolve_ContextClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ContextCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ContextCClassData;
SOMEXTERN struct ContextCClassDataStructure * SOMLINK resolve_ContextCClassData(void);

/*
 * New and Renew macros for Context
 */
#define ContextNew() \
   (_somNew(_Context ? _Context : ContextNewClass(Context_MajorVersion, Context_MinorVersion)))
#define ContextRenew(buf) \
   (_somRenew(_Context ? _Context : ContextNewClass(Context_MajorVersion, Context_MinorVersion), buf))

/*
 * Override method: somInit
 */
#define Context_somInit(somSelf) \
	SOMObject_somInit(somSelf)

/*
 * New Method: set_one_value
 */
typedef ORBStatus   (SOMLINK * somTD_Context_set_one_value)(Context *somSelf, Environment *ev,
		Identifier prop_name,
		string value);
#define somMD_Context_set_one_value "::Context::set_one_value"
#define Context_set_one_value(somSelf,ev,prop_name,value) \
    (SOM_Resolve(somSelf, Context, set_one_value) \
	(somSelf,ev,prop_name,value))
#ifndef SOMGD_set_one_value
    #if (defined(_set_one_value) || defined(__set_one_value))
        #undef _set_one_value
        #undef __set_one_value
        #define SOMGD_set_one_value 1
    #else
        #define _set_one_value Context_set_one_value
    #endif /* _set_one_value */
#endif /* SOMGD_set_one_value */

/*
 * New Method: set_values
 */
typedef ORBStatus   (SOMLINK * somTD_Context_set_values)(Context *somSelf, Environment *ev,
		NVList* values);
#define somMD_Context_set_values "::Context::set_values"
#define Context_set_values(somSelf,ev,values) \
    (SOM_Resolve(somSelf, Context, set_values) \
	(somSelf,ev,values))
#ifndef SOMGD_set_values
    #if (defined(_set_values) || defined(__set_values))
        #undef _set_values
        #undef __set_values
        #define SOMGD_set_values 1
    #else
        #define _set_values Context_set_values
    #endif /* _set_values */
#endif /* SOMGD_set_values */

/*
 * New Method: get_values
 */
typedef ORBStatus   (SOMLINK * somTD_Context_get_values)(Context *somSelf, Environment *ev,
		Identifier start_scope,
		Flags op_flags,
		Identifier prop_name,
		NVList** values);
#define somMD_Context_get_values "::Context::get_values"
#define Context_get_values(somSelf,ev,start_scope,op_flags,prop_name,values) \
    (SOM_Resolve(somSelf, Context, get_values) \
	(somSelf,ev,start_scope,op_flags,prop_name,values))
#ifndef SOMGD_get_values
    #if (defined(_get_values) || defined(__get_values))
        #undef _get_values
        #undef __get_values
        #define SOMGD_get_values 1
    #else
        #define _get_values Context_get_values
    #endif /* _get_values */
#endif /* SOMGD_get_values */

/*
 * New Method: delete_values
 */
typedef ORBStatus   (SOMLINK * somTD_Context_delete_values)(Context *somSelf, Environment *ev,
		Identifier prop_name);
#define somMD_Context_delete_values "::Context::delete_values"
#define Context_delete_values(somSelf,ev,prop_name) \
    (SOM_Resolve(somSelf, Context, delete_values) \
	(somSelf,ev,prop_name))
#ifndef SOMGD_delete_values
    #if (defined(_delete_values) || defined(__delete_values))
        #undef _delete_values
        #undef __delete_values
        #define SOMGD_delete_values 1
    #else
        #define _delete_values Context_delete_values
    #endif /* _delete_values */
#endif /* SOMGD_delete_values */

/*
 * New Method: create_child
 */
typedef ORBStatus   (SOMLINK * somTD_Context_create_child)(Context *somSelf, Environment *ev,
		Identifier ctx_name,
		Context** child_ctx);
#define somMD_Context_create_child "::Context::create_child"
#define Context_create_child(somSelf,ev,ctx_name,child_ctx) \
    (SOM_Resolve(somSelf, Context, create_child) \
	(somSelf,ev,ctx_name,child_ctx))
#ifndef SOMGD_create_child
    #if (defined(_create_child) || defined(__create_child))
        #undef _create_child
        #undef __create_child
        #define SOMGD_create_child 1
    #else
        #define _create_child Context_create_child
    #endif /* _create_child */
#endif /* SOMGD_create_child */

/*
 * New Method: destroy
 */
typedef ORBStatus   (SOMLINK * somTD_Context_destroy)(Context *somSelf, Environment *ev,
		Flags flags);
#define somMD_Context_destroy "::Context::destroy"
#define Context_destroy(somSelf,ev,flags) \
    (SOM_Resolve(somSelf, Context, destroy) \
	(somSelf,ev,flags))
#ifndef SOMGD_destroy
    #if (defined(_destroy) || defined(__destroy))
        #undef _destroy
        #undef __destroy
        #define SOMGD_destroy 1
    #else
        #define _destroy Context_destroy
    #endif /* _destroy */
#endif /* SOMGD_destroy */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Context_somDefaultInit SOMObject_somDefaultInit
#define Context_somDestruct SOMObject_somDestruct
#define Context_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Context_somDefaultAssign SOMObject_somDefaultAssign
#define Context_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Context_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Context_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Context_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Context_somDefaultVAssign SOMObject_somDefaultVAssign
#define Context_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Context_somFree SOMObject_somFree
#define Context_somUninit SOMObject_somUninit
#define Context_somGetClass SOMObject_somGetClass
#define Context_somGetClassName SOMObject_somGetClassName
#define Context_somGetSize SOMObject_somGetSize
#define Context_somIsA SOMObject_somIsA
#define Context_somIsInstanceOf SOMObject_somIsInstanceOf
#define Context_somRespondsTo SOMObject_somRespondsTo
#define Context_somDispatch SOMObject_somDispatch
#define Context_somClassDispatch SOMObject_somClassDispatch
#define Context_somCastObj SOMObject_somCastObj
#define Context_somResetObj SOMObject_somResetObj
#define Context_somDispatchV SOMObject_somDispatchV
#define Context_somDispatchL SOMObject_somDispatchL
#define Context_somDispatchA SOMObject_somDispatchA
#define Context_somDispatchD SOMObject_somDispatchD
#define Context_somPrintSelf SOMObject_somPrintSelf
#define Context_somDumpSelf SOMObject_somDumpSelf
#define Context_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Context_h */
