[SOLVED] CS data structure /***************************************************************************/

$25

File Name: CS_data_structure_/***************************************************************************/.zip
File Size: 894.9 KB

5/5 - (1 vote)

/***************************************************************************/
/* */
/*ftlist.h */
/* */
/*Generic list support for FreeType (specification). */
/* */
/*Copyright 1996-2015 by */
/*David Turner, Robert Wilhelm, and Werner Lemberg.*/
/* */
/*This file is part of the FreeType project, and may only be used, */
/*modified, and distributed under the terms of the FreeType project*/
/*license, LICENSE.TXT.By continuing to use, modify, or distribute */
/*this file you indicate that you have read the license and*/
/*understand and accept it fully.*/
/* */
/***************************************************************************/

/*************************************************************************/
/* */
/*This file implements functions relative to list processing.Its */
/*data structures are defined in `freetype.h. */
/* */
/*************************************************************************/

#ifndef __FTLIST_H__
#define __FTLIST_H__

#include
#include FT_FREETYPE_H

#ifdef FREETYPE_H
#error freetype.h of FreeType 1 has been loaded!
#error Please fix the directory search order for header files
#error so that freetype.h of FreeType 2 is found first.
#endif

FT_BEGIN_HEADER

/*************************************************************************/
/* */
/*

*/
/*list_processing*/
/* */
/* */<br />/*List Processing*/<br />/* */<br />/*<abstract> */ <br /> /*Simple management of lists.*/ <br /> /* */ <br /> /* <description>*/<br />/*This section contains various definitions related to list*/<br />/*processing using doubly-linked nodes.*/<br />/* */<br />/*<order> */ <br /> /*FT_List*/ <br /> /*FT_ListNode*/ <br /> /*FT_ListRec */ <br /> /*FT_ListNodeRec */ <br /> /* */ <br /> /*FT_List_Add*/ <br /> /*FT_List_Insert */ <br /> /*FT_List_Find */ <br /> /*FT_List_Remove */ <br /> /*FT_List_Up */ <br /> /*FT_List_Iterate*/ <br /> /*FT_List_Iterator */ <br /> /*FT_List_Finalize */ <br /> /*FT_List_Destructor */ <br /> /* */ <br /> /*************************************************************************/</order> </description></abstract>

/*************************************************************************/
/* */
/* */
/*FT_List_Find */
/* */
/* */
/*Find the list node for a given listed object.*/
/* */
/**/
/*list :: A pointer to the parent list.*/
/*data :: The address of the listed object.*/
/* */
/* */
/*List node.NULL if it wasnt found. */
/* */
FT_EXPORT( FT_ListNode )
FT_List_Find( FT_Listlist,
void*data );

/*************************************************************************/
/* */
/* */
/*FT_List_Add*/
/* */
/* */
/*Append an element to the end of a list.*/
/* */
/* */
/*list :: A pointer to the parent list.*/
/*node :: The node to append.*/
/* */
FT_EXPORT( void )
FT_List_Add( FT_Listlist,
FT_ListNodenode );

/*************************************************************************/
/* */
/* */
/*FT_List_Insert */
/* */
/* */
/*Insert an element at the head of a list. */
/* */
/* */
/*list :: A pointer to parent list.*/
/*node :: The node to insert.*/
/* */
FT_EXPORT( void )
FT_List_Insert( FT_Listlist,
FT_ListNodenode );

/*************************************************************************/
/* */
/* */
/*FT_List_Remove */
/* */
/* */
/*Remove a node from a list.This function doesnt check whether*/
/*the node is in the list! */
/* */
/**/
/*node :: The node to remove.*/
/* */
/* */
/*list :: A pointer to the parent list.*/
/* */
FT_EXPORT( void )
FT_List_Remove( FT_Listlist,
FT_ListNodenode );

/*************************************************************************/
/* */
/* */
/*FT_List_Up */
/* */
/* */
/*Move a node to the head/top of a list.Used to maintain LRU */
/*lists. */
/* */
/* */
/*list :: A pointer to the parent list.*/
/*node :: The node to move.*/
/* */
FT_EXPORT( void )
FT_List_Up( FT_Listlist,
FT_ListNodenode );

/*************************************************************************/
/* */
/* */
/*FT_List_Iterator */
/* */
/* */
/*An FT_List iterator function that is called during a list parse*/
/*by @FT_List_Iterate. */
/* */
/**/
/*node :: The current iteration list node. */
/* */
/*user :: A typeless pointer passed to @FT_List_Iterate. */
/*Can be used to point to the iterations state. */
/* */
typedef FT_Error
(*FT_List_Iterator)( FT_ListNodenode,
void*user );

/*************************************************************************/
/* */
/* */
/*FT_List_Iterate*/
/* */
/* */
/*Parse a list and calls a given iterator function on each element.*/
/*Note that parsing is stopped as soon as one of the iterator calls*/
/*returns a non-zero value.*/
/* */
/**/
/*list :: A handle to the list.*/
/*iterator :: An iterator function, called on each node of the list. */
/*user :: A user-supplied field that is passed as the second */
/*argument to the iterator.*/
/* */
/* */
/*The result (a FreeType error code) of the last iterator call.*/
/* */
FT_EXPORT( FT_Error )
FT_List_Iterate( FT_List list,
FT_List_Iteratoriterator,
void* user );

/*************************************************************************/
/* */
/* */
/*FT_List_Destructor */
/* */
/* */
/*An @FT_List iterator function that is called during a list */
/*finalization by @FT_List_Finalize to destroy all elements in a */
/*given list.*/
/* */
/**/
/*system :: The current system object. */
/* */
/*data :: The current object to destroy. */
/* */
/*user :: A typeless pointer passed to @FT_List_Iterate.It can */
/*be used to point to the iterations state. */
/* */
typedef void
(*FT_List_Destructor)( FT_Memorymemory,
void*data,
void*user );

/*************************************************************************/
/* */
/* */
/*FT_List_Finalize */
/* */
/* */
/*Destroy all elements in the list as well as the list itself. */
/* */
/**/
/*list:: A handle to the list. */
/* */
/*destroy :: A list destructor that will be applied to each element*/
/* of the list.Set this to NULL if not needed. */
/* */
/*memory:: The current memory object that handles deallocation.*/
/* */
/*user:: A user-supplied field that is passed as the last*/
/* argument to the destructor. */
/* */
/* */
/*This function expects that all nodes added by @FT_List_Add or*/
/*@FT_List_Insert have been dynamically allocated. */
/* */
FT_EXPORT( void )
FT_List_Finalize( FT_List list,
FT_List_Destructordestroy,
FT_Memory memory,
void* user );

/* */

FT_END_HEADER

#endif /* __FTLIST_H__ */

/* END */

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS data structure /***************************************************************************/
$25