/* @(#)Z 1.4 com/src/core/idl/PstObj.idl, odcore, od96nt, odnt9712d 97/03/21 16:44:27 (96/10/29 09:22:48) */


#ifndef _PSTOBJ_
#define _PSTOBJ_

#ifndef _REFCTOBJ_
#include "RefCtObj.idl"
#endif

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

interface  ODPersistentObject;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface	ODStorageUnit;
interface	ODFrame;

//==============================================================================
// ODPersistentObject
//==============================================================================

interface ODPersistentObject :  ODRefCntObject
{
  void  InitPersistentObject(in ODStorageUnit storageUnit);

  void  InitPersistentObjectFromStorage(in ODStorageUnit storageUnit);

  void  ReleaseAll();

  void  Externalize();

  ODStorageUnit  GetStorageUnit();

  ODID   GetID();

  void CloneInto(in ODDraftKey key,
  							in ODStorageUnit toSU,
							in ODFrame scope);

#ifdef __SOMIDL__
	implementation
	{
	majorversion = 1; minorversion = 0;

  	functionprefix = ODPersistentObject;

  	override:
		somUninit;

    releaseorder:
        InitPersistentObject,
        InitPersistentObjectFromStorage,
        ReleaseAll,
        Externalize,
        GetStorageUnit,
        GetID,
		CloneInto;


  };
#endif 
};

#endif 

