//#
#ifdef __PRIVATE__
//#     File:           ODCtr.idl
//#
//#     Contains:       Definition of ODCtr.
//#
//#     Written by:     Vincent Lo
//#
//#     Copyright:      c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#     Change History (most recent first):
//#
//#              <3>     9/27/94        VL              1185464: Made this work for public
//#                                                                     interfaces.
//#              <2>     6/14/94        CC              Added functionprefix to avoid undefined
//#                                                                     entry link error on Create.
//#              <1>      6/8/94        VL              first checked in
//#
//#     To Do:
//#
#else
//#     Copyright:      c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _ODCTR_
#define _ODCTR_

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

//==============================================================================
// Classes used by this interface
//==============================================================================
interface   ODStorageSystem; 

//==============================================================================
// Classes defined in this interface
//==============================================================================
interface   ODContainer;
interface       ODDocument;

//==============================================================================
// ODContainer
//==============================================================================

interface ODContainer :  ODRefCntObject 
{

	ODStorageSystem  GetStorageSystem();
	
	ODContainerID GetID();
	
	ODContainerName GetName();
		
	void SetName(in ODContainerName name);
	
	ODDocument  GetDocument(in ODDocumentID id);

// private by convention
  
//#bln #ifdef __PRIVATE__
   void InitContainer(in ODStorageSystem system,
						in ODContainerID id);

   ODContainer  Create();
      
   ODContainer  Open();
  
   ODContainer  Close();

   ODContainer  ReleaseDocument( in ODDocument document);
   
//#bln #endif

#ifdef __SOMIDL__
  implementation
  {
	functionprefix = ODContainer;
    override:
		somInit,
		somUninit,
		IncrementRefCount,
	Release,
	Purge;
    releaseorder:
	GetStorageSystem,
	GetID,
	GetName,
	SetName,
	GetDocument,
//#bln                #ifdef __PRIVATE__
			InitContainer,
			Create,
			Open,
			Close,
			ReleaseDocument;    
//#bln                #else
//#bln                        reserved1,
//#bln                        reserved2,
//#bln                        reserved3,
//#bln                        reserved4,
//#bln                        reserved5;
//#bln                #endif
  };
#endif
};


#endif  // _ODCTR_

