
/*
 * This file was generated by the SOM Compiler.
 * FileName: F:\BUILD\NT\ship\include\LinkSrc.xh.
 * Generated using:
 *     SOM Precompiler somipc: Development
 *     SOM Emitter emitxh.dll: Development
 */

#ifndef SOM_ODLinkSource_xh
#define SOM_ODLinkSource_xh

class ODLinkSource;

#define ODLinkSource_MajorVersion 1
#define ODLinkSource_MinorVersion 0

/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

/* C++ parent defs */
#ifndef SOM_ODBaseLinkSource_xh
#include <LinkSrcB.xh>
#endif

#ifndef ODLinkSource_API
#define ODLinkSource_API
/*
 * -- The Class API
 */

/*
 * Start of user-defined types:
 */
class SOMClass;
class SOMObject;
class ODFrame;
class ODFacet;
class ODPlatformCanvas;
class ODObject;
class ODExtension;
class ODRefCntObject;
class ODPersistentObject;
class ODStorageUnit;
class ODBaseLinkSource;
class ODPart;
class ODPartList;
class ODLink;
class ODDraft;
class ODLinkSource;
class ODSession;

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

/* A procedure to create the ODLinkSource Class */
SOMEXTERN
#if (defined(SOM_Module_LinkSrc_Source) || defined(ODLinkSource_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODLinkSource))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
SOMClass * SOMLINK ODLinkSourceNewClass(
		integer4,
		integer4 );

/* The API to the ODLinkSource class object, and the methods it introduces. */
SOMEXTERN struct ODLinkSourceClassDataStructure {
	SOMClass *classObject;
	somMToken reserved1;
	somMToken reserved2;
	somMToken reserved3;
	somMToken reserved4;
	somMToken reserved5;
	somMToken reserved6;
	somMToken reserved7;
	somMToken reserved8;
	somMToken reserved9;
	somMToken reserved10;
	somMToken reserved11;
	somMToken reserved12;
	somMToken reserved13;
	somMToken reserved14;
	somMToken reserved15;
	somMToken reserved16;
	somMToken reserved17;
	somMToken reserved18;
	somMToken reserved19;
}
#if !(defined(SOM_Module_LinkSrc_Source) || defined(ODLinkSource_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODLinkSource))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODLinkSourceClassData;
#define _ODLinkSource ODLinkSourceClassData.classObject

/* The API to parentMtabs for ODLinkSource, and the instance data it introduces. */
SOMEXTERN struct ODLinkSourceCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_LinkSrc_Source) || defined(ODLinkSource_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODLinkSource))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODLinkSourceCClassData;

/*
 * -- Typedefs for ODLinkSource Method Procedures
 */
