
/*
 * This file was generated by the SOM Compiler.
 * FileName: barproxy.ih.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.19
 *     SOM Emitter emitih.dll: 2.77.1.179
 */

/*
 *    COMPONENT_NAME: somx
 * 
 *    ORIGINS: 27
 * 
 * 
 *    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,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.
 * 
 *    @(#) 2.11.1.1 src/somples.os2/somd/c/proxy/barproxy.idl, somples.somd, som3.0 12/3/96 10:39:33 [12/4/96 15:10:03]
 * 
 * 
 * DISCLAIMER OF WARRANTIES.
 * The following [enclosed] code is sample code created by IBM
 * Corporation. This sample code is not part of any standard or IBM
 * product and is provided to you solely for the purpose of assisting
 * you in the development of your applications.  The code is provided
 * "AS IS". IBM MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
 * NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE, REGARDING THE FUNCTION OR PERFORMANCE OF
 * THIS CODE.  IBM shall not be liable for any damages arising out of
 * your use of the sample code, even if they have been advised of the
 * possibility of such damages.
 * 
 * DISTRIBUTION.
 * This sample code can be freely distributed, copied, altered, and
 * incorporated into other software, provided that it bears the above
 * Copyright notice and DISCLAIMER intact.
 */


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


#ifndef SOM_Bar__Proxy_ih
#define SOM_Bar__Proxy_ih


#if (defined(Bar__Proxy_Class_Source) || defined(SOM_Module_barproxy_Source))
#ifndef SOM_DLL_objs
#define SOM_DLL_objs
#endif
#endif


/*
 * Set the scope of method functions
 */
#ifndef SOM_Scope
#define SOM_Scope static
#endif

#ifndef SOM_Bar__Proxy_h
#include "barproxy.h"
#endif
#include <somcsr.h>
#if defined(__IBMC__) && (__IBMC__ >= 300)
  #pragma info(none)
#else
  #if defined(__IBMC__)
     #pragma checkout(suspend)
  #endif
#endif


/*
 * -- Instance data
 */
typedef void Bar__ProxyData;
#define __somC_Bar__Proxy_NODATA

/*
 * This class introduces no instance data, so no GetData macro is provided
 */

/*
 * -- Primary Implementation File Support
 */
#if (defined(Bar__Proxy_Class_Source) || defined(SOM_Module_barproxy_Source))

#ifndef Bar__ProxyMethodDebug
   #define Bar__ProxyMethodDebug(c,m) SOMMethodDebug(c,m)
#endif  /* Bar__ProxyMethodDebug */

static void SOMLINK __somC_Bar__Proxy_classInit(SOMClass cls);


/*
 * Init ClassData Structures
 */
struct Bar__ProxyClassDataStructure SOM_IMPORTEXPORT_objs_barproxy SOMDLINK Bar__ProxyClassData = {0};
struct Bar__ProxyCClassDataStructure SOM_IMPORTEXPORT_objs_barproxy SOMDLINK Bar__ProxyCClassData = {0};


/*
 * Identifiers
 */
static char __somC_Strings_Bar__Proxy0[] = {"Bar__Proxy"}; /* class name */
static char __somC_Strings_Bar__Proxy1[] = {"SOMDClientProxy"}; /* parent name */
static char __somC_Strings_Bar__Proxy2[] = {"Bar"}; /* parent name */
static char __somC_Strings_Bar__Proxy3[] = {"_get_attribute_long"}; /* overridden method name */
static char __somC_Strings_Bar__Proxy4[] = {"_set_attribute_long"}; /* overridden method name */
static char __somC_Strings_Bar__Proxy5[] = {"method1"}; /* overridden method name */
static char * __somC_Bar__Proxy_regIdsArray[] = {
	__somC_Strings_Bar__Proxy0,
	__somC_Strings_Bar__Proxy1,
	__somC_Strings_Bar__Proxy2,
#ifndef __somC_Bar__Proxy_regIds__get_attribute_long
#define __somC_Bar__Proxy_regIds__get_attribute_long 3
#endif
	__somC_Strings_Bar__Proxy3,
#ifndef __somC_Bar__Proxy_regIds__set_attribute_long
#define __somC_Bar__Proxy_regIds__set_attribute_long 4
#endif
	__somC_Strings_Bar__Proxy4,
#ifndef __somC_Bar__Proxy_regIds_method1
#define __somC_Bar__Proxy_regIds_method1 5
#endif
	__somC_Strings_Bar__Proxy5
};


