#ifdef __PRIVATE__
//#
//#	File:		ValueNS.idl
//#
//#	Contains:	Interface for ODValueNameSpace class
//#
//#	Owned by:	Nick Pilch, Caia Grisar
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <3>	 9/21/94	CG		#1187648: Removed faulty #ifdef PRIVATE
//#									clause.
//#		 <2>	 8/24/94	CG		#1181622: Updated file ownership.
//#		 <1>	 7/29/94	CG		first checked in
//#		 <4>	  7/1/94	CG		Removed ReadSize.
//#		 <3>	 6/24/94	CG		Added functionprefix.
//#		 <2>	 6/14/94	CG		Removed fHeap and GetHeap().
//#		 <1>	  6/8/94	CG		first checked in
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _VALUENS_
#define _VALUENS_

#ifndef _NAMSPAC_
#include "NamSpac.idl"
#endif

//==============================================================================
// Scalar Types
//==============================================================================

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

interface  ODValueNameSpace;

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

interface  ODNameSpaceManager;
interface  ODSession;
interface  ODStorageUnitView;
interface  ODValueIterator;

//==============================================================================
// ODNameSpace
//==============================================================================

interface ODValueNameSpace :  ODNameSpace
{
  void InitValueNameSpace(in ODNameSpaceManager mgr,
  					 in ODNameSpace parent,
					 in ODULong numExpectedEntries,
					 in ODISOStr name);

   void Register(in ODISOStr key,
   				 in ODPtr value,
				 in ODULong valueLength);

   ODBoolean GetEntry(in ODISOStr key,
				  out  ODPtr value,
				  out  ODULong valLen);

   ODValueIterator CreateIterator();

  //# private. 

  void          Write(in PlatformFile file,
  					  in ODStorageUnitView view);
  void          Read(in PlatformFile file,
  					 in ODStorageUnitView view);
  
#ifdef __SOMIDL__
	implementation
  	{
	functionprefix = ODValueNameSpace;
	override:
    	somInit,
    	somUninit,
		
        Purge,

        WriteToFile,
        ReadFromFile,
        WriteToStorage,
        ReadFromStorage;
		
    releaseorder:
		InitValueNameSpace,
		Register,
		GetEntry,
		CreateIterator,
		Write,
		Read;

		majorversion = 1; minorversion = 0;
		
  };
#endif
};

#endif //# _VALUENS_