extern "C" {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef ODBoolean   SOMLINK somTP_ODLinkSource_Lock(ODLinkSource *somSelf, Environment *ev,
		ODULong wait,
		ODLinkKey* key);
typedef somTP_ODLinkSource_Lock *somTD_ODLinkSource_Lock;
typedef void   SOMLINK somTP_ODLinkSource_Unlock(ODLinkSource *somSelf, Environment *ev,
		ODLinkKey key);
typedef somTP_ODLinkSource_Unlock *somTD_ODLinkSource_Unlock;
typedef void   SOMLINK somTP_ODLinkSource_Clear(ODLinkSource *somSelf, Environment *ev,
		ODUpdateID id,
		ODLinkKey key);
typedef somTP_ODLinkSource_Clear *somTD_ODLinkSource_Clear;
typedef ODStorageUnit*   SOMLINK somTP_ODLinkSource_GetContentStorageUnit(ODLinkSource *somSelf, Environment *ev,
		ODLinkKey key);
typedef somTP_ODLinkSource_GetContentStorageUnit *somTD_ODLinkSource_GetContentStorageUnit;
typedef void   SOMLINK somTP_ODLinkSource_ContentUpdated(ODLinkSource *somSelf, Environment *ev,
		ODUpdateID id,
		ODLinkKey key);
typedef somTP_ODLinkSource_ContentUpdated *somTD_ODLinkSource_ContentUpdated;
typedef ODBoolean   SOMLINK somTP_ODLinkSource_ShowLinkSourceInfo(ODLinkSource *somSelf, Environment *ev,
		ODFacet* facet,
		ODUpdateID change,
		ODBoolean changesAllowed,
		ODLinkInfoResult* infoResult);
typedef somTP_ODLinkSource_ShowLinkSourceInfo *somTD_ODLinkSource_ShowLinkSourceInfo;
typedef ODUpdateID   SOMLINK somTP_ODLinkSource_GetUpdateID(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_GetUpdateID *somTD_ODLinkSource_GetUpdateID;
typedef ODTime   SOMLINK somTP_ODLinkSource_GetChangeTime(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_GetChangeTime *somTD_ODLinkSource_GetChangeTime;
typedef ODBoolean   SOMLINK somTP_ODLinkSource_IsAutoUpdate(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_IsAutoUpdate *somTD_ODLinkSource_IsAutoUpdate;
typedef void   SOMLINK somTP_ODLinkSource_SetAutoUpdate(ODLinkSource *somSelf, Environment *ev,
		ODBoolean automatic);
typedef somTP_ODLinkSource_SetAutoUpdate *somTD_ODLinkSource_SetAutoUpdate;
typedef void   SOMLINK somTP_ODLinkSource_SetSourcePart(ODLinkSource *somSelf, Environment *ev,
		ODStorageUnit* sourcePartSU);
typedef somTP_ODLinkSource_SetSourcePart *somTD_ODLinkSource_SetSourcePart;
typedef void   SOMLINK somTP_ODLinkSource_somInit(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somInit *somTD_ODLinkSource_somInit;
typedef void   SOMLINK somTP_ODLinkSource_somUninit(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somUninit *somTD_ODLinkSource_somUninit;
typedef void   SOMLINK somTP_ODLinkSource_Externalize(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_Externalize *somTD_ODLinkSource_Externalize;
typedef void   SOMLINK somTP_ODLinkSource_ReleaseAll(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_ReleaseAll *somTD_ODLinkSource_ReleaseAll;
typedef void   SOMLINK somTP_ODLinkSource_CloneInto(ODLinkSource *somSelf, Environment *ev,
		ODDraftKey key,
		ODStorageUnit* toSU,
		ODFrame* scope);
typedef somTP_ODLinkSource_CloneInto *somTD_ODLinkSource_CloneInto;
typedef void   SOMLINK somTP_ODLinkSource_InitPersistentObject(ODLinkSource *somSelf, Environment *ev,
		ODStorageUnit* storageUnit);
typedef somTP_ODLinkSource_InitPersistentObject *somTD_ODLinkSource_InitPersistentObject;
typedef void   SOMLINK somTP_ODLinkSource_InitPersistentObjectFromStorage(ODLinkSource *somSelf, Environment *ev,
		ODStorageUnit* storageUnit);
typedef somTP_ODLinkSource_InitPersistentObjectFromStorage *somTD_ODLinkSource_InitPersistentObjectFromStorage;
typedef ODStorageUnit*   SOMLINK somTP_ODLinkSource_GetStorageUnit(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_GetStorageUnit *somTD_ODLinkSource_GetStorageUnit;
typedef ODID   SOMLINK somTP_ODLinkSource_GetID(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_GetID *somTD_ODLinkSource_GetID;
typedef void   SOMLINK somTP_ODLinkSource_InitRefCntObject(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_InitRefCntObject *somTD_ODLinkSource_InitRefCntObject;
typedef void   SOMLINK somTP_ODLinkSource_Acquire(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_Acquire *somTD_ODLinkSource_Acquire;
typedef void   SOMLINK somTP_ODLinkSource_Release(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_Release *somTD_ODLinkSource_Release;
typedef ODULong   SOMLINK somTP_ODLinkSource_GetRefCount(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_GetRefCount *somTD_ODLinkSource_GetRefCount;
typedef void   SOMLINK somTP_ODLinkSource_InitObject(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_InitObject *somTD_ODLinkSource_InitObject;
typedef ODBoolean   SOMLINK somTP_ODLinkSource_HasExtension(ODLinkSource *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODLinkSource_HasExtension *somTD_ODLinkSource_HasExtension;
typedef ODExtension*   SOMLINK somTP_ODLinkSource_AcquireExtension(ODLinkSource *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODLinkSource_AcquireExtension *somTD_ODLinkSource_AcquireExtension;
typedef void   SOMLINK somTP_ODLinkSource_ReleaseExtension(ODLinkSource *somSelf, Environment *ev,
		ODExtension* extension);
typedef somTP_ODLinkSource_ReleaseExtension *somTD_ODLinkSource_ReleaseExtension;
typedef ODSize   SOMLINK somTP_ODLinkSource_Purge(ODLinkSource *somSelf, Environment *ev,
		ODSize size);
typedef somTP_ODLinkSource_Purge *somTD_ODLinkSource_Purge;
typedef ODBoolean   SOMLINK somTP_ODLinkSource_IsEqualTo(ODLinkSource *somSelf, Environment *ev,
		ODObject* object);
typedef somTP_ODLinkSource_IsEqualTo *somTD_ODLinkSource_IsEqualTo;
typedef void   SOMLINK somTP_ODLinkSource_SubClassResponsibility(ODLinkSource *somSelf, Environment *ev);
typedef somTP_ODLinkSource_SubClassResponsibility *somTD_ODLinkSource_SubClassResponsibility;
typedef void   SOMLINK somTP_ODLinkSource_somDefaultInit(ODLinkSource *somSelf,
		somInitCtrl* ctrl);
typedef somTP_ODLinkSource_somDefaultInit *somTD_ODLinkSource_somDefaultInit;
typedef void   SOMLINK somTP_ODLinkSource_somDestruct(ODLinkSource *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_ODLinkSource_somDestruct *somTD_ODLinkSource_somDestruct;
typedef void   SOMLINK somTP_ODLinkSource_somDefaultCopyInit(ODLinkSource *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultCopyInit *somTD_ODLinkSource_somDefaultCopyInit;
typedef ODLinkSource*   SOMLINK somTP_ODLinkSource_somDefaultAssign(ODLinkSource *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultAssign *somTD_ODLinkSource_somDefaultAssign;
typedef void   SOMLINK somTP_ODLinkSource_somDefaultConstCopyInit(ODLinkSource *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultConstCopyInit *somTD_ODLinkSource_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ODLinkSource_somDefaultVCopyInit(ODLinkSource *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultVCopyInit *somTD_ODLinkSource_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ODLinkSource_somDefaultConstVCopyInit(ODLinkSource *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultConstVCopyInit *somTD_ODLinkSource_somDefaultConstVCopyInit;
typedef ODLinkSource*   SOMLINK somTP_ODLinkSource_somDefaultConstAssign(ODLinkSource *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultConstAssign *somTD_ODLinkSource_somDefaultConstAssign;
typedef ODLinkSource*   SOMLINK somTP_ODLinkSource_somDefaultVAssign(ODLinkSource *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultVAssign *somTD_ODLinkSource_somDefaultVAssign;
typedef ODLinkSource*   SOMLINK somTP_ODLinkSource_somDefaultConstVAssign(ODLinkSource *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODLinkSource_somDefaultConstVAssign *somTD_ODLinkSource_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ODLinkSource_somFree(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somFree *somTD_ODLinkSource_somFree;
typedef SOMClass*   SOMLINK somTP_ODLinkSource_somGetClass(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somGetClass *somTD_ODLinkSource_somGetClass;
typedef string   SOMLINK somTP_ODLinkSource_somGetClassName(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somGetClassName *somTD_ODLinkSource_somGetClassName;
typedef long   SOMLINK somTP_ODLinkSource_somGetSize(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somGetSize *somTD_ODLinkSource_somGetSize;
typedef boolean   SOMLINK somTP_ODLinkSource_somIsA(ODLinkSource *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODLinkSource_somIsA *somTD_ODLinkSource_somIsA;
typedef boolean   SOMLINK somTP_ODLinkSource_somIsInstanceOf(ODLinkSource *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODLinkSource_somIsInstanceOf *somTD_ODLinkSource_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ODLinkSource_somRespondsTo(ODLinkSource *somSelf,
		somId mId);
typedef somTP_ODLinkSource_somRespondsTo *somTD_ODLinkSource_somRespondsTo;
typedef boolean   SOMLINK somTP_ODLinkSource_somDispatch(ODLinkSource *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODLinkSource_somDispatch *somTD_ODLinkSource_somDispatch;
typedef boolean   SOMLINK somTP_ODLinkSource_somClassDispatch(ODLinkSource *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODLinkSource_somClassDispatch *somTD_ODLinkSource_somClassDispatch;
typedef boolean   SOMLINK somTP_ODLinkSource_somCastObj(ODLinkSource *somSelf,
		SOMClass* cls);
typedef somTP_ODLinkSource_somCastObj *somTD_ODLinkSource_somCastObj;
typedef boolean   SOMLINK somTP_ODLinkSource_somResetObj(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somResetObj *somTD_ODLinkSource_somResetObj;
typedef SOMObject*   SOMLINK somTP_ODLinkSource_somPrintSelf(ODLinkSource *somSelf);
typedef somTP_ODLinkSource_somPrintSelf *somTD_ODLinkSource_somPrintSelf;
typedef void   SOMLINK somTP_ODLinkSource_somDumpSelf(ODLinkSource *somSelf,
		long level);
typedef somTP_ODLinkSource_somDumpSelf *somTD_ODLinkSource_somDumpSelf;
typedef void   SOMLINK somTP_ODLinkSource_somDumpSelfInt(ODLinkSource *somSelf,
		long level);
typedef somTP_ODLinkSource_somDumpSelfInt *somTD_ODLinkSource_somDumpSelfInt;
}

#endif /* ODLinkSource_API */


/*
 * -- This emitter believes that method thunks are unavailable,
 * -- so somResolve will be called.
 */
#undef somresolve_
#define somresolve_(obj,mToken) (somResolve(obj,mToken))

/*
 * -- The C++ Wrapper Class for ODLinkSource
 */
class ODLinkSource : public ODBaseLinkSource
{
public:

// ODLinkSource::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ODLinkSource) ODLinkSourceNewClass(ODLinkSource_MajorVersion,ODLinkSource_MinorVersion);
   return (void*)
      SOM_Resolve(_ODLinkSource,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_ODLinkSource));
}

// ODLinkSource::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

ODLinkSource()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODLinkSourceCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ODLinkSource(ODLinkSource* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODLinkSourceCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

ODLinkSource(const ODLinkSource* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODLinkSourceCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/*
 * Reintroduce inherited methods
 */

/* method: Lock */
ODBoolean   Lock(Environment *ev,
		ODULong wait,
		ODLinkKey* key)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,Lock)
	(this, ev,wait,key);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,Lock)
	(this, ev,wait,key);
#endif
}


/* method: Unlock */
void   Unlock(Environment *ev,
		ODLinkKey key)
{
   SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,Unlock)
	(this, ev,key);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Clear */
void   Clear(Environment *ev,
		ODUpdateID id,
		ODLinkKey key)
{
   SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,Clear)
	(this, ev,id,key);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetContentStorageUnit */
ODStorageUnit*   GetContentStorageUnit(Environment *ev,
		ODLinkKey key)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,GetContentStorageUnit)
	(this, ev,key);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,GetContentStorageUnit)
	(this, ev,key);
#endif
}


/* method: ContentUpdated */
void   ContentUpdated(Environment *ev,
		ODUpdateID id,
		ODLinkKey key)
{
   SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,ContentUpdated)
	(this, ev,id,key);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: ShowLinkSourceInfo */
ODBoolean   ShowLinkSourceInfo(Environment *ev,
		ODFacet* facet,
		ODUpdateID change,
		ODBoolean changesAllowed,
		ODLinkInfoResult* infoResult)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,ShowLinkSourceInfo)
	(this, ev,facet,change,changesAllowed,infoResult);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,ShowLinkSourceInfo)
	(this, ev,facet,change,changesAllowed,infoResult);
#endif
}


/* method: GetUpdateID */
ODUpdateID   GetUpdateID(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODUpdateID __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,GetUpdateID)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,GetUpdateID)
	(this, ev);
#endif
}


/* method: GetChangeTime */
ODTime   GetChangeTime(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODTime __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,GetChangeTime)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,GetChangeTime)
	(this, ev);
#endif
}


/* method: IsAutoUpdate */
ODBoolean   IsAutoUpdate(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,IsAutoUpdate)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,IsAutoUpdate)
	(this, ev);
#endif
}


/* method: SetAutoUpdate */
void   SetAutoUpdate(Environment *ev,
		ODBoolean automatic)
{
   SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,SetAutoUpdate)
	(this, ev,automatic);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: SetSourcePart */
void   SetSourcePart(Environment *ev,
		ODStorageUnit* sourcePartSU)
{
   SOM_ResolveD(this,ODLinkSource,ODBaseLinkSource,SetSourcePart)
	(this, ev,sourcePartSU);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: somInit */
void   somInit()
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somInit)
	(this);
}


/* method: somUninit */
void   somUninit()
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somUninit)
	(this);
}


/* method: Externalize */
void   Externalize(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODPersistentObject,Externalize)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: ReleaseAll */
void   ReleaseAll(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODPersistentObject,ReleaseAll)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: CloneInto */
void   CloneInto(Environment *ev,
		ODDraftKey key,
		ODStorageUnit* toSU,
		ODFrame* scope)
{
   SOM_ResolveD(this,ODLinkSource,ODPersistentObject,CloneInto)
	(this, ev,key,toSU,scope);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: InitPersistentObject */
void   InitPersistentObject(Environment *ev,
		ODStorageUnit* storageUnit)
{
   SOM_ResolveD(this,ODLinkSource,ODPersistentObject,InitPersistentObject)
	(this, ev,storageUnit);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: InitPersistentObjectFromStorage */
void   InitPersistentObjectFromStorage(Environment *ev,
		ODStorageUnit* storageUnit)
{
   SOM_ResolveD(this,ODLinkSource,ODPersistentObject,InitPersistentObjectFromStorage)
	(this, ev,storageUnit);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetStorageUnit */
ODStorageUnit*   GetStorageUnit(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODPersistentObject,GetStorageUnit)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODPersistentObject,GetStorageUnit)
	(this, ev);
#endif
}


/* method: GetID */
ODID   GetID(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODID __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODPersistentObject,GetID)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODPersistentObject,GetID)
	(this, ev);
#endif
}


/* method: InitRefCntObject */
void   InitRefCntObject(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODRefCntObject,InitRefCntObject)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Acquire */
void   Acquire(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODRefCntObject,Acquire)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Release */
void   Release(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODRefCntObject,Release)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetRefCount */
ODULong   GetRefCount(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODULong __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODRefCntObject,GetRefCount)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODRefCntObject,GetRefCount)
	(this, ev);
#endif
}


/* method: InitObject */
void   InitObject(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODObject,InitObject)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: HasExtension */
ODBoolean   HasExtension(Environment *ev,
		ODType extensionName)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODObject,HasExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODObject,HasExtension)
	(this, ev,extensionName);
#endif
}


/* method: AcquireExtension */
ODExtension*   AcquireExtension(Environment *ev,
		ODType extensionName)
{
#ifdef SOMCHKEXCEPT
   ODExtension* __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODObject,AcquireExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODObject,AcquireExtension)
	(this, ev,extensionName);
#endif
}


/* method: ReleaseExtension */
void   ReleaseExtension(Environment *ev,
		ODExtension* extension)
{
   SOM_ResolveD(this,ODLinkSource,ODObject,ReleaseExtension)
	(this, ev,extension);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Purge */
ODSize   Purge(Environment *ev,
		ODSize size)
{
#ifdef SOMCHKEXCEPT
   ODSize __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODObject,Purge)
	(this, ev,size);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODObject,Purge)
	(this, ev,size);
#endif
}


/* method: IsEqualTo */
ODBoolean   IsEqualTo(Environment *ev,
		ODObject* object)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,ODObject,IsEqualTo)
	(this, ev,object);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODLinkSource,ODObject,IsEqualTo)
	(this, ev,object);
#endif
}


/* method: SubClassResponsibility */
void   SubClassResponsibility(Environment *ev)
{
   SOM_ResolveD(this,ODLinkSource,ODObject,SubClassResponsibility)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* initializer method: somDefaultInit */
void   somDefaultInit(somInitCtrl* ctrl)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultInit)
	(this,ctrl);
}


/* method: somDestruct */
void   somDestruct(octet doFree,
		somDestructCtrl* ctrl)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDestruct)
	(this,doFree,ctrl);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultCopyInit)
	(this,ctrl,fromObj);
}


/* method: somDefaultAssign */
ODLinkSource*  somDefaultAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultAssign)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultConstCopyInit)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultVCopyInit)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultConstVCopyInit)
	(this,ctrl,fromObj);
}