/*
 * Overridden method: _get_attribute_long
 */
SOM_Scope long  SOMLINK _get_attribute_long(Bar__Proxy somSelf, Environment *ev);
static somMethodProc* Bar__Proxy_parent_Bar__get_attribute_long_resolved;
#define Bar__Proxy_parent_Bar__get_attribute_long(somSelf,ev) \
  ((( somTD_Bar__get_attribute_long ) \
    Bar__Proxy_parent_Bar__get_attribute_long_resolved)(somSelf,ev))
#ifndef SOMGD_pmc_Bar__get_attribute_long
  #ifdef parent_Bar__get_attribute_long
     #define SOMGD_pmc_Bar__get_attribute_long 1
     #undef parent_Bar__get_attribute_long
  #else
     #define parent_Bar__get_attribute_long Bar__Proxy_parent_Bar__get_attribute_long
  #endif /* parent_Bar__get_attribute_long */
#endif /* SOMGD_pmc_Bar__get_attribute_long */
#ifndef SOMGD_pmc_parent__get_attribute_long
  #ifdef parent__get_attribute_long
    #define SOMGD_pmc_parent__get_attribute_long
    #undef parent__get_attribute_long
  #else
#define parent__get_attribute_long Bar__Proxy_parent_Bar__get_attribute_long
  #endif
#endif
#define Bar__Proxy_parents__get_attribute_long(somSelf,ev) (\
   Bar__Proxy_parent_Bar__get_attribute_long(somSelf,ev))
#define SOMPCALLBar__Proxy__get_attribute_long
static somMethodProc* Bar__Proxy_pcall__get_attribute_long_resolved;
#define Bar__Proxy_pcall__get_attribute_long(somSelf,ev) \
  ((( somTD_Bar__get_attribute_long ) \
    Bar__Proxy_pcall__get_attribute_long_resolved)(somSelf,ev))
static long  SOMLINK Bar__Proxy_pcallResolve__get_attribute_long(Bar__Proxy somSelf, Environment *ev)
{
   return ((somTD_Bar__get_attribute_long) 
      somPCallResolve(somSelf, _Bar__Proxy, _SOMMTOKEN_Bar(_get_attribute_long)))(somSelf,ev);
}


/*
 * Overridden method: _set_attribute_long
 */
SOM_Scope void  SOMLINK _set_attribute_long(Bar__Proxy somSelf, Environment *ev,
		long attribute_long);
static somMethodProc* Bar__Proxy_parent_Bar__set_attribute_long_resolved;
#define Bar__Proxy_parent_Bar__set_attribute_long(somSelf,ev,attribute_long) \
  ((( somTD_Bar__set_attribute_long ) \
    Bar__Proxy_parent_Bar__set_attribute_long_resolved)(somSelf,ev,attribute_long))
#ifndef SOMGD_pmc_Bar__set_attribute_long
  #ifdef parent_Bar__set_attribute_long
     #define SOMGD_pmc_Bar__set_attribute_long 1
     #undef parent_Bar__set_attribute_long
  #else
     #define parent_Bar__set_attribute_long Bar__Proxy_parent_Bar__set_attribute_long
  #endif /* parent_Bar__set_attribute_long */
#endif /* SOMGD_pmc_Bar__set_attribute_long */
#ifndef SOMGD_pmc_parent__set_attribute_long
  #ifdef parent__set_attribute_long
    #define SOMGD_pmc_parent__set_attribute_long
    #undef parent__set_attribute_long
  #else
