
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\LINKMGR.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *  Theory of Operation
 * 
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODLinkManager_h
#define SOM_ODLinkManager_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define ODLinkManagerClassData (*resolve_ODLinkManagerClassData())
#define ODLinkManagerCClassData (*resolve_ODLinkManagerCClassData())

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

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODRefCntObject
    #define ODRefCntObject SOMObject
#endif /* ODRefCntObject */
#ifndef ODStorageUnit
    #define ODStorageUnit SOMObject
#endif /* ODStorageUnit */
#ifndef ODDraft
    #define ODDraft SOMObject
#endif /* ODDraft */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */
#ifndef ODStorageUnitCursor
    #define ODStorageUnitCursor SOMObject
#endif /* ODStorageUnitCursor */
#ifndef ODStorageUnitView
    #define ODStorageUnitView SOMObject
#endif /* ODStorageUnitView */
#ifndef ODStorageUnitRefIterator
    #define ODStorageUnitRefIterator SOMObject
#endif /* ODStorageUnitRefIterator */
#ifndef ODLinkManager
    #define ODLinkManager SOMObject
#endif /* ODLinkManager */
#ifndef ODDocument
    #define ODDocument SOMObject
#endif /* ODDocument */
#ifndef ODLink
    #define ODLink SOMObject
#endif /* ODLink */
#ifndef ODLinkSpec
    #define ODLinkSpec SOMObject
#endif /* ODLinkSpec */
typedef
struct ODLinkManager_DraftInfo {
ODDraft* draft;
OrderedCollection* linksToExport;
OrderedCollection* newExportedLinks;
ODBoolean linksImported;
} ODLinkManager_DraftInfo;

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_DraftInfo
    #ifdef DraftInfo
        #undef DraftInfo
        #define SOMTGD_DraftInfo 1
    #else
        #define DraftInfo ODLinkManager_DraftInfo
    #endif /* DraftInfo */
#endif /* SOMTGD_DraftInfo */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#define ODLinkManager_MajorVersion 0
#define ODLinkManager_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODLinkManagerNewClass c
#define ODLinkManagerClassData d
#define ODLinkManagerCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODLinkManager_classObj ODLinkManagerClassData.classObject
#define _ODLinkManager ODLinkManager_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODLinkManagerClassDataStructure {
	SOMClass *classObject;
	somMToken InitLinkManager;
	somMToken UnsavedExportedLinks;
	somMToken AnyLinkImported;
	somMToken DraftOpened;
	somMToken DraftSaved;
	somMToken DraftClosing;
	somMToken ExportOnSave;
	somMToken CreateLink;
	somMToken NewDraftInfo;
	somMToken GetDraftInfo;
	somMToken DeleteDraftInfos;
	somMToken FetchLink;
}  _ODLinkManagerClassData;
SOMEXTERN struct ODLinkManagerClassDataStructure * SOMLINK resolve_ODLinkManagerClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODLinkManagerCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODLinkManagerCClassData;
SOMEXTERN struct ODLinkManagerCClassDataStructure * SOMLINK resolve_ODLinkManagerCClassData(void);

/*
 * New and Renew macros for ODLinkManager
 */
#define ODLinkManagerNew() \
   (_somNew(_ODLinkManager ? _ODLinkManager : ODLinkManagerNewClass(ODLinkManager_MajorVersion, ODLinkManager_MinorVersion)))
#define ODLinkManagerRenew(buf) \
   (_somRenew(_ODLinkManager ? _ODLinkManager : ODLinkManagerNewClass(ODLinkManager_MajorVersion, ODLinkManager_MinorVersion), buf))

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

/*
 * Override method: somUninit
 */
#define ODLinkManager_somUninit(somSelf) \
	SOMObject_somUninit(somSelf)

/*
 * New Method: InitLinkManager
 */
