Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
JudySL_funcs(3) 	    Library Functions Manual		 JudySL_funcs(3)

NAME
     JudySL  functions	-  C library for creating and accessing a dynamic array,
     using a null-terminated string as an index (associative array)

SYNOPSIS
     PPvoid_t JudySLIns(      PPvoid_t PPJSLArray, const uint8_t * Index, PJError_t PJError);
     int      JudySLDel(      PPvoid_t PPJSLArray, const uint8_t * Index, PJError_t PJError);
     PPvoid_t JudySLGet(      Pcvoid_t	PJSLArray, const uint8_t * Index, PJError_t PJError);
     Word_t   JudySLFreeArray(PPvoid_t PPJSLArray, PJError_t PJError);
     PPvoid_t JudySLFirst(    Pcvoid_t	PJSLArray,	 uint8_t * Index, PJError_t PJError);
     PPvoid_t JudySLNext(     Pcvoid_t	PJSLArray,	 uint8_t * Index, PJError_t PJError);
     PPvoid_t JudySLLast(     Pcvoid_t	PJSLArray,	 uint8_t * Index, PJError_t PJError);
     PPvoid_t JudySLPrev(     Pcvoid_t	PJSLArray,	 uint8_t * Index, PJError_t PJError);

DESCRIPTION
     A macro equivalent exists for each function call.	Because the macro  forms
     are  sometimes  faster and have a simpler error handling interface than the
     equivalent functions, they are the preferred  way	of  calling  the  JudySL
     functions.   See JudySL(3) for more information.  The function call defini-
     tions are included here for completeness.

     One of the difficulties in using the JudySL function calls lies  in  deter-
     mining  whether  to  pass a pointer or the address of a pointer.  Since the
     functions that modify the JudySL array must also modify the pointer to  the
     JudySL  array,  you  must	pass  the address of the pointer rather than the
     pointer itself.  This often leads to hard-to-debug programmatic errors.  In
     practice, the macros allow the compiler to catch  programming  errors  when
     pointers instead of addresses of pointers are passed.

     The  JudySL function calls have an additional parameter beyond those speci-
     fied in the macro calls.  This parameter is either a pointer  to  an  error
     structure, or NULL (in which case the detailed error information is not re-
     turned).

     In  the following descriptions, the functions are described in terms of how
     the macros use them (only in the case of #define JUDYERROR_NOTEST 1).  This
     is the suggested use of the macros after your program has	been  fully  de-
     bugged.   When the JUDYERROR_NOTEST macro is not specified, an error struc-
     ture is declared to store error information returned from the JudySL  func-
     tions when an error occurs.

     Notice the placement of the & in the different functions.

      JudySLIns(&PJSLArray, Index, &JError)

		    #define JSLI(PValue, PJSLArray, Index) \
		       PValue = JudyLIns(&PJSLArray, Index, PJE0)

      JudySLDel(&PJSLArray, Index, &JError)

		    #define JSLD(Rc_int, PJSLArray, Index) \
		       Rc_int = JudySLDel(&PJSLArray, Index, PJE0)

      JudySLGet(PJSLArray, Index, &JError)

		    #define JSLG(PValue, PJSLArray, Index) \
		       PValue = JudySLIns(PJSLArray, Index, PJE0)

      JudySLFreeArray(&PJSLArray, &JError)

		    #define JSLFA(Rc_word, PJSLArray) \
		       Rc_word = JudySLFreeArray(&PJSLArray, PJE0)

      JudySLFirst(PJSLArray, Index, &JError)

		    #define JSLF(PValue, PJSLArray, Index) \
		       PValue = JudySLFirst(PJSLArray, Index, PJE0)

      JudySLNext(PJSLArray, Index, &JError)

		    #define JSLN(PValue, PJSLArray, Index) \
		       PValue = JudySLNext(PJSLArray, Index, PJE0)

      JudySLLast(PJSLArray, Index, &JError)

		    #define JSLL(PValue, PJSLArray, Index) \
		       PValue = JudySLLast(PJSLArray, Index, PJE0)

      JudySLPrev(PJSLArray, Index, &JError)

		    #define JSLP(PValue, PJSLArray, Index) \
		       PValue = JudySLPrev(PJSLArray, Index, PJE0)

     Definitions  for  all  the  Judy  functions,  the	types Pvoid_t, Pcvoid_t,
     PPvoid_t, Word_t , JError_t, and PJError_t, the constants NULL, JU_ERRNO_*,
     JERR, PPJERR, and PJE0 are provided in the  Judy.h  header  file  (/usr/in-
     clude/Judy.h).  Note:  Callers should define JudySL arrays as type Pvoid_t,
     which  can  be  passed  by  value to functions that take Pcvoid_t (constant
     Pvoid_t), and also by address to functions that take PPvoid_t.

     The return type from most JudySL functions is PPvoid_t so that  the  values
     stored  in  the  array can be pointers to other objects, which is a typical
     usage, or cast to a Word_t  * when a pointer to a value is required instead
     of a pointer to a pointer.

AUTHOR
     Judy was invented by Doug Baskins and implemented by Hewlett-Packard.

SEE ALSO
     Judy(3), Judy1(3), JudyL(3), JudySL(3), JudyHS(3),
     malloc(),
     the Judy website, http://judy.sourceforge.net, for more information and Ap-
     plication Notes.

								 JudySL_funcs(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=JudySLFirst&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help