# cpl_list.h File Reference

Simplest list implementation. More...

`#include "cpl_port.h"`

Go to the source code of this file.

## Classes
struct | _CPLList
| List element structure. More...
## Typedefs
typedef struct _CPLList | CPLList
| List element structure.
## Functions
CPLList * | CPLListAppend (CPLList *psList, void *pData)
| Append an object list and return a pointer to the modified list.
CPLList * | CPLListInsert (CPLList *psList, void *pData, int nPosition)
| Insert an object into list at specified position (zero based).
CPLList * | CPLListGetLast (CPLList *psList)
| Return the pointer to last element in a list.
CPLList * | CPLListGet (CPLList *psList, int nPosition)
| Return the pointer to the specified element in a list.
int | CPLListCount (CPLList *psList)
| Return the number of elements in a list.
CPLList * | CPLListRemove (CPLList *psList, int nPosition)
| Remove the element from the specified position (zero based) in a list.
void | CPLListDestroy (CPLList *psList)
| Destroy a list.
CPLList * | CPLListGetNext (CPLList *psElement)
| Return the pointer to next element in a list.
void * | CPLListGetData (CPLList *psElement)
| Return pointer to the data object contained in given list element.

## Detailed Description

Simplest list implementation.

List contains only pointers to stored objects, not objects itself. All operations regarding allocation and freeing memory for objects should be performed by the caller.

## Typedef Documentation

typedef struct _CPLList CPLList

List element structure.

## Function Documentation

CPLList* CPLListAppend | ( | CPLList * | psList,
|  | void * | pData |
| ) |  |  |

Append an object list and return a pointer to the modified list.

If the input list is NULL, then a new list is created.

Parameters:

  | psList | pointer to list head.
  | pData | pointer to inserted data object. May be NULL.

Returns:
  pointer to the head of modified list.

References _CPLList::pData, and _CPLList::psNext.

int CPLListCount | ( | CPLList * | psList | ) |

Return the number of elements in a list.

Parameters:

  | psList | pointer to list head.

Returns:
  number of elements in a list.

References _CPLList::psNext.

void CPLListDestroy | ( | CPLList * | psList | ) |

Destroy a list.

Caller responsible for freeing data objects contained in list elements.

Parameters:

  | psList | pointer to list head.

References _CPLList::psNext.

CPLList* CPLListGet | ( | CPLList * | psList,
|  | int | nPosition |
| ) |  |  |

Return the pointer to the specified element in a list.

Parameters:

  | psList | pointer to list head.
  | nPosition | the index of the element in the list, 0 being the first element

Returns:
  pointer to the specified element in a list.

References _CPLList::psNext.

void* CPLListGetData | ( | CPLList * | psElement | ) |

Return pointer to the data object contained in given list element.

Parameters:

  | psElement | pointer to list element.

Returns:
  pointer to the data object contained in given list element.

References _CPLList::pData.

CPLList* CPLListGetLast | ( | CPLList * | psList | ) |

Return the pointer to last element in a list.

Parameters:

  | psList | pointer to list head.

Returns:
  pointer to last element in a list.

References _CPLList::psNext.

CPLList* CPLListGetNext | ( | CPLList * | psElement | ) |

Return the pointer to next element in a list.

Parameters:

  | psElement | pointer to list element.

Returns:
  pointer to the list element preceded by the given element.

References _CPLList::psNext.

CPLList* CPLListInsert | ( | CPLList * | psList,
|  | void * | pData,
|  | int | nPosition |
| ) |  |  |

Insert an object into list at specified position (zero based).

If the input list is NULL, then a new list is created.

Parameters:

  | psList | pointer to list head.
  | pData | pointer to inserted data object. May be NULL.
  | nPosition | position number to insert an object.

Returns:
  pointer to the head of modified list.

References _CPLList::pData, and _CPLList::psNext.

CPLList* CPLListRemove | ( | CPLList * | psList,
|  | int | nPosition |
| ) |  |  |

Remove the element from the specified position (zero based) in a list.

Data object contained in removed element must be freed by the caller first.

Parameters:

  | psList | pointer to list head.
  | nPosition | position number to delet an element.

Returns:
  pointer to the head of modified list.

References _CPLList::psNext.

Generated for GDAL by 1.5.6.