/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File: OCTVC1_LIST.h

Copyright (c) 2014 Octasic Inc. All rights reserved.

Description: 

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Octasic_Release: OCTSDR-2G-01.08.05-B29-ALPHA (2014/08/14)

$Revision: $

\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#ifndef __OCTVC1_LIST_H__
#define __OCTVC1_LIST_H__


/*****************************  INCLUDE FILES  *******************************/
#include "../octdev_types.h"
#include "octvc1_base.h"
#include "octvc1_cursor.h"


/************************  COMMON DEFINITIONS  *******************************/

/*-------------------------------------------------------------------------------------
	tOCTVC1_LIST_HANDLE_GET
 		Handle list List structure,
 		Used when the objects to list are identified by a tOCTVC1_HANDLE.

 Members:
	ulNumHandle
 		Number of valid handles in aHandle
	aHandle
 		Array containing the listed handles
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32		ulNumHandle;
	tOCTVC1_HANDLE	aHandle[cOCTVC1_HANDLE_OBJECT_LIST_MAX_ENTRY];

} tOCTVC1_LIST_HANDLE_GET;

/*-------------------------------------------------------------------------------------
	tOCTVC1_LIST_HANDLE_GET_SUB_OBJECT_ID
 		Handle list List structure,
 		Used when the objects to list are identified by a tOCTVC1_SUB_OBJECT_ID.

 Members:
	hParent
 		Handle of the parent of the sub-object IDs
	ulNumSubObjectId
 		Number of valid entries in aSubObjectId
	aSubObjectId
 		Array containing the listed sub object IDs
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_HANDLE			hParent;
	tOCT_UINT32				ulNumSubObjectId;
	tOCTVC1_SUB_OBJECT_ID	aSubObjectId[cOCTVC1_HANDLE_OBJECT_LIST_MAX_ENTRY];

} tOCTVC1_LIST_HANDLE_GET_SUB_OBJECT_ID;

/*-------------------------------------------------------------------------------------
	tOCTVC1_LIST_HANDLE_OBJECT_GET
 		Handle Object list List structure,
 		Used when the objects to list are identified by a tOCTVC1_HANDLE_OBJECT.

 Members:
	ulNumHandleObject
 		Number of valid handle objects in aHandleObject
	aHandleObject
 		Array containing the listed handles
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32				ulNumHandleObject;
	tOCTVC1_HANDLE_OBJECT	aHandleObject[cOCTVC1_HANDLE_OBJECT_LIST_MAX_ENTRY];

} tOCTVC1_LIST_HANDLE_OBJECT_GET;

/*-------------------------------------------------------------------------------------
	tOCTVC1_LIST_HANDLE_OBJECT_GET_SUB_OBJECT_ID
 		Handle Object list List structure,
 		Used when the objects to list are identified by a tOCTVC1_SUB_OBJECT_ID.

 Members:
	hParent
 		Handle object of the parent
	ulNumSubObjectId
 		Number of valid sub object IDs in aSubObjectId
	aSubObjectId
 		Array containing the listed handles
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_HANDLE_OBJECT	hParent;
	tOCT_UINT32				ulNumSubObjectId;
	tOCTVC1_SUB_OBJECT_ID	aSubObjectId[cOCTVC1_HANDLE_OBJECT_LIST_MAX_ENTRY];

} tOCTVC1_LIST_HANDLE_OBJECT_GET_SUB_OBJECT_ID;

/*-------------------------------------------------------------------------------------
	tOCTVC1_LIST_INDEX_GET
 		Object Index List structure,
 		Used when the objects to list are identified by a tOCTVC1_INDEX.

 Members:
	ulNumIndex
 		Number of valid index in aIndex
	aIndex
 		Array containing the listed of indexes
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32		ulNumIndex;
	tOCTVC1_INDEX	aIndex[cOCTVC1_HANDLE_OBJECT_LIST_MAX_ENTRY];

} tOCTVC1_LIST_INDEX_GET;


#endif /* __OCTVC1_LIST_H__ */