typedef void   (SOMLINK * somTD_ODLinkManager_InitLinkManager)(ODLinkManager *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODLinkManager_InitLinkManager "::ODLinkManager::InitLinkManager"
#define ODLinkManager_InitLinkManager(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODLinkManager, InitLinkManager) \
	(somSelf,ev,session))
#ifndef SOMGD_InitLinkManager
    #if (defined(_InitLinkManager) || defined(__InitLinkManager))
        #undef _InitLinkManager
        #undef __InitLinkManager
        #define SOMGD_InitLinkManager 1
    #else
        #define _InitLinkManager ODLinkManager_InitLinkManager
    #endif /* _InitLinkManager */
#endif /* SOMGD_InitLinkManager */

/*
 * New Method: UnsavedExportedLinks
 */
typedef ODBoolean   (SOMLINK * somTD_ODLinkManager_UnsavedExportedLinks)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_UnsavedExportedLinks "::ODLinkManager::UnsavedExportedLinks"
#define ODLinkManager_UnsavedExportedLinks(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, UnsavedExportedLinks) \
	(somSelf,ev,draft))
#ifndef SOMGD_UnsavedExportedLinks
    #if (defined(_UnsavedExportedLinks) || defined(__UnsavedExportedLinks))
        #undef _UnsavedExportedLinks
        #undef __UnsavedExportedLinks
        #define SOMGD_UnsavedExportedLinks 1
    #else
        #define _UnsavedExportedLinks ODLinkManager_UnsavedExportedLinks
    #endif /* _UnsavedExportedLinks */
#endif /* SOMGD_UnsavedExportedLinks */

/*
 * New Method: AnyLinkImported
 */
typedef ODBoolean   (SOMLINK * somTD_ODLinkManager_AnyLinkImported)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_AnyLinkImported "::ODLinkManager::AnyLinkImported"
#define ODLinkManager_AnyLinkImported(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, AnyLinkImported) \
	(somSelf,ev,draft))
#ifndef SOMGD_AnyLinkImported
    #if (defined(_AnyLinkImported) || defined(__AnyLinkImported))
        #undef _AnyLinkImported
        #undef __AnyLinkImported
        #define SOMGD_AnyLinkImported 1
    #else
        #define _AnyLinkImported ODLinkManager_AnyLinkImported
    #endif /* _AnyLinkImported */
#endif /* SOMGD_AnyLinkImported */

/*
 * New Method: DraftOpened
 */
typedef void   (SOMLINK * somTD_ODLinkManager_DraftOpened)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_DraftOpened "::ODLinkManager::DraftOpened"
#define ODLinkManager_DraftOpened(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, DraftOpened) \
	(somSelf,ev,draft))
#ifndef SOMGD_DraftOpened
    #if (defined(_DraftOpened) || defined(__DraftOpened))
        #undef _DraftOpened
        #undef __DraftOpened
        #define SOMGD_DraftOpened 1
    #else
        #define _DraftOpened ODLinkManager_DraftOpened
    #endif /* _DraftOpened */
#endif /* SOMGD_DraftOpened */

/*
 * New Method: DraftSaved
 */
typedef void   (SOMLINK * somTD_ODLinkManager_DraftSaved)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_DraftSaved "::ODLinkManager::DraftSaved"
#define ODLinkManager_DraftSaved(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, DraftSaved) \
	(somSelf,ev,draft))
#ifndef SOMGD_DraftSaved
    #if (defined(_DraftSaved) || defined(__DraftSaved))
        #undef _DraftSaved
        #undef __DraftSaved
        #define SOMGD_DraftSaved 1
    #else
        #define _DraftSaved ODLinkManager_DraftSaved
    #endif /* _DraftSaved */
#endif /* SOMGD_DraftSaved */

/*
 * New Method: DraftClosing
 */
typedef void   (SOMLINK * somTD_ODLinkManager_DraftClosing)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_DraftClosing "::ODLinkManager::DraftClosing"
#define ODLinkManager_DraftClosing(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, DraftClosing) \
	(somSelf,ev,draft))
