header/dpgSortedArray.h

/******************************************************************************
 **                                                                          **
 **     Module:     dpgSortedArray.h                                         **
 **                                                                          **
 **                                                                          **
 **                                                                          **
 **                                                                          **
 **                                                                          **
 **     Copyright (C) 1996-1996 Apple Computer, Inc.  All rights reserved.   **
 **                                                                          **
 **                                                                          **
 *****************************************************************************/
 
#ifndef dpgSortedArray_h
#define dpgSortedArray_h
 
#if PRAGMA_ONCE
    #pragma once
#endif
 
#include "QD3D.h"
 
#ifdef __cplusplus
extern "C" {
#endif /*  __cplusplus  */
 
typedef long (*dpgCompareFunction)(
    void        *key,
    void        *arrayElement);
 
TQ3Boolean dpgSortedArray_Search(
    void                *key,
    void                *array,
    unsigned long       nElems,
    unsigned long       elemSize,
    dpgCompareFunction  compare,
    unsigned long       *position);
 
TQ3Status dpgSortedArray_Resize(
    void                **array,
    unsigned long       nElems,
    unsigned long       elemSize);
 
void dpgSortedArray_InsertElement(
    void                *array,
    unsigned long       nElems,
    unsigned long       elemSize,
    void                *newElem,
    unsigned long       position);
 
void dpgSortedArray_DeleteElement(
    void                *array,
    unsigned long       nElems,
    unsigned long       elemSize,
    void                *oldElement,    /* Can be NULL */
    unsigned long       position);
 
#ifdef __cplusplus
}
#endif /*  __cplusplus  */
 
#endif