2212f0f85727d504bc45b51ad28c68121d1896bb
[yaz-moved-to-github.git] / include / yaz / charneg.h
1 /*
2  * $Id: charneg.h,v 1.3 2002-07-25 12:50:16 adam Exp $
3  */
4 #ifndef CHARNEG_H
5 #define CHARNEG_H
6
7 #include <yaz/proto.h>
8
9 YAZ_BEGIN_CDECL
10
11 /*
12  * Character set and language negotiation model - 3 (*)
13  *
14  * These a set helper functions for support (*). There are
15  * client and server parts. At that moment the (*) is based on
16  * Z_PrivateCharacterSet_externallySpecified method.
17  *
18  */  
19
20 /*
21  * Get (*) record from request
22  */
23 YAZ_EXPORT Z_CharSetandLanguageNegotiation *
24         yaz_get_charneg_record(Z_OtherInformation *p);
25
26 /*
27  * Client's part. 
28  */
29 YAZ_EXPORT Z_External *yaz_set_proposal_charneg(ODR odr,
30         const char **charsets, int num_charsets, const char **langs,
31                 int num_langs, int selected);
32
33 YAZ_EXPORT void yaz_get_response_charneg(NMEM mem,
34         Z_CharSetandLanguageNegotiation *p, char **charset, char **lang,
35                 int *selected);
36
37 /*
38  * Server's part
39  */
40  
41 YAZ_EXPORT Z_External *yaz_set_response_charneg(ODR odr,
42         const char *charset, const char *lang, int selected);
43
44
45 YAZ_EXPORT void yaz_get_proposal_charneg(NMEM mem,
46         Z_CharSetandLanguageNegotiation *p,
47                                          char ***charsets, int *num_charsets,
48                                          char ***langs, int *num_langs,
49                                          int *selected);
50
51
52 YAZ_END_CDECL
53
54 #endif