/* method: somDefaultConstAssign */
ODLinkSource*  somDefaultConstAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultConstAssign)
	(this,ctrl,fromObj);
}


/* method: somDefaultVAssign */
ODLinkSource*  somDefaultVAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultVAssign)
	(this,ctrl,fromObj);
}


/* method: somDefaultConstVAssign */
ODLinkSource*  somDefaultConstVAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somDefaultConstVAssign)
	(this,ctrl,fromObj);
}


/* method: somFree */
void   somFree()
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somFree)
	(this);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somGetClass)
	(this);
}


/* method: somGetClassName */
string   somGetClassName()
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somGetClassName)
	(this);
}


/* method: somGetSize */
long   somGetSize()
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somGetSize)
	(this);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somIsA)
	(this,aClassObj);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somIsInstanceOf)
	(this,aClassObj);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somRespondsTo)
	(this,mId);
}


/* va_list method: somDispatch */
/* the va_list invocation form */
boolean   ODLinkSource_somDispatch(somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODLinkSource,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue,
		somId methodId,
		...)
{
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean   ODLinkSource_somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODLinkSource,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		...)
{
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      SOM_ResolveD(this,ODLinkSource,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* cls)
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somCastObj)
	(this,cls);
}


/* method: somResetObj */
boolean   somResetObj()
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somResetObj)
	(this);
}


/* method: somPrintSelf */
SOMObject*   somPrintSelf()
{
   return SOM_ResolveD(this,ODLinkSource,SOMObject,somPrintSelf)
	(this);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDumpSelf)
	(this,level);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
   SOM_ResolveD(this,ODLinkSource,SOMObject,somDumpSelfInt)
	(this,level);
}



};   /* ODLinkSource */



#endif       /* SOM_ODLinkSource_xh */
