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

#ifndef SOM_ODStorageUnit_xh
#define SOM_ODStorageUnit_xh

class ODStorageUnit;

#define ODStorageUnit_MajorVersion 1
#define ODStorageUnit_MinorVersion 0

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

/* C++ parent defs */
#ifndef SOM_ODRefCntObject_xh
#include <RefCtObj.xh>
#endif

#ifndef ODStorageUnit_API
#define ODStorageUnit_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 ODStorageUnit;
class ODDraft;
class ODSession;
class ODPart;
class ODStorageUnitCursor;
class ODStorageUnitView;
class ODStorageUnitRefIterator;

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

/* A procedure to create the ODStorageUnit Class */
SOMEXTERN
#if (defined(SOM_Module_StorageU_Source) || defined(ODStorageUnit_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODStorageUnit))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
SOMClass * SOMLINK ODStorageUnitNewClass(
		integer4,
		integer4 );

/* The API to the ODStorageUnit class object, and the methods it introduces. */
SOMEXTERN struct ODStorageUnitClassDataStructure {
	SOMClass *classObject;
	somMToken reserved1;
	somMToken GetDraft;
	somMToken GetSession;
	somMToken Exists;
	somMToken ExistsWithCursor;
	somMToken CountProperties;
	somMToken CountValues;
	somMToken Focus;
	somMToken FocusWithCursor;
	somMToken Externalize;
	somMToken Internalize;
	somMToken GetID;
	somMToken GetName;
	somMToken SetName;
	somMToken AddProperty;
	somMToken AddValue;
	somMToken Remove;
	somMToken CloneInto;
	somMToken CreateView;
	somMToken CreateCursor;
	somMToken CreateCursorWithFocus;
	somMToken GetProperty;
	somMToken GetType;
	somMToken SetType;
	somMToken SetOffset;
	somMToken GetOffset;
	somMToken GetValue;
	somMToken SetValue;
	somMToken InsertValue;
	somMToken DeleteValue;
	somMToken GetSize;
	somMToken IsValidStorageUnitRef;
	somMToken GetStrongStorageUnitRef;
	somMToken GetWeakStorageUnitRef;
	somMToken IsStrongStorageUnitRef;
	somMToken IsWeakStorageUnitRef;
	somMToken RemoveStorageUnitRef;
	somMToken GetIDFromStorageUnitRef;
	somMToken CreateStorageUnitRefIterator;
	somMToken SetStorageUnitRef;
	somMToken GetGenerationNumber;
	somMToken IncrementGenerationNumber;
	somMToken IsPromiseValue;
	somMToken SetPromiseValue;
	somMToken GetPromiseValue;
	somMToken ClearAllPromises;
	somMToken ResolveAllPromises;
	somMToken Lock;
	somMToken Unlock;
}
#if !(defined(SOM_Module_StorageU_Source) || defined(ODStorageUnit_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODStorageUnit))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODStorageUnitClassData;
#define _ODStorageUnit ODStorageUnitClassData.classObject

/* The API to parentMtabs for ODStorageUnit, and the instance data it introduces. */
SOMEXTERN struct ODStorageUnitCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_StorageU_Source) || defined(ODStorageUnit_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODStorageUnit))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODStorageUnitCClassData;

/*
 * -- Typedefs for ODStorageUnit Method Procedures
 */
