17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * Copyright (c) 2001 by Sun Microsystems, Inc.
37c478bd9Sstevel@tonic-gate  * All rights reserved.
47c478bd9Sstevel@tonic-gate  */
57c478bd9Sstevel@tonic-gate 
67c478bd9Sstevel@tonic-gate /*
77c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the Netscape Public
87c478bd9Sstevel@tonic-gate  * License Version 1.1 (the "License"); you may not use this file
97c478bd9Sstevel@tonic-gate  * except in compliance with the License. You may obtain a copy of
107c478bd9Sstevel@tonic-gate  * the License at http://www.mozilla.org/NPL/
117c478bd9Sstevel@tonic-gate  *
127c478bd9Sstevel@tonic-gate  * Software distributed under the License is distributed on an "AS
137c478bd9Sstevel@tonic-gate  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
147c478bd9Sstevel@tonic-gate  * implied. See the License for the specific language governing
157c478bd9Sstevel@tonic-gate  * rights and limitations under the License.
167c478bd9Sstevel@tonic-gate  *
177c478bd9Sstevel@tonic-gate  * The Original Code is Mozilla Communicator client code, released
187c478bd9Sstevel@tonic-gate  * March 31, 1998.
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * The Initial Developer of the Original Code is Netscape
217c478bd9Sstevel@tonic-gate  * Communications Corporation. Portions created by Netscape are
227c478bd9Sstevel@tonic-gate  * Copyright (C) 1998-1999 Netscape Communications Corporation. All
237c478bd9Sstevel@tonic-gate  * Rights Reserved.
247c478bd9Sstevel@tonic-gate  *
257c478bd9Sstevel@tonic-gate  * Contributor(s):
267c478bd9Sstevel@tonic-gate  */
277c478bd9Sstevel@tonic-gate 
287c478bd9Sstevel@tonic-gate /*
297c478bd9Sstevel@tonic-gate  * Copyright (c) 1993, 1994 Regents of the University of Michigan.
307c478bd9Sstevel@tonic-gate  * All rights reserved.
317c478bd9Sstevel@tonic-gate  *
327c478bd9Sstevel@tonic-gate  * Redistribution and use in source and binary forms are permitted
337c478bd9Sstevel@tonic-gate  * provided that this notice is preserved and that due credit is given
347c478bd9Sstevel@tonic-gate  * to the University of Michigan at Ann Arbor. The name of the University
357c478bd9Sstevel@tonic-gate  * may not be used to endorse or promote products derived from this
367c478bd9Sstevel@tonic-gate  * software without specific prior written permission. This software
377c478bd9Sstevel@tonic-gate  * is provided ``as is'' without express or implied warranty.
387c478bd9Sstevel@tonic-gate  *
397c478bd9Sstevel@tonic-gate  * disptmpl.h:  display template library defines
407c478bd9Sstevel@tonic-gate  */
417c478bd9Sstevel@tonic-gate 
427c478bd9Sstevel@tonic-gate #ifndef _DISPTMPL_H
437c478bd9Sstevel@tonic-gate #define _DISPTMPL_H
447c478bd9Sstevel@tonic-gate 
457c478bd9Sstevel@tonic-gate #ifdef __cplusplus
467c478bd9Sstevel@tonic-gate extern "C" {
477c478bd9Sstevel@tonic-gate #endif
487c478bd9Sstevel@tonic-gate 
497c478bd9Sstevel@tonic-gate /* calling conventions used by library */
507c478bd9Sstevel@tonic-gate #ifndef LDAP_CALL
517c478bd9Sstevel@tonic-gate #if defined( _WINDOWS ) || defined( _WIN32 )
527c478bd9Sstevel@tonic-gate #define LDAP_C __cdecl
53*1da57d55SToomas Soome #ifndef _WIN32
547c478bd9Sstevel@tonic-gate #define __stdcall _far _pascal
557c478bd9Sstevel@tonic-gate #define LDAP_CALLBACK _loadds
567c478bd9Sstevel@tonic-gate #else
577c478bd9Sstevel@tonic-gate #define LDAP_CALLBACK
587c478bd9Sstevel@tonic-gate #endif /* _WIN32 */
597c478bd9Sstevel@tonic-gate #define LDAP_PASCAL __stdcall
607c478bd9Sstevel@tonic-gate #define LDAP_CALL LDAP_PASCAL
617c478bd9Sstevel@tonic-gate #else /* _WINDOWS */
627c478bd9Sstevel@tonic-gate #define LDAP_C
637c478bd9Sstevel@tonic-gate #define LDAP_CALLBACK
647c478bd9Sstevel@tonic-gate #define LDAP_PASCAL
657c478bd9Sstevel@tonic-gate #define LDAP_CALL
667c478bd9Sstevel@tonic-gate #endif /* _WINDOWS */
677c478bd9Sstevel@tonic-gate #endif /* LDAP_CALL */
687c478bd9Sstevel@tonic-gate 
69*1da57d55SToomas Soome #ifndef _SOLARIS_SDK
707c478bd9Sstevel@tonic-gate 
717c478bd9Sstevel@tonic-gate #define LDAP_TEMPLATE_VERSION	1
727c478bd9Sstevel@tonic-gate 
737c478bd9Sstevel@tonic-gate /*
747c478bd9Sstevel@tonic-gate  * general types of items (confined to most significant byte)
757c478bd9Sstevel@tonic-gate  */
767c478bd9Sstevel@tonic-gate #define LDAP_SYN_TYPE_TEXT		0x01000000L
777c478bd9Sstevel@tonic-gate #define LDAP_SYN_TYPE_IMAGE		0x02000000L
787c478bd9Sstevel@tonic-gate #define LDAP_SYN_TYPE_BOOLEAN		0x04000000L
797c478bd9Sstevel@tonic-gate #define LDAP_SYN_TYPE_BUTTON		0x08000000L
807c478bd9Sstevel@tonic-gate #define LDAP_SYN_TYPE_ACTION		0x10000000L
817c478bd9Sstevel@tonic-gate 
827c478bd9Sstevel@tonic-gate 
837c478bd9Sstevel@tonic-gate /*
847c478bd9Sstevel@tonic-gate  * syntax options (confined to second most significant byte)
857c478bd9Sstevel@tonic-gate  */
867c478bd9Sstevel@tonic-gate #define LDAP_SYN_OPT_DEFER		0x00010000L
877c478bd9Sstevel@tonic-gate 
887c478bd9Sstevel@tonic-gate 
89*1da57d55SToomas Soome /*
907c478bd9Sstevel@tonic-gate  * display template item syntax ids (defined by common agreement)
917c478bd9Sstevel@tonic-gate  * these are the valid values for the ti_syntaxid of the tmplitem
927c478bd9Sstevel@tonic-gate  * struct (defined below).  A general type is encoded in the
937c478bd9Sstevel@tonic-gate  * most-significant 8 bits, and some options are encoded in the next
947c478bd9Sstevel@tonic-gate  * 8 bits.  The lower 16 bits are reserved for the distinct types.
957c478bd9Sstevel@tonic-gate  */
967c478bd9Sstevel@tonic-gate #define LDAP_SYN_CASEIGNORESTR	( 1 | LDAP_SYN_TYPE_TEXT )
977c478bd9Sstevel@tonic-gate #define LDAP_SYN_MULTILINESTR	( 2 | LDAP_SYN_TYPE_TEXT )
987c478bd9Sstevel@tonic-gate #define LDAP_SYN_DN		( 3 | LDAP_SYN_TYPE_TEXT )
997c478bd9Sstevel@tonic-gate #define LDAP_SYN_BOOLEAN	( 4 | LDAP_SYN_TYPE_BOOLEAN )
1007c478bd9Sstevel@tonic-gate #define LDAP_SYN_JPEGIMAGE	( 5 | LDAP_SYN_TYPE_IMAGE )
1017c478bd9Sstevel@tonic-gate #define LDAP_SYN_JPEGBUTTON	( 6 | LDAP_SYN_TYPE_BUTTON | LDAP_SYN_OPT_DEFER )
1027c478bd9Sstevel@tonic-gate #define LDAP_SYN_FAXIMAGE	( 7 | LDAP_SYN_TYPE_IMAGE )
1037c478bd9Sstevel@tonic-gate #define LDAP_SYN_FAXBUTTON	( 8 | LDAP_SYN_TYPE_BUTTON | LDAP_SYN_OPT_DEFER )
1047c478bd9Sstevel@tonic-gate #define LDAP_SYN_AUDIOBUTTON	( 9 | LDAP_SYN_TYPE_BUTTON | LDAP_SYN_OPT_DEFER )
1057c478bd9Sstevel@tonic-gate #define LDAP_SYN_TIME		( 10 | LDAP_SYN_TYPE_TEXT )
1067c478bd9Sstevel@tonic-gate #define LDAP_SYN_DATE		( 11 | LDAP_SYN_TYPE_TEXT )
1077c478bd9Sstevel@tonic-gate #define LDAP_SYN_LABELEDURL	( 12 | LDAP_SYN_TYPE_TEXT )
1087c478bd9Sstevel@tonic-gate #define LDAP_SYN_SEARCHACTION	( 13 | LDAP_SYN_TYPE_ACTION )
1097c478bd9Sstevel@tonic-gate #define LDAP_SYN_LINKACTION	( 14 | LDAP_SYN_TYPE_ACTION )
1107c478bd9Sstevel@tonic-gate #define LDAP_SYN_ADDDNACTION	( 15 | LDAP_SYN_TYPE_ACTION )
1117c478bd9Sstevel@tonic-gate #define LDAP_SYN_VERIFYDNACTION ( 16 | LDAP_SYN_TYPE_ACTION )
1127c478bd9Sstevel@tonic-gate #define LDAP_SYN_RFC822ADDR	( 17 | LDAP_SYN_TYPE_TEXT )
1137c478bd9Sstevel@tonic-gate 
1147c478bd9Sstevel@tonic-gate 
1157c478bd9Sstevel@tonic-gate /*
1167c478bd9Sstevel@tonic-gate  * handy macros
1177c478bd9Sstevel@tonic-gate  */
1187c478bd9Sstevel@tonic-gate #define LDAP_GET_SYN_TYPE( syid )	((syid) & 0xFF000000UL )
1197c478bd9Sstevel@tonic-gate #define LDAP_GET_SYN_OPTIONS( syid )	((syid) & 0x00FF0000UL )
1207c478bd9Sstevel@tonic-gate 
1217c478bd9Sstevel@tonic-gate 
1227c478bd9Sstevel@tonic-gate /*
1237c478bd9Sstevel@tonic-gate  * display options for output routines (used by entry2text and friends)
1247c478bd9Sstevel@tonic-gate  */
1257c478bd9Sstevel@tonic-gate /*
1267c478bd9Sstevel@tonic-gate  * use calculated label width (based on length of longest label in
1277c478bd9Sstevel@tonic-gate  * template) instead of contant width
1287c478bd9Sstevel@tonic-gate  */
1297c478bd9Sstevel@tonic-gate #define LDAP_DISP_OPT_AUTOLABELWIDTH	0x00000001L
1307c478bd9Sstevel@tonic-gate #define LDAP_DISP_OPT_HTMLBODYONLY	0x00000002L
1317c478bd9Sstevel@tonic-gate 
1327c478bd9Sstevel@tonic-gate /*
133*1da57d55SToomas Soome  * perform search actions (applies to ldap_entry2text_search only)
1347c478bd9Sstevel@tonic-gate  */
1357c478bd9Sstevel@tonic-gate #define LDAP_DISP_OPT_DOSEARCHACTIONS	0x00000002L
1367c478bd9Sstevel@tonic-gate 
1377c478bd9Sstevel@tonic-gate /*
1387c478bd9Sstevel@tonic-gate  * include additional info. relevant to "non leaf" entries only
1397c478bd9Sstevel@tonic-gate  * used by ldap_entry2html and ldap_entry2html_search to include "Browse"
1407c478bd9Sstevel@tonic-gate  * and "Move Up" HREFs
1417c478bd9Sstevel@tonic-gate  */
1427c478bd9Sstevel@tonic-gate #define LDAP_DISP_OPT_NONLEAF		0x00000004L
1437c478bd9Sstevel@tonic-gate 
1447c478bd9Sstevel@tonic-gate #endif /* ifndef _SOLARIS_SDK */
1457c478bd9Sstevel@tonic-gate 
1467c478bd9Sstevel@tonic-gate /*
1477c478bd9Sstevel@tonic-gate  * display template item options (may not apply to all types)
1487c478bd9Sstevel@tonic-gate  * if this bit is set in ti_options, it applies.
1497c478bd9Sstevel@tonic-gate  */
1507c478bd9Sstevel@tonic-gate #define LDAP_DITEM_OPT_READONLY		0x00000001L
1517c478bd9Sstevel@tonic-gate #define LDAP_DITEM_OPT_SORTVALUES	0x00000002L
1527c478bd9Sstevel@tonic-gate #define LDAP_DITEM_OPT_SINGLEVALUED	0x00000004L
1537c478bd9Sstevel@tonic-gate #define LDAP_DITEM_OPT_HIDEIFEMPTY	0x00000008L
1547c478bd9Sstevel@tonic-gate #define LDAP_DITEM_OPT_VALUEREQUIRED	0x00000010L
1557c478bd9Sstevel@tonic-gate #define LDAP_DITEM_OPT_HIDEIFFALSE	0x00000020L	/* booleans only */
1567c478bd9Sstevel@tonic-gate 
1577c478bd9Sstevel@tonic-gate 
1587c478bd9Sstevel@tonic-gate #ifndef _SOLARIS_SDK
1597c478bd9Sstevel@tonic-gate 
1607c478bd9Sstevel@tonic-gate /*
1617c478bd9Sstevel@tonic-gate  * display template item structure
1627c478bd9Sstevel@tonic-gate  */
1637c478bd9Sstevel@tonic-gate struct ldap_tmplitem {
1647c478bd9Sstevel@tonic-gate     unsigned long		ti_syntaxid;
1657c478bd9Sstevel@tonic-gate     unsigned long		ti_options;
1667c478bd9Sstevel@tonic-gate     char  			*ti_attrname;
1677c478bd9Sstevel@tonic-gate     char			*ti_label;
1687c478bd9Sstevel@tonic-gate     char			**ti_args;
1697c478bd9Sstevel@tonic-gate     struct ldap_tmplitem	*ti_next_in_row;
1707c478bd9Sstevel@tonic-gate     struct ldap_tmplitem	*ti_next_in_col;
1717c478bd9Sstevel@tonic-gate     void			*ti_appdata;
1727c478bd9Sstevel@tonic-gate };
1737c478bd9Sstevel@tonic-gate 
1747c478bd9Sstevel@tonic-gate #define NULLTMPLITEM	((struct ldap_tmplitem *)0)
1757c478bd9Sstevel@tonic-gate 
1767c478bd9Sstevel@tonic-gate #define LDAP_SET_TMPLITEM_APPDATA( ti, datap )	\
1777c478bd9Sstevel@tonic-gate 	(ti)->ti_appdata = (void *)(datap)
1787c478bd9Sstevel@tonic-gate 
1797c478bd9Sstevel@tonic-gate #define LDAP_GET_TMPLITEM_APPDATA( ti, type )	\
1807c478bd9Sstevel@tonic-gate 	(type)((ti)->ti_appdata)
1817c478bd9Sstevel@tonic-gate 
1827c478bd9Sstevel@tonic-gate #define LDAP_IS_TMPLITEM_OPTION_SET( ti, option )	\
1837c478bd9Sstevel@tonic-gate 	(((ti)->ti_options & option ) != 0 )
1847c478bd9Sstevel@tonic-gate 
1857c478bd9Sstevel@tonic-gate 
1867c478bd9Sstevel@tonic-gate /*
1877c478bd9Sstevel@tonic-gate  * object class array structure
1887c478bd9Sstevel@tonic-gate  */
1897c478bd9Sstevel@tonic-gate struct ldap_oclist {
1907c478bd9Sstevel@tonic-gate     char		**oc_objclasses;
1917c478bd9Sstevel@tonic-gate     struct ldap_oclist	*oc_next;
1927c478bd9Sstevel@tonic-gate };
1937c478bd9Sstevel@tonic-gate 
1947c478bd9Sstevel@tonic-gate #define NULLOCLIST	((struct ldap_oclist *)0)
1957c478bd9Sstevel@tonic-gate 
1967c478bd9Sstevel@tonic-gate 
1977c478bd9Sstevel@tonic-gate /*
1987c478bd9Sstevel@tonic-gate  * add defaults list
1997c478bd9Sstevel@tonic-gate  */
2007c478bd9Sstevel@tonic-gate struct ldap_adddeflist {
2017c478bd9Sstevel@tonic-gate     int			ad_source;
2027c478bd9Sstevel@tonic-gate #define LDAP_ADSRC_CONSTANTVALUE	1
2037c478bd9Sstevel@tonic-gate #define LDAP_ADSRC_ADDERSDN		2
2047c478bd9Sstevel@tonic-gate     char		*ad_attrname;
2057c478bd9Sstevel@tonic-gate     char		*ad_value;
2067c478bd9Sstevel@tonic-gate     struct ldap_adddeflist	*ad_next;
2077c478bd9Sstevel@tonic-gate };
2087c478bd9Sstevel@tonic-gate 
2097c478bd9Sstevel@tonic-gate #define NULLADLIST	((struct ldap_adddeflist *)0)
2107c478bd9Sstevel@tonic-gate 
2117c478bd9Sstevel@tonic-gate 
2127c478bd9Sstevel@tonic-gate /*
2137c478bd9Sstevel@tonic-gate  * display template global options
2147c478bd9Sstevel@tonic-gate  * if this bit is set in dt_options, it applies.
2157c478bd9Sstevel@tonic-gate  */
2167c478bd9Sstevel@tonic-gate /*
2177c478bd9Sstevel@tonic-gate  * users should be allowed to try to add objects of these entries
2187c478bd9Sstevel@tonic-gate  */
2197c478bd9Sstevel@tonic-gate #define LDAP_DTMPL_OPT_ADDABLE		0x00000001L
2207c478bd9Sstevel@tonic-gate 
2217c478bd9Sstevel@tonic-gate /*
2227c478bd9Sstevel@tonic-gate  * users should be allowed to do "modify RDN" operation of these entries
2237c478bd9Sstevel@tonic-gate  */
2247c478bd9Sstevel@tonic-gate #define LDAP_DTMPL_OPT_ALLOWMODRDN	0x00000002L
2257c478bd9Sstevel@tonic-gate 
2267c478bd9Sstevel@tonic-gate /*
2277c478bd9Sstevel@tonic-gate  * this template is an alternate view, not a primary view
2287c478bd9Sstevel@tonic-gate  */
2297c478bd9Sstevel@tonic-gate #define LDAP_DTMPL_OPT_ALTVIEW		0x00000004L
2307c478bd9Sstevel@tonic-gate 
2317c478bd9Sstevel@tonic-gate 
2327c478bd9Sstevel@tonic-gate /*
2337c478bd9Sstevel@tonic-gate  * display template structure
2347c478bd9Sstevel@tonic-gate  */
2357c478bd9Sstevel@tonic-gate struct ldap_disptmpl {
2367c478bd9Sstevel@tonic-gate     char			*dt_name;
2377c478bd9Sstevel@tonic-gate     char			*dt_pluralname;
2387c478bd9Sstevel@tonic-gate     char			*dt_iconname;
2397c478bd9Sstevel@tonic-gate     unsigned long		dt_options;
2407c478bd9Sstevel@tonic-gate     char			*dt_authattrname;
2417c478bd9Sstevel@tonic-gate     char			*dt_defrdnattrname;
2427c478bd9Sstevel@tonic-gate     char			*dt_defaddlocation;
2437c478bd9Sstevel@tonic-gate     struct ldap_oclist		*dt_oclist;
2447c478bd9Sstevel@tonic-gate     struct ldap_adddeflist	*dt_adddeflist;
2457c478bd9Sstevel@tonic-gate     struct ldap_tmplitem	*dt_items;
2467c478bd9Sstevel@tonic-gate     void			*dt_appdata;
2477c478bd9Sstevel@tonic-gate     struct ldap_disptmpl	*dt_next;
2487c478bd9Sstevel@tonic-gate };
2497c478bd9Sstevel@tonic-gate 
2507c478bd9Sstevel@tonic-gate #define NULLDISPTMPL	((struct ldap_disptmpl *)0)
2517c478bd9Sstevel@tonic-gate 
2527c478bd9Sstevel@tonic-gate #define LDAP_SET_DISPTMPL_APPDATA( dt, datap )	\
2537c478bd9Sstevel@tonic-gate 	(dt)->dt_appdata = (void *)(datap)
2547c478bd9Sstevel@tonic-gate 
2557c478bd9Sstevel@tonic-gate #define LDAP_GET_DISPTMPL_APPDATA( dt, type )	\
2567c478bd9Sstevel@tonic-gate 	(type)((dt)->dt_appdata)
2577c478bd9Sstevel@tonic-gate 
2587c478bd9Sstevel@tonic-gate #define LDAP_IS_DISPTMPL_OPTION_SET( dt, option )	\
2597c478bd9Sstevel@tonic-gate 	(((dt)->dt_options & option ) != 0 )
2607c478bd9Sstevel@tonic-gate 
2617c478bd9Sstevel@tonic-gate #define LDAP_TMPL_ERR_VERSION	1
2627c478bd9Sstevel@tonic-gate #define LDAP_TMPL_ERR_MEM	2
2637c478bd9Sstevel@tonic-gate #define LDAP_TMPL_ERR_SYNTAX	3
2647c478bd9Sstevel@tonic-gate #define LDAP_TMPL_ERR_FILE	4
2657c478bd9Sstevel@tonic-gate 
2667c478bd9Sstevel@tonic-gate /*
2677c478bd9Sstevel@tonic-gate  * buffer size needed for entry2text and vals2text
2687c478bd9Sstevel@tonic-gate  */
2697c478bd9Sstevel@tonic-gate #define LDAP_DTMPL_BUFSIZ	8192
2707c478bd9Sstevel@tonic-gate 
2717c478bd9Sstevel@tonic-gate typedef int (*writeptype)( void *writeparm, char *p, int len );
2727c478bd9Sstevel@tonic-gate 
2737c478bd9Sstevel@tonic-gate LDAP_API(int)
2747c478bd9Sstevel@tonic-gate LDAP_CALL
2757c478bd9Sstevel@tonic-gate ldap_init_templates( char *file, struct ldap_disptmpl **tmpllistp );
2767c478bd9Sstevel@tonic-gate 
2777c478bd9Sstevel@tonic-gate LDAP_API(int)
2787c478bd9Sstevel@tonic-gate LDAP_CALL
2797c478bd9Sstevel@tonic-gate ldap_init_templates_buf( char *buf, long buflen,
2807c478bd9Sstevel@tonic-gate 	struct ldap_disptmpl **tmpllistp );
2817c478bd9Sstevel@tonic-gate 
2827c478bd9Sstevel@tonic-gate LDAP_API(void)
2837c478bd9Sstevel@tonic-gate LDAP_CALL
2847c478bd9Sstevel@tonic-gate ldap_free_templates( struct ldap_disptmpl *tmpllist );
2857c478bd9Sstevel@tonic-gate 
2867c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_disptmpl *)
2877c478bd9Sstevel@tonic-gate LDAP_CALL
2887c478bd9Sstevel@tonic-gate ldap_first_disptmpl( struct ldap_disptmpl *tmpllist );
2897c478bd9Sstevel@tonic-gate 
2907c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_disptmpl *)
2917c478bd9Sstevel@tonic-gate LDAP_CALL
2927c478bd9Sstevel@tonic-gate ldap_next_disptmpl( struct ldap_disptmpl *tmpllist,
2937c478bd9Sstevel@tonic-gate 	struct ldap_disptmpl *tmpl );
2947c478bd9Sstevel@tonic-gate 
2957c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_disptmpl *)
2967c478bd9Sstevel@tonic-gate LDAP_CALL
2977c478bd9Sstevel@tonic-gate ldap_name2template( char *name, struct ldap_disptmpl *tmpllist );
2987c478bd9Sstevel@tonic-gate 
2997c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_disptmpl *)
3007c478bd9Sstevel@tonic-gate LDAP_CALL
3017c478bd9Sstevel@tonic-gate ldap_oc2template( char **oclist, struct ldap_disptmpl *tmpllist );
3027c478bd9Sstevel@tonic-gate 
3037c478bd9Sstevel@tonic-gate LDAP_API(char **)
3047c478bd9Sstevel@tonic-gate LDAP_CALL
3057c478bd9Sstevel@tonic-gate ldap_tmplattrs( struct ldap_disptmpl *tmpl, char **includeattrs, int exclude,
3067c478bd9Sstevel@tonic-gate 	 unsigned long syntaxmask );
3077c478bd9Sstevel@tonic-gate 
3087c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_tmplitem *)
3097c478bd9Sstevel@tonic-gate LDAP_CALL
3107c478bd9Sstevel@tonic-gate ldap_first_tmplrow( struct ldap_disptmpl *tmpl );
3117c478bd9Sstevel@tonic-gate 
3127c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_tmplitem *)
3137c478bd9Sstevel@tonic-gate LDAP_CALL
3147c478bd9Sstevel@tonic-gate ldap_next_tmplrow( struct ldap_disptmpl *tmpl, struct ldap_tmplitem *row );
3157c478bd9Sstevel@tonic-gate 
3167c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_tmplitem *)
3177c478bd9Sstevel@tonic-gate LDAP_CALL
3187c478bd9Sstevel@tonic-gate ldap_first_tmplcol( struct ldap_disptmpl *tmpl, struct ldap_tmplitem *row );
3197c478bd9Sstevel@tonic-gate 
3207c478bd9Sstevel@tonic-gate LDAP_API(struct ldap_tmplitem *)
3217c478bd9Sstevel@tonic-gate LDAP_CALL
3227c478bd9Sstevel@tonic-gate ldap_next_tmplcol( struct ldap_disptmpl *tmpl, struct ldap_tmplitem *row,
3237c478bd9Sstevel@tonic-gate 	struct ldap_tmplitem *col );
3247c478bd9Sstevel@tonic-gate 
3257c478bd9Sstevel@tonic-gate LDAP_API(int)
3267c478bd9Sstevel@tonic-gate LDAP_CALL
3277c478bd9Sstevel@tonic-gate ldap_entry2text( LDAP *ld, char *buf, LDAPMessage *entry,
3287c478bd9Sstevel@tonic-gate 	struct ldap_disptmpl *tmpl, char **defattrs, char ***defvals,
3297c478bd9Sstevel@tonic-gate 	writeptype writeproc, void *writeparm, char *eol, int rdncount,
3307c478bd9Sstevel@tonic-gate 	unsigned long opts );
3317c478bd9Sstevel@tonic-gate 
3327c478bd9Sstevel@tonic-gate LDAP_API(int)
3337c478bd9Sstevel@tonic-gate LDAP_CALL
3347c478bd9Sstevel@tonic-gate ldap_vals2text( LDAP *ld, char *buf, char **vals, char *label, int labelwidth,
3357c478bd9Sstevel@tonic-gate 	unsigned long syntaxid, writeptype writeproc, void *writeparm,
3367c478bd9Sstevel@tonic-gate 	char *eol, int rdncount );
3377c478bd9Sstevel@tonic-gate 
3387c478bd9Sstevel@tonic-gate LDAP_API(int)
3397c478bd9Sstevel@tonic-gate LDAP_CALL
3407c478bd9Sstevel@tonic-gate ldap_entry2text_search( LDAP *ld, char *dn, char *base, LDAPMessage *entry,
3417c478bd9Sstevel@tonic-gate 	struct ldap_disptmpl *tmpllist, char **defattrs, char ***defvals,
3427c478bd9Sstevel@tonic-gate 	writeptype writeproc, void *writeparm, char *eol, int rdncount,
3437c478bd9Sstevel@tonic-gate 	unsigned long opts );
3447c478bd9Sstevel@tonic-gate 
3457c478bd9Sstevel@tonic-gate LDAP_API(int)
3467c478bd9Sstevel@tonic-gate LDAP_CALL
3477c478bd9Sstevel@tonic-gate ldap_entry2html( LDAP *ld, char *buf, LDAPMessage *entry,
3487c478bd9Sstevel@tonic-gate 	struct ldap_disptmpl *tmpl, char **defattrs, char ***defvals,
3497c478bd9Sstevel@tonic-gate 	writeptype writeproc, void *writeparm, char *eol, int rdncount,
3507c478bd9Sstevel@tonic-gate 	unsigned long opts, char *urlprefix, char *base );
3517c478bd9Sstevel@tonic-gate 
3527c478bd9Sstevel@tonic-gate LDAP_API(int)
3537c478bd9Sstevel@tonic-gate LDAP_CALL
3547c478bd9Sstevel@tonic-gate ldap_vals2html( LDAP *ld, char *buf, char **vals, char *label, int labelwidth,
3557c478bd9Sstevel@tonic-gate 	unsigned long syntaxid, writeptype writeproc, void *writeparm,
3567c478bd9Sstevel@tonic-gate 	char *eol, int rdncount, char *urlprefix );
3577c478bd9Sstevel@tonic-gate 
3587c478bd9Sstevel@tonic-gate LDAP_API(int)
3597c478bd9Sstevel@tonic-gate LDAP_CALL
3607c478bd9Sstevel@tonic-gate ldap_entry2html_search( LDAP *ld, char *dn, char *base, LDAPMessage *entry,
3617c478bd9Sstevel@tonic-gate 	struct ldap_disptmpl *tmpllist, char **defattrs, char ***defvals,
3627c478bd9Sstevel@tonic-gate 	writeptype writeproc, void *writeparm, char *eol, int rdncount,
3637c478bd9Sstevel@tonic-gate 	unsigned long opts, char *urlprefix );
3647c478bd9Sstevel@tonic-gate 
3657c478bd9Sstevel@tonic-gate #endif /* ifndef _SOLARIS_SDK */
3667c478bd9Sstevel@tonic-gate 
3677c478bd9Sstevel@tonic-gate LDAP_API(char *)
3687c478bd9Sstevel@tonic-gate LDAP_CALL
3697c478bd9Sstevel@tonic-gate ldap_tmplerr2string( int err );
3707c478bd9Sstevel@tonic-gate 
3717c478bd9Sstevel@tonic-gate #ifdef __cplusplus
3727c478bd9Sstevel@tonic-gate }
3737c478bd9Sstevel@tonic-gate #endif
3747c478bd9Sstevel@tonic-gate #endif /* _DISPTMPL_H */
375