#ifndef SOMGD_DraftClosing
    #if (defined(_DraftClosing) || defined(__DraftClosing))
        #undef _DraftClosing
        #undef __DraftClosing
        #define SOMGD_DraftClosing 1
    #else
        #define _DraftClosing ODLinkManager_DraftClosing
    #endif /* _DraftClosing */
#endif /* SOMGD_DraftClosing */

/*
 * New Method: ExportOnSave
 */
typedef void   (SOMLINK * somTD_ODLinkManager_ExportOnSave)(ODLinkManager *somSelf, Environment *ev,
		ODLink* link,
		ODBoolean doExport);
#define somMD_ODLinkManager_ExportOnSave "::ODLinkManager::ExportOnSave"
#define ODLinkManager_ExportOnSave(somSelf,ev,link,doExport) \
    (SOM_Resolve(somSelf, ODLinkManager, ExportOnSave) \
	(somSelf,ev,link,doExport))
#ifndef SOMGD_ExportOnSave
    #if (defined(_ExportOnSave) || defined(__ExportOnSave))
        #undef _ExportOnSave
        #undef __ExportOnSave
        #define SOMGD_ExportOnSave 1
    #else
        #define _ExportOnSave ODLinkManager_ExportOnSave
    #endif /* _ExportOnSave */
#endif /* SOMGD_ExportOnSave */

/*
 * New Method: CreateLink
 */
typedef ODLink*   (SOMLINK * somTD_ODLinkManager_CreateLink)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft,
		ODLinkSpec* linkSpec);
#define somMD_ODLinkManager_CreateLink "::ODLinkManager::CreateLink"
#define ODLinkManager_CreateLink(somSelf,ev,draft,linkSpec) \
    (SOM_Resolve(somSelf, ODLinkManager, CreateLink) \
	(somSelf,ev,draft,linkSpec))
#ifndef SOMGD_CreateLink
    #if (defined(_CreateLink) || defined(__CreateLink))
        #undef _CreateLink
        #undef __CreateLink
        #define SOMGD_CreateLink 1
    #else
        #define _CreateLink ODLinkManager_CreateLink
    #endif /* _CreateLink */
#endif /* SOMGD_CreateLink */

/*
 * New Method: NewDraftInfo
 */
typedef void   (SOMLINK * somTD_ODLinkManager_NewDraftInfo)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_NewDraftInfo "::ODLinkManager::NewDraftInfo"
#define ODLinkManager_NewDraftInfo(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, NewDraftInfo) \
	(somSelf,ev,draft))
#ifndef SOMGD_NewDraftInfo
    #if (defined(_NewDraftInfo) || defined(__NewDraftInfo))
        #undef _NewDraftInfo
        #undef __NewDraftInfo
        #define SOMGD_NewDraftInfo 1
    #else
        #define _NewDraftInfo ODLinkManager_NewDraftInfo
    #endif /* _NewDraftInfo */
#endif /* SOMGD_NewDraftInfo */

/*
 * New Method: GetDraftInfo
 */
typedef ODLinkManager_DraftInfo*   (SOMLINK * somTD_ODLinkManager_GetDraftInfo)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft);
#define somMD_ODLinkManager_GetDraftInfo "::ODLinkManager::GetDraftInfo"
#define ODLinkManager_GetDraftInfo(somSelf,ev,draft) \
    (SOM_Resolve(somSelf, ODLinkManager, GetDraftInfo) \
	(somSelf,ev,draft))
#ifndef SOMGD_GetDraftInfo
    #if (defined(_GetDraftInfo) || defined(__GetDraftInfo))
        #undef _GetDraftInfo
        #undef __GetDraftInfo
        #define SOMGD_GetDraftInfo 1
    #else
        #define _GetDraftInfo ODLinkManager_GetDraftInfo
    #endif /* _GetDraftInfo */
#endif /* SOMGD_GetDraftInfo */

/*
 * New Method: DeleteDraftInfos
 */