extern "C" {
typedef ODDraft*   SOMLINK somTP_ODStorageUnit_GetDraft(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetDraft *somTD_ODStorageUnit_GetDraft;
typedef ODSession*   SOMLINK somTP_ODStorageUnit_GetSession(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetSession *somTD_ODStorageUnit_GetSession;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_Exists(ODStorageUnit *somSelf, Environment *ev,
		ODPropertyName propertyName,
		ODValueType valueType,
		ODValueIndex valueIndex);
typedef somTP_ODStorageUnit_Exists *somTD_ODStorageUnit_Exists;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_ExistsWithCursor(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitCursor* cursor);
typedef somTP_ODStorageUnit_ExistsWithCursor *somTD_ODStorageUnit_ExistsWithCursor;
typedef ODULong   SOMLINK somTP_ODStorageUnit_CountProperties(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_CountProperties *somTD_ODStorageUnit_CountProperties;
typedef ODULong   SOMLINK somTP_ODStorageUnit_CountValues(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_CountValues *somTD_ODStorageUnit_CountValues;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_Focus(ODStorageUnit *somSelf, Environment *ev,
		ODPropertyName propertyName,
		ODPositionCode propertyPosCode,
		ODValueType valueType,
		ODValueIndex valueIndex,
		ODPositionCode valuePosCode);
typedef somTP_ODStorageUnit_Focus *somTD_ODStorageUnit_Focus;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_FocusWithCursor(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitCursor* cursor);
typedef somTP_ODStorageUnit_FocusWithCursor *somTD_ODStorageUnit_FocusWithCursor;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_Externalize(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_Externalize *somTD_ODStorageUnit_Externalize;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_Internalize(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_Internalize *somTD_ODStorageUnit_Internalize;
typedef ODID   SOMLINK somTP_ODStorageUnit_GetID(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetID *somTD_ODStorageUnit_GetID;
typedef ODStorageUnitName   SOMLINK somTP_ODStorageUnit_GetName(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetName *somTD_ODStorageUnit_GetName;
typedef void   SOMLINK somTP_ODStorageUnit_SetName(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitName name);
typedef somTP_ODStorageUnit_SetName *somTD_ODStorageUnit_SetName;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_AddProperty(ODStorageUnit *somSelf, Environment *ev,
		ODPropertyName propertyName);
typedef somTP_ODStorageUnit_AddProperty *somTD_ODStorageUnit_AddProperty;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_AddValue(ODStorageUnit *somSelf, Environment *ev,
		ODValueType type);
typedef somTP_ODStorageUnit_AddValue *somTD_ODStorageUnit_AddValue;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_Remove(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_Remove *somTD_ODStorageUnit_Remove;
typedef void   SOMLINK somTP_ODStorageUnit_CloneInto(ODStorageUnit *somSelf, Environment *ev,
		ODDraftKey key,
		ODStorageUnit* destStorageUnit,
		ODID scopeID);
typedef somTP_ODStorageUnit_CloneInto *somTD_ODStorageUnit_CloneInto;
typedef ODStorageUnitView*   SOMLINK somTP_ODStorageUnit_CreateView(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_CreateView *somTD_ODStorageUnit_CreateView;
typedef ODStorageUnitCursor*   SOMLINK somTP_ODStorageUnit_CreateCursorWithFocus(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_CreateCursorWithFocus *somTD_ODStorageUnit_CreateCursorWithFocus;
typedef ODStorageUnitCursor*   SOMLINK somTP_ODStorageUnit_CreateCursor(ODStorageUnit *somSelf, Environment *ev,
		ODPropertyName propertyName,
		ODValueType valueType,
		ODValueIndex valueIndex);
typedef somTP_ODStorageUnit_CreateCursor *somTD_ODStorageUnit_CreateCursor;
typedef ODPropertyName   SOMLINK somTP_ODStorageUnit_GetProperty(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetProperty *somTD_ODStorageUnit_GetProperty;
typedef ODValueType   SOMLINK somTP_ODStorageUnit_GetType(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetType *somTD_ODStorageUnit_GetType;
typedef void   SOMLINK somTP_ODStorageUnit_SetType(ODStorageUnit *somSelf, Environment *ev,
		ODValueType valueType);
typedef somTP_ODStorageUnit_SetType *somTD_ODStorageUnit_SetType;
typedef void   SOMLINK somTP_ODStorageUnit_SetOffset(ODStorageUnit *somSelf, Environment *ev,
		ODULong offset);
typedef somTP_ODStorageUnit_SetOffset *somTD_ODStorageUnit_SetOffset;
typedef ODULong   SOMLINK somTP_ODStorageUnit_GetOffset(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetOffset *somTD_ODStorageUnit_GetOffset;
typedef ODULong   SOMLINK somTP_ODStorageUnit_GetValue(ODStorageUnit *somSelf, Environment *ev,
		ODULong length,
		ODByteArray* value);
typedef somTP_ODStorageUnit_GetValue *somTD_ODStorageUnit_GetValue;
typedef void   SOMLINK somTP_ODStorageUnit_SetValue(ODStorageUnit *somSelf, Environment *ev,
		ODByteArray* value);
typedef somTP_ODStorageUnit_SetValue *somTD_ODStorageUnit_SetValue;
typedef void   SOMLINK somTP_ODStorageUnit_InsertValue(ODStorageUnit *somSelf, Environment *ev,
		ODByteArray* value);
typedef somTP_ODStorageUnit_InsertValue *somTD_ODStorageUnit_InsertValue;
typedef void   SOMLINK somTP_ODStorageUnit_DeleteValue(ODStorageUnit *somSelf, Environment *ev,
		ODULong length);
typedef somTP_ODStorageUnit_DeleteValue *somTD_ODStorageUnit_DeleteValue;
typedef ODULong   SOMLINK somTP_ODStorageUnit_GetSize(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetSize *somTD_ODStorageUnit_GetSize;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_IsValidStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitRef aRef);
typedef somTP_ODStorageUnit_IsValidStorageUnitRef *somTD_ODStorageUnit_IsValidStorageUnitRef;
typedef void   SOMLINK somTP_ODStorageUnit_GetStrongStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitID embeddedSUID,
		ODStorageUnitRef strongRef);
typedef somTP_ODStorageUnit_GetStrongStorageUnitRef *somTD_ODStorageUnit_GetStrongStorageUnitRef;
typedef void   SOMLINK somTP_ODStorageUnit_GetWeakStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitID embeddedSUID,
		ODStorageUnitRef weakRef);
typedef somTP_ODStorageUnit_GetWeakStorageUnitRef *somTD_ODStorageUnit_GetWeakStorageUnitRef;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_IsStrongStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitRef ref);
typedef somTP_ODStorageUnit_IsStrongStorageUnitRef *somTD_ODStorageUnit_IsStrongStorageUnitRef;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_IsWeakStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitRef ref);
typedef somTP_ODStorageUnit_IsWeakStorageUnitRef *somTD_ODStorageUnit_IsWeakStorageUnitRef;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_RemoveStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitRef aRef);
typedef somTP_ODStorageUnit_RemoveStorageUnitRef *somTD_ODStorageUnit_RemoveStorageUnitRef;
typedef ODStorageUnitID   SOMLINK somTP_ODStorageUnit_GetIDFromStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitRef aRef);
typedef somTP_ODStorageUnit_GetIDFromStorageUnitRef *somTD_ODStorageUnit_GetIDFromStorageUnitRef;
typedef ODStorageUnitRefIterator*   SOMLINK somTP_ODStorageUnit_CreateStorageUnitRefIterator(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_CreateStorageUnitRefIterator *somTD_ODStorageUnit_CreateStorageUnitRefIterator;
typedef void   SOMLINK somTP_ODStorageUnit_SetStorageUnitRef(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitID embeddedSUID,
		ODStorageUnitRef ref);
typedef somTP_ODStorageUnit_SetStorageUnitRef *somTD_ODStorageUnit_SetStorageUnitRef;
typedef ODULong   SOMLINK somTP_ODStorageUnit_GetGenerationNumber(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetGenerationNumber *somTD_ODStorageUnit_GetGenerationNumber;
typedef ODULong   SOMLINK somTP_ODStorageUnit_IncrementGenerationNumber(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_IncrementGenerationNumber *somTD_ODStorageUnit_IncrementGenerationNumber;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_IsPromiseValue(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_IsPromiseValue *somTD_ODStorageUnit_IsPromiseValue;
typedef void   SOMLINK somTP_ODStorageUnit_SetPromiseValue(ODStorageUnit *somSelf, Environment *ev,
		ODValueType valueType,
		ODULong offset,
		ODByteArray* value,
		ODPart* sourcePart);
typedef somTP_ODStorageUnit_SetPromiseValue *somTD_ODStorageUnit_SetPromiseValue;
typedef ODULong   SOMLINK somTP_ODStorageUnit_GetPromiseValue(ODStorageUnit *somSelf, Environment *ev,
		ODValueType valueType,
		ODULong offset,
		ODULong length,
		ODByteArray* value,
		ODPart** sourcePart);
typedef somTP_ODStorageUnit_GetPromiseValue *somTD_ODStorageUnit_GetPromiseValue;
typedef void   SOMLINK somTP_ODStorageUnit_ClearAllPromises(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_ClearAllPromises *somTD_ODStorageUnit_ClearAllPromises;
typedef void   SOMLINK somTP_ODStorageUnit_ResolveAllPromises(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_ResolveAllPromises *somTD_ODStorageUnit_ResolveAllPromises;
typedef ODStorageUnitKey   SOMLINK somTP_ODStorageUnit_Lock(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitKey key);
typedef somTP_ODStorageUnit_Lock *somTD_ODStorageUnit_Lock;
typedef void   SOMLINK somTP_ODStorageUnit_Unlock(ODStorageUnit *somSelf, Environment *ev,
		ODStorageUnitKey key);
typedef somTP_ODStorageUnit_Unlock *somTD_ODStorageUnit_Unlock;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ODStorageUnit_InitRefCntObject(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_InitRefCntObject *somTD_ODStorageUnit_InitRefCntObject;
typedef void   SOMLINK somTP_ODStorageUnit_Acquire(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_Acquire *somTD_ODStorageUnit_Acquire;
typedef void   SOMLINK somTP_ODStorageUnit_Release(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_Release *somTD_ODStorageUnit_Release;
typedef ODULong   SOMLINK somTP_ODStorageUnit_GetRefCount(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_GetRefCount *somTD_ODStorageUnit_GetRefCount;
typedef void   SOMLINK somTP_ODStorageUnit_somUninit(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somUninit *somTD_ODStorageUnit_somUninit;
typedef void   SOMLINK somTP_ODStorageUnit_InitObject(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_InitObject *somTD_ODStorageUnit_InitObject;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_HasExtension(ODStorageUnit *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODStorageUnit_HasExtension *somTD_ODStorageUnit_HasExtension;
typedef ODExtension*   SOMLINK somTP_ODStorageUnit_AcquireExtension(ODStorageUnit *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODStorageUnit_AcquireExtension *somTD_ODStorageUnit_AcquireExtension;
typedef void   SOMLINK somTP_ODStorageUnit_ReleaseExtension(ODStorageUnit *somSelf, Environment *ev,
		ODExtension* extension);
typedef somTP_ODStorageUnit_ReleaseExtension *somTD_ODStorageUnit_ReleaseExtension;
typedef ODSize   SOMLINK somTP_ODStorageUnit_Purge(ODStorageUnit *somSelf, Environment *ev,
		ODSize size);
typedef somTP_ODStorageUnit_Purge *somTD_ODStorageUnit_Purge;
typedef ODBoolean   SOMLINK somTP_ODStorageUnit_IsEqualTo(ODStorageUnit *somSelf, Environment *ev,
		ODObject* object);
typedef somTP_ODStorageUnit_IsEqualTo *somTD_ODStorageUnit_IsEqualTo;
typedef void   SOMLINK somTP_ODStorageUnit_SubClassResponsibility(ODStorageUnit *somSelf, Environment *ev);
typedef somTP_ODStorageUnit_SubClassResponsibility *somTD_ODStorageUnit_SubClassResponsibility;
typedef void   SOMLINK somTP_ODStorageUnit_somInit(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somInit *somTD_ODStorageUnit_somInit;
typedef void   SOMLINK somTP_ODStorageUnit_somDefaultInit(ODStorageUnit *somSelf,
		somInitCtrl* ctrl);
typedef somTP_ODStorageUnit_somDefaultInit *somTD_ODStorageUnit_somDefaultInit;
typedef void   SOMLINK somTP_ODStorageUnit_somDestruct(ODStorageUnit *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_ODStorageUnit_somDestruct *somTD_ODStorageUnit_somDestruct;
typedef void   SOMLINK somTP_ODStorageUnit_somDefaultCopyInit(ODStorageUnit *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultCopyInit *somTD_ODStorageUnit_somDefaultCopyInit;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_somDefaultAssign(ODStorageUnit *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultAssign *somTD_ODStorageUnit_somDefaultAssign;
typedef void   SOMLINK somTP_ODStorageUnit_somDefaultConstCopyInit(ODStorageUnit *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultConstCopyInit *somTD_ODStorageUnit_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ODStorageUnit_somDefaultVCopyInit(ODStorageUnit *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultVCopyInit *somTD_ODStorageUnit_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ODStorageUnit_somDefaultConstVCopyInit(ODStorageUnit *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultConstVCopyInit *somTD_ODStorageUnit_somDefaultConstVCopyInit;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_somDefaultConstAssign(ODStorageUnit *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultConstAssign *somTD_ODStorageUnit_somDefaultConstAssign;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_somDefaultVAssign(ODStorageUnit *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultVAssign *somTD_ODStorageUnit_somDefaultVAssign;
typedef ODStorageUnit*   SOMLINK somTP_ODStorageUnit_somDefaultConstVAssign(ODStorageUnit *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODStorageUnit_somDefaultConstVAssign *somTD_ODStorageUnit_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ODStorageUnit_somFree(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somFree *somTD_ODStorageUnit_somFree;
typedef SOMClass*   SOMLINK somTP_ODStorageUnit_somGetClass(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somGetClass *somTD_ODStorageUnit_somGetClass;
typedef string   SOMLINK somTP_ODStorageUnit_somGetClassName(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somGetClassName *somTD_ODStorageUnit_somGetClassName;
typedef long   SOMLINK somTP_ODStorageUnit_somGetSize(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somGetSize *somTD_ODStorageUnit_somGetSize;
typedef boolean   SOMLINK somTP_ODStorageUnit_somIsA(ODStorageUnit *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODStorageUnit_somIsA *somTD_ODStorageUnit_somIsA;
typedef boolean   SOMLINK somTP_ODStorageUnit_somIsInstanceOf(ODStorageUnit *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODStorageUnit_somIsInstanceOf *somTD_ODStorageUnit_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ODStorageUnit_somRespondsTo(ODStorageUnit *somSelf,
		somId mId);
typedef somTP_ODStorageUnit_somRespondsTo *somTD_ODStorageUnit_somRespondsTo;
typedef boolean   SOMLINK somTP_ODStorageUnit_somDispatch(ODStorageUnit *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODStorageUnit_somDispatch *somTD_ODStorageUnit_somDispatch;
typedef boolean   SOMLINK somTP_ODStorageUnit_somClassDispatch(ODStorageUnit *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODStorageUnit_somClassDispatch *somTD_ODStorageUnit_somClassDispatch;
typedef boolean   SOMLINK somTP_ODStorageUnit_somCastObj(ODStorageUnit *somSelf,
		SOMClass* cls);
typedef somTP_ODStorageUnit_somCastObj *somTD_ODStorageUnit_somCastObj;
typedef boolean   SOMLINK somTP_ODStorageUnit_somResetObj(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somResetObj *somTD_ODStorageUnit_somResetObj;
typedef SOMObject*   SOMLINK somTP_ODStorageUnit_somPrintSelf(ODStorageUnit *somSelf);
typedef somTP_ODStorageUnit_somPrintSelf *somTD_ODStorageUnit_somPrintSelf;
typedef void   SOMLINK somTP_ODStorageUnit_somDumpSelf(ODStorageUnit *somSelf,
		long level);
typedef somTP_ODStorageUnit_somDumpSelf *somTD_ODStorageUnit_somDumpSelf;
typedef void   SOMLINK somTP_ODStorageUnit_somDumpSelfInt(ODStorageUnit *somSelf,
		long level);
typedef somTP_ODStorageUnit_somDumpSelfInt *somTD_ODStorageUnit_somDumpSelfInt;
}

#endif /* ODStorageUnit_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 ODStorageUnit
 */
class ODStorageUnit : public ODRefCntObject
{
public:

// ODStorageUnit::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 (!_ODStorageUnit) ODStorageUnitNewClass(ODStorageUnit_MajorVersion,ODStorageUnit_MinorVersion);
   return (void*)
      SOM_Resolve(_ODStorageUnit,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_ODStorageUnit));
}

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

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

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

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


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


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


/* method: Exists */
ODBoolean   Exists(Environment *ev,
		ODPropertyName propertyName,
		ODValueType valueType,
		ODValueIndex valueIndex)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,Exists)
	(this, ev,propertyName,valueType,valueIndex);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,Exists)
	(this, ev,propertyName,valueType,valueIndex);
#endif
}


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


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


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


/* method: Focus */
ODStorageUnit*   Focus(Environment *ev,
		ODPropertyName propertyName,
		ODPositionCode propertyPosCode,
		ODValueType valueType,
		ODValueIndex valueIndex,
		ODPositionCode valuePosCode)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,Focus)
	(this, ev,propertyName,propertyPosCode,valueType,valueIndex,valuePosCode);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,Focus)
	(this, ev,propertyName,propertyPosCode,valueType,valueIndex,valuePosCode);
#endif
}


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


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


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


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


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


/* method: SetName */
void   SetName(Environment *ev,
		ODStorageUnitName name)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,SetName)
	(this, ev,name);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


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


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


/* method: CloneInto */
void   CloneInto(Environment *ev,
		ODDraftKey key,
		ODStorageUnit* destStorageUnit,
		ODID scopeID)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,CloneInto)
	(this, ev,key,destStorageUnit,scopeID);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


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


/* method: CreateCursor */
ODStorageUnitCursor*   CreateCursor(Environment *ev,
		ODPropertyName propertyName,
		ODValueType valueType,
		ODValueIndex valueIndex)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnitCursor* __somResult = 
      SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,CreateCursor)
	(this, ev,propertyName,valueType,valueIndex);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,CreateCursor)
	(this, ev,propertyName,valueType,valueIndex);
#endif
}


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


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


/* method: SetType */
void   SetType(Environment *ev,
		ODValueType valueType)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,SetType)
	(this, ev,valueType);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: SetOffset */
void   SetOffset(Environment *ev,
		ODULong offset)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,SetOffset)
	(this, ev,offset);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


/* method: GetValue */
ODULong   GetValue(Environment *ev,
		ODULong length,
		ODByteArray* value)
{
#ifdef SOMCHKEXCEPT
   ODULong __somResult = 
      SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,GetValue)
	(this, ev,length,value);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,GetValue)
	(this, ev,length,value);
#endif
}


/* method: SetValue */
void   SetValue(Environment *ev,
		ODByteArray* value)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,SetValue)
	(this, ev,value);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: InsertValue */
void   InsertValue(Environment *ev,
		ODByteArray* value)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,InsertValue)
	(this, ev,value);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: DeleteValue */
void   DeleteValue(Environment *ev,
		ODULong length)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,DeleteValue)
	(this, ev,length);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


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


/* method: GetStrongStorageUnitRef */
void   GetStrongStorageUnitRef(Environment *ev,
		ODStorageUnitID embeddedSUID,
		ODStorageUnitRef strongRef)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,GetStrongStorageUnitRef)
	(this, ev,embeddedSUID,strongRef);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetWeakStorageUnitRef */
void   GetWeakStorageUnitRef(Environment *ev,
		ODStorageUnitID embeddedSUID,
		ODStorageUnitRef weakRef)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,GetWeakStorageUnitRef)
	(this, ev,embeddedSUID,weakRef);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


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


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


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


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


/* method: SetStorageUnitRef */
void   SetStorageUnitRef(Environment *ev,
		ODStorageUnitID embeddedSUID,
		ODStorageUnitRef ref)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,SetStorageUnitRef)
	(this, ev,embeddedSUID,ref);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


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


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


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


/* method: SetPromiseValue */
void   SetPromiseValue(Environment *ev,
		ODValueType valueType,
		ODULong offset,
		ODByteArray* value,
		ODPart* sourcePart)
{
   SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,SetPromiseValue)
	(this, ev,valueType,offset,value,sourcePart);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetPromiseValue */
ODULong   GetPromiseValue(Environment *ev,
		ODValueType valueType,
		ODULong offset,
		ODULong length,
		ODByteArray* value,
		ODPart** sourcePart)
{
#ifdef SOMCHKEXCEPT
   ODULong __somResult = 
      SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,GetPromiseValue)
	(this, ev,valueType,offset,length,value,sourcePart);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODStorageUnit,GetPromiseValue)
	(this, ev,valueType,offset,length,value,sourcePart);
#endif
}


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


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


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


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


/*
 * Reintroduce inherited methods
 */

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


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


/* method: Release */
void   Release(Environment *ev)
{
   SOM_ResolveD(this,ODStorageUnit,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,ODStorageUnit,ODRefCntObject,GetRefCount)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODRefCntObject,GetRefCount)
	(this, ev);
#endif
}


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


/* method: InitObject */
void   InitObject(Environment *ev)
{
   SOM_ResolveD(this,ODStorageUnit,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,ODStorageUnit,ODObject,HasExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODObject,HasExtension)
	(this, ev,extensionName);
#endif
}


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


/* method: ReleaseExtension */
void   ReleaseExtension(Environment *ev,
		ODExtension* extension)
{
   SOM_ResolveD(this,ODStorageUnit,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,ODStorageUnit,ODObject,Purge)
	(this, ev,size);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODStorageUnit,ODObject,Purge)
	(this, ev,size);
#endif
}


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


/* va_list method: somDispatch */
/* the va_list invocation form */
boolean   ODStorageUnit_somDispatch(somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODStorageUnit,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,ODStorageUnit,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean   ODStorageUnit_somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODStorageUnit,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,ODStorageUnit,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


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


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


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


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


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



};   /* ODStorageUnit */



#endif       /* SOM_ODStorageUnit_xh */
