tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pkix_list.h (2009B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 /*
      5 * pkix_list.h
      6 *
      7 * List Object Type Definition
      8 *
      9 */
     10 
     11 #ifndef _PKIX_LIST_H
     12 #define _PKIX_LIST_H
     13 
     14 #include "pkix_tools.h"
     15 
     16 #ifdef __cplusplus
     17 extern "C" {
     18 #endif
     19 
     20 typedef PKIX_Error *
     21 (*PKIX_List_SortComparatorCallback)(
     22        PKIX_PL_Object *obj1,
     23        PKIX_PL_Object *obj2,
     24        PKIX_Int32 *pResult,
     25        void *plContext);
     26 
     27 struct PKIX_ListStruct {
     28        PKIX_PL_Object *item;
     29        PKIX_List *next;
     30        PKIX_Boolean immutable;
     31        PKIX_UInt32 length;
     32        PKIX_Boolean isHeader;
     33 };
     34 
     35 /* see source file for function documentation */
     36 
     37 PKIX_Error *pkix_List_RegisterSelf(void *plContext);
     38 
     39 PKIX_Error *
     40 pkix_List_Contains(
     41        PKIX_List *list,
     42        PKIX_PL_Object *object,
     43        PKIX_Boolean *pFound,
     44        void *plContext);
     45 
     46 PKIX_Error *
     47 pkix_List_Remove(
     48        PKIX_List *list,
     49        PKIX_PL_Object *target,
     50        void *plContext);
     51 
     52 PKIX_Error *
     53 pkix_List_MergeLists(
     54        PKIX_List *firstList,
     55        PKIX_List *secondList,
     56        PKIX_List **pMergedList,
     57        void *plContext);
     58 
     59 PKIX_Error *
     60 pkix_List_AppendList(
     61        PKIX_List *toList,
     62        PKIX_List *fromList,
     63        void *plContext);
     64 
     65 PKIX_Error *
     66 pkix_List_AppendUnique(
     67        PKIX_List *toList,
     68        PKIX_List *fromList,
     69        void *plContext);
     70 
     71 PKIX_Error *
     72 pkix_List_RemoveItems(
     73        PKIX_List *list,
     74        PKIX_List *deleteList,
     75        void *plContext);
     76 
     77 PKIX_Error *
     78 pkix_List_QuickSort(
     79        PKIX_List *fromList,
     80        PKIX_List_SortComparatorCallback comparator,
     81        PKIX_List **pSortedList,
     82        void *plContext);
     83 
     84 PKIX_Error *
     85 pkix_List_BubbleSort(
     86        PKIX_List *fromList,
     87        PKIX_List_SortComparatorCallback comparator,
     88        PKIX_List **pSortedList,
     89        void *plContext);
     90 
     91 #ifdef __cplusplus
     92 }
     93 #endif
     94 
     95 #endif /* _PKIX_LIST_H */