/* @(#)Z 1.5 com/src/core/idl/ValueItr.idl, odcore, od96nt, odnt9712d 97/03/21 16:44:28 (96/10/29 09:23:06) */
//#====START_GENERATED_PROLOG======================================
//#
//#
//#   COMPONENT_NAME: odcore
//#
//#   CLASSES: none
//#
//#   ORIGINS: 82,27
//#
//#
//#   (C) COPYRIGHT International Business Machines Corp. 1995,1996
//#   All Rights Reserved
//#   Licensed Materials - Property of IBM
//#   US Government Users Restricted Rights - Use, duplication or
//#   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//#   	
//#   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
//#   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
//#   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
//#   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
//#   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
//#   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
//#   OR PERFORMANCE OF THIS SOFTWARE.
//#
//#====END_GENERATED_PROLOG========================================
//#

#ifdef __PRIVATE__
//#
//#	File:		ValueItr.idl
//#
//#	Contains:	Interface for ODValueIterator class
//#
//#	Owned by:	David McCusker
//#
//#	Copyright:	(r) 1993 - 1995 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <7>	 8/18/95	DM		#1275241: IDL Cleanup
//#		 <6>	  8/3/95	RR		#1257260: Collapse B classes. Remove
//#									somInit methods. Don't call IsInitialized
//#									or SubclassResponsibility
//#		 <5>	 5/11/95	DM		#1246524, #1248193: First(), Next()
//#									inout->out. #1181622: Update file
//#									ownership.
//#		 <4>	  5/2/95	DM		#1237286: make Init methods private
//#		 <3>	 1/23/95	CG		#1195019: ValueIterator methods now take
//#									ODByteArray parameter instead of ODPtr.
//#		 <2>	 8/24/94	CG		#1181622: Updated file ownership.
//#		 <1>	 7/29/94	CG		first checked in
//#		 <3>	 6/24/94	CG		Added functionprefix.
//#		 <2>	 6/15/94	CG		Added passthroughs.
//#		 <1>	  6/8/94	CG		first checked in
//#		 <1>	  6/8/94	CG		first checked in
//#
//#	To Do:
//#
#else
//#	Copyright:	(r) 1993 - 1995 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _VALUEITR_
#define _VALUEITR_

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

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

interface  ODValueIterator;

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

interface  ODValueNameSpace;

#ifdef __PRIVATE__
//==============================================================================
// Implementation Types
//==============================================================================

typedef somToken StringHashTableIterator;
#endif

//==============================================================================
// ODValueIterator
//==============================================================================

interface ODValueIterator :  ODObject
{
	void	First(out ODISOStr key,
   				   out ODByteArray value);
	void	Next(out ODISOStr key,
   				  out ODByteArray value);
	ODBoolean IsNotComplete();

#ifdef __PRIVATE__
	void InitValueIterator(in ODValueNameSpace nameSpace);
#endif 

#ifdef __SOMIDL__
	implementation
	{
		majorversion = 1; minorversion = 0;
			
		functionprefix = ODValueIterator;
		
		override:
			somUninit;
			
		releaseorder:
			First,
			Next,
			IsNotComplete,
			
#ifdef __PRIVATE__
			InitValueIterator;
#else
			reserved1;
#endif  //# __PRIVATE__
	
		#ifdef __PRIVATE__
			passthru C_xih = 
			""
			"class StringHashTableIterator;"
			"";
			ODValueNameSpace			fNameSpace;
			StringHashTableIterator*	fStrHashIterator;
		#endif //# __PRIVATE__
	};
#endif //# __SOMIDL__
};

#endif // _VALUEITR_