typedef void   (SOMLINK * somTD_ODLinkManager_DeleteDraftInfos)(ODLinkManager *somSelf, Environment *ev);
#define somMD_ODLinkManager_DeleteDraftInfos "::ODLinkManager::DeleteDraftInfos"
#define ODLinkManager_DeleteDraftInfos(somSelf,ev) \
    (SOM_Resolve(somSelf, ODLinkManager, DeleteDraftInfos) \
	(somSelf,ev))
#ifndef SOMGD_DeleteDraftInfos
    #if (defined(_DeleteDraftInfos) || defined(__DeleteDraftInfos))
        #undef _DeleteDraftInfos
        #undef __DeleteDraftInfos
        #define SOMGD_DeleteDraftInfos 1
    #else
        #define _DeleteDraftInfos ODLinkManager_DeleteDraftInfos
    #endif /* _DeleteDraftInfos */
#endif /* SOMGD_DeleteDraftInfos */

/*
 * New Method: FetchLink
 */
typedef ODLink*   (SOMLINK * somTD_ODLinkManager_FetchLink)(ODLinkManager *somSelf, Environment *ev,
		ODDraft* draft,
		char* pszItemName);
#define somMD_ODLinkManager_FetchLink "::ODLinkManager::FetchLink"
#define ODLinkManager_FetchLink(somSelf,ev,draft,pszItemName) \
    (SOM_Resolve(somSelf, ODLinkManager, FetchLink) \
	(somSelf,ev,draft,pszItemName))
#ifndef SOMGD_FetchLink
    #if (defined(_FetchLink) || defined(__FetchLink))
        #undef _FetchLink
        #undef __FetchLink
        #define SOMGD_FetchLink 1
    #else
        #define _FetchLink ODLinkManager_FetchLink
    #endif /* _FetchLink */
#endif /* SOMGD_FetchLink */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODLinkManager_InitObject ODObject_InitObject
#define ODLinkManager_IsInitialized ODObject_IsInitialized
#define ODLinkManager_HasExtension ODObject_HasExtension
#define ODLinkManager_GetExtension ODObject_GetExtension
#define ODLinkManager_ReleaseExtension ODObject_ReleaseExtension
#define ODLinkManager_Purge ODObject_Purge
#define ODLinkManager_IsEqualTo ODObject_IsEqualTo
#define ODLinkManager_SubClassResponsibility ODObject_SubClassResponsibility
#define ODLinkManager_somDefaultInit SOMObject_somDefaultInit
#define ODLinkManager_somDestruct SOMObject_somDestruct
#define ODLinkManager_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODLinkManager_somDefaultAssign SOMObject_somDefaultAssign
#define ODLinkManager_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODLinkManager_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODLinkManager_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODLinkManager_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODLinkManager_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODLinkManager_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODLinkManager_somFree SOMObject_somFree
#define ODLinkManager_somGetClass SOMObject_somGetClass
#define ODLinkManager_somGetClassName SOMObject_somGetClassName
#define ODLinkManager_somGetSize SOMObject_somGetSize
#define ODLinkManager_somIsA SOMObject_somIsA
#define ODLinkManager_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODLinkManager_somRespondsTo SOMObject_somRespondsTo
#define ODLinkManager_somDispatch SOMObject_somDispatch
#define ODLinkManager_somClassDispatch SOMObject_somClassDispatch
#define ODLinkManager_somCastObj SOMObject_somCastObj
#define ODLinkManager_somResetObj SOMObject_somResetObj
#define ODLinkManager_somDispatchV SOMObject_somDispatchV
#define ODLinkManager_somDispatchL SOMObject_somDispatchL
#define ODLinkManager_somDispatchA SOMObject_somDispatchA
#define ODLinkManager_somDispatchD SOMObject_somDispatchD
#define ODLinkManager_somPrintSelf SOMObject_somPrintSelf
#define ODLinkManager_somDumpSelf SOMObject_somDumpSelf
#define ODLinkManager_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODLinkManager_h */