#define parent__set_attribute_long Bar__Proxy_parent_Bar__set_attribute_long
  #endif
#endif
#define Bar__Proxy_parents__set_attribute_long(somSelf,ev,attribute_long) (\
   Bar__Proxy_parent_Bar__set_attribute_long(somSelf,ev,attribute_long))
#define SOMPCALLBar__Proxy__set_attribute_long
static somMethodProc* Bar__Proxy_pcall__set_attribute_long_resolved;
#define Bar__Proxy_pcall__set_attribute_long(somSelf,ev,attribute_long) \
  ((( somTD_Bar__set_attribute_long ) \
    Bar__Proxy_pcall__set_attribute_long_resolved)(somSelf,ev,attribute_long))
static void  SOMLINK Bar__Proxy_pcallResolve__set_attribute_long(Bar__Proxy somSelf, Environment *ev,
		long attribute_long)
{
   ((somTD_Bar__set_attribute_long) 
      somPCallResolve(somSelf, _Bar__Proxy, _SOMMTOKEN_Bar(_set_attribute_long)))(somSelf,ev,attribute_long);
}


/*
 * Overridden method: method1
 */
SOM_Scope string  SOMLINK method1(Bar__Proxy somSelf, Environment *ev,
		string* a,
		long* b,
		ReferenceData* c);
static somMethodProc* Bar__Proxy_parent_Bar_method1_resolved;
#define Bar__Proxy_parent_Bar_method1(somSelf,ev,a,b,c) \
  ((( somTD_Bar_method1 ) \
    Bar__Proxy_parent_Bar_method1_resolved)(somSelf,ev,a,b,c))
#ifndef SOMGD_pmc_Bar_method1
  #ifdef parent_Bar_method1
     #define SOMGD_pmc_Bar_method1 1
     #undef parent_Bar_method1
  #else
     #define parent_Bar_method1 Bar__Proxy_parent_Bar_method1
  #endif /* parent_Bar_method1 */
#endif /* SOMGD_pmc_Bar_method1 */
#ifndef SOMGD_pmc_parent_method1
  #ifdef parent_method1
    #define SOMGD_pmc_parent_method1
    #undef parent_method1
  #else
#define parent_method1 Bar__Proxy_parent_Bar_method1
  #endif
#endif
#define Bar__Proxy_parents_method1(somSelf,ev,a,b,c) (\
   Bar__Proxy_parent_Bar_method1(somSelf,ev,a,b,c))
#define SOMPCALLBar__Proxy_method1
static somMethodProc* Bar__Proxy_pcall_method1_resolved;
#define Bar__Proxy_pcall_method1(somSelf,ev,a,b,c) \
  ((( somTD_Bar_method1 ) \
    Bar__Proxy_pcall_method1_resolved)(somSelf,ev,a,b,c))
static string  SOMLINK Bar__Proxy_pcallResolve_method1(Bar__Proxy somSelf, Environment *ev,
		string* a,
		long* b,
		ReferenceData* c)
{
   return ((somTD_Bar_method1) 
      somPCallResolve(somSelf, _Bar__Proxy, _SOMMTOKEN_Bar(method1)))(somSelf,ev,a,b,c);
}


/*
 * Functions for attributes.
 */

/*
 * Special Method Support
 */

/*
 * -- Routines and Structures to create the class object
 */
static SOMClass * __somC_Bar__Proxy_parentArray[] = {
	NULL,
	NULL,
};
void * __somC_Bar__Proxy_parentMtabs[2];

static somOverrideMethod_t2 __somC_Bar__Proxy_overridesArray[] = {
{ &(__somC_Bar__Proxy_regIdsArray[__somC_Bar__Proxy_regIds__get_attribute_long]), 
#ifdef SOMPCALLBar__Proxy__get_attribute_long
   (somMethodPtr*)&Bar__Proxy_pcall__get_attribute_long_resolved, 
   (somMethodPtr)Bar__Proxy_pcallResolve__get_attribute_long, 
#else
   (somMethodPtr*)0, 
   (somMethodPtr)0, 
#endif
(somMethodPtr)_get_attribute_long },
{ &(__somC_Bar__Proxy_regIdsArray[__somC_Bar__Proxy_regIds__set_attribute_long]), 
#ifdef SOMPCALLBar__Proxy__set_attribute_long
   (somMethodPtr*)&Bar__Proxy_pcall__set_attribute_long_resolved, 
   (somMethodPtr)Bar__Proxy_pcallResolve__set_attribute_long, 
#else
   (somMethodPtr*)0, 
   (somMethodPtr)0, 
#endif
(somMethodPtr)_set_attribute_long },
{ &(__somC_Bar__Proxy_regIdsArray[__somC_Bar__Proxy_regIds_method1]), 
#ifdef SOMPCALLBar__Proxy_method1
   (somMethodPtr*)&Bar__Proxy_pcall_method1_resolved, 
   (somMethodPtr)Bar__Proxy_pcallResolve_method1, 
#else
   (somMethodPtr*)0, 
   (somMethodPtr)0, 
#endif
(somMethodPtr)method1 }
};

static somClassVars1 __somC_Bar__Proxy_classVars1 = {
	1,		/* layoutVersion */
	(void *)NULL,	/* extension */
	0,	/* dataSize */
	0,		/* type code dataAlignment */
	(somMethodPtr)0,	/* classAllocate */
	(somMethodPtr)0	/* classDeallocate */
};

static struct Bar__ProxyClassDataStructure __somC_Bar__Proxy_resolvedMTokens;

static void * __somC_Bar__Proxy_CIB_unsharedClassVariablesPtr = 0;
som3ClassInfoStruct __somC_Bar__Proxy_ClassInfo; /* C forward reference */

SOM_CIB Bar__Proxy_ClassInitBlock = {
	1,	/* layoutVersion */
	&__somC_Bar__Proxy_classVars1,
	&__somC_Bar__Proxy_CIB_unsharedClassVariablesPtr,	/* unsharedVars */
	Bar__Proxy_MajorVersion,
	Bar__Proxy_MinorVersion,
	0x60004,	/* constFlags */
	0xFFFFFFFF,	/* inheritVars */
	0,	/* classMeta */
	(somMethodPtr) __somC_Bar__Proxy_classInit,	/* classInit */
	(somMethodPtr) 0,	/* classUninit */
	(somMethodPtr) 0,	/* legacyInit */
	(somMethodPtr) 0,	/* legacyUninit */
	(somMethodPtr) 0,	/* udaAssign */
	(somMethodPtr) 0,	/* udaConstAssign */
	0,	/* protectedDataOffset */
	0,	/* numEmbeddedObjs */
	0,	/* embeddedObjs */
	6,	/* numRegIds */
	__somC_Bar__Proxy_regIdsArray,	/* regIds */
	(sizeof(struct Bar__ProxyClassDataStructure) - sizeof(SOMClass *))/sizeof(somMToken),	/* numClassDataEntries */
	(somClassDataStructurePtr)&Bar__ProxyClassData,
	(somCClassDataStructurePtr)&Bar__ProxyCClassData,
	&__somC_Bar__Proxy_ClassInfo,
	2,	/* numParents */
	(SOMClass**)__somC_Bar__Proxy_parentArray,	/* parents */
	2,	/* numDirectInitClasses */
	(SOMClass**)__somC_Bar__Proxy_parentArray,	/* directInitClasses */
	0,	/* numNewInitializers */
	0,	/* newInitializerSymbols */
	0,	/* numOvInitializers */
	0,	/* ovInitializerSymbols */
	0,	/* special overrides */
	0,	/* maxNDMethods */
	0,	/* newNDMethods */
	3,	/* numOverrides */
	__somC_Bar__Proxy_overridesArray,	/* overrides */
	0,	/* numInheritedSelections */
	0,	/* inheritedSelections */
	0,	/* numMigratedMethods */
	0 	/* migrated methods */
};	/* CIB */

