/*	VarBind.h - Generic OID VarBind routines
*
*******************************************************************************
* Copyright (c) 1996-97 Digi International Inc., All Rights Reserved          *
*                                                                             *
* This  software  contains  proprietary  and  confidential   information   of *
* Digi International  Inc.   By  accepting  transfer  of this copy, Recipient *
* agrees to retain this software in  confidence,  to  prevent  disclosure  to *
* others,  and  to make no  use of this software other than that for which it *
* was delivered.  This is an unpublished copyright work  Digi   International *
* Inc.    Except   as   permitted   by  federal  law,  17 USC 117, copying is *
* strictly prohibited.                                                        *
*                                                                             *
* Digi  International  Inc.  CONFIDENTIAL  -   (Digi    International    Inc. *
* Confidential  when   combined   with   the   aggregated  modules  for  this *
* product) OBJECT CODE ONLY SOURCE MATERIALS                                  *
*                                                                             *
* (C) COPYRIGHT Digi International Inc. 1996-97                               *
*                                                                             *
* All Rights Reserved                                                         *
*                                                                             *
* US   Government   Users   Restricted   Rights   -   Use,   duplication   or *
* disclosure  restricted by GSA ADP Schedule Contract with Digi International *
* Inc.                                                                        *
*                                                                             *
*******************************************************************************
*
*/

#if !defined(__VARBIND_H__)
#define	__VARBIND_H__

typedef BOOL (*MAX_CALLBACK)(size_t const iOffset, AsnObjectIdentifier * const poia, size_t const i, UINT * const pcLength);
typedef BOOL (*VALID_CALLBACK)(size_t const iOffset, AsnObjectIdentifier * const poia, BOOL * const pfValid);

BOOL Index_SparseLinear(IndexFunction_t const eType, size_t const cIndicies, size_t const iOffset, AsnObjectIdentifier * const poia, AsnInteger * const piaErrorStatus, MAX_CALLBACK const pfnMax, VALID_CALLBACK const pfnValid);
BOOL Index_Linear(IndexFunction_t const eType, size_t const cIndicies, size_t const iOffset, AsnObjectIdentifier * const poia, AsnInteger * const piaErrorStatus, MAX_CALLBACK const pfnMax);
BOOL SetCacheObject_Generic(size_t const iOffset, RFC1157VarBind const * const pvb, CacheObject_t * const pco);

BOOL VarBind_CachedObject(BYTE const eType, CacheObject_t const * const pco, CacheValue_t const * const pcv, AsnObjectSyntax * const posa, AsnInteger * const piaErrorStatus);
BOOL VarBind_GenericData(BYTE const eType, void const * const pvMulti, size_t const iOffset, RFC1157VarBind * const pvb, AsnInteger * const piaErrorStatus);
BOOL VarBind_GenericList(BYTE const eType, void const * const pvMulti, size_t const iOffset, RFC1157VarBind * const pvb, AsnInteger * const piaErrorStatus);
BOOL VarBind_GenericTable(BYTE const eType, void const * const pvMulti, size_t const iOffset, RFC1157VarBind * const pvb, AsnInteger * const piaErrorStatus);

BOOL VarBind_Root(BYTE const eType, ROOT_MAP const * const prm, RFC1157VarBind * const pvb, AsnInteger * const piaErrorStatus);

#endif
