/* @(#)Z 1.5 com/src/storage/idl/ODStor.idl, odstorage, od96nt, odnt9712d 97/03/21 16:48:51 (96/10/29 09:32:47) */


#ifndef _ODSTOR_
#define _ODSTOR_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface   ODStorageSystem;

//==============================================================================
// Classes used in this interface
//==============================================================================

interface   ODSession;
interface   ODContainer;
interface   ODTypeList;
interface   ODPlatformTypeList;


//==============================================================================
// ODStorageSystem
//==============================================================================

interface ODStorageSystem : ODObject   
{
	ODSession GetSession();

	ODContainer AcquireContainer(in ODContainerType containerType,
								in ODContainerID id);

	ODContainer CreateContainer(in ODContainerType containerType,
									in ODContainerID id);

	void NeedSpace(in ODSize memSize,
					in ODBoolean doPurge);

	ODTypeList	CreateTypeList(in ODTypeList typeList);

	ODPlatformTypeList	CreatePlatformTypeList(in ODPlatformTypeList typeList);


#ifdef __SOMIDL__

	implementation
	{
		majorversion = 1; minorversion = 0;

	  	functionprefix = ODStorageSystem;

		override:
			somUninit,
			Purge;

		releaseorder:
			GetSession,
			AcquireContainer,
			CreateContainer,
			NeedSpace,
			CreateTypeList,
			CreatePlatformTypeList,
			reserved1, 
			reserved2, 
			reserved3, 
			reserved4;		


  };

#endif 
};

#endif  // _ODSTOR_