static som3ClassDetails __somC_Bar__Proxy_ClassDetails = {
	(somMethodTabPtr)NULL,	/* mtab */
	(somMethodTabPtr *)__somC_Bar__Proxy_parentMtabs,	/* parentMtabs */
	&Bar__Proxy_ClassInitBlock,	/* CIB pointer */
	(somTD_somRenewNoInitNoZeroThunk)0,	/* somRenewNoInitNoZeroThunk */
	(long)0,	/* instanceSize */
	(somMethodProc**)NULL,	/* resolvedInits */
	(somClassDataStructure *)&__somC_Bar__Proxy_resolvedMTokens,	/* resolvedMTokens */
	{0,0,0,0},	/* initCtrl */
	{0,0,0,0},	/* destructCtrl */
	{0,0,0,0},	/* assignCtrl */
	(long)1,	/* layoutVersion */
	(void*)NULL,	/* extension */
	(somDToken)NULL,	/* publicDataToken */
	(somDToken)NULL,	/* protectedDataToken */
};
som3ClassInfoStruct __somC_Bar__Proxy_ClassInfo = {
	0,	/* classObject */
	&__somC_Bar__Proxy_ClassDetails	/* class details */
};


/*
 * Class Creation and Initialization
 */

#if defined(__IBMC__) && (defined(_WIN32) || defined(__OS2__)) && !defined(SOM_PREWARP)
#pragma alloc_text (SEG0002, __somC_Bar__Proxy_classInit)
#pragma alloc_text (SEG0002, Bar__ProxyNewClass)
#endif

/* classinit function */
SOM_Scope void SOMLINK __somC_Bar__Proxy_classInit(SOMClass somSelf)
{
   SOM_IgnoreWarning(somSelf);
   Bar__Proxy_parent_Bar_method1_resolved = 
	somParentNumResolve(Bar__ProxyCClassData.parentMtab, 2, _SOMMTOKEN_Bar(method1)); 
   Bar__Proxy_parent_Bar__set_attribute_long_resolved = 
	somParentNumResolve(Bar__ProxyCClassData.parentMtab, 2, _SOMMTOKEN_Bar(_set_attribute_long)); 
   Bar__Proxy_parent_Bar__get_attribute_long_resolved = 
	somParentNumResolve(Bar__ProxyCClassData.parentMtab, 2, _SOMMTOKEN_Bar(_get_attribute_long)); 
}

/* NewClass Function */
SOMEXTERN SOM_IMPORTEXPORT_objs_barproxy SOMClass  SOMLINK Bar__ProxyNewClass (long reqMajorVersion, long reqMinorVersion)
{
   if (_SOMCLASS_Bar__Proxy && _somCheckVersion(_SOMCLASS_Bar__Proxy,reqMajorVersion,reqMinorVersion))
      return _SOMCLASS_Bar__Proxy;
__somC_Bar__Proxy_parentArray[0] = (SOMClass *)&_SOMCLASS_SOMDClientProxy;
__somC_Bar__Proxy_parentArray[1] = (SOMClass *)&_SOMCLASS_Bar;
   /* require parents */
   if (!_SOMCLASS_SOMDClientProxy) SOMDClientProxyNewClass(SOMDClientProxy_MajorVersion,SOMDClientProxy_MinorVersion);
   if (!_SOMCLASS_Bar) BarNewClass(Bar_MajorVersion,Bar_MinorVersion);
   /* return new class */
   return somBuildClass2( &Bar__Proxy_ClassInitBlock, reqMajorVersion, reqMinorVersion );
}

#endif       /* Primary Implementation Support */
#if defined(__IBMC__) && (__IBMC__ >= 300)
  #pragma info(restore)
#else
  #if defined(__IBMC__)
    #pragma checkout(resume)
  #endif
#endif

#endif       /* SOM_Bar__Proxy_ih */
