YAZ 5.35.1
record_conv.h
Go to the documentation of this file.
1/* This file is part of the YAZ toolkit.
2 * Copyright (C) Index Data.
3 * All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of Index Data nor the names of its contributors
13 * may be used to endorse or promote products derived from this
14 * software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
33#ifndef YAZ_RECORD_CONV_H
34#define YAZ_RECORD_CONV_H
35
36#include <stddef.h>
37#include <yaz/wrbuf.h>
38#include <yaz/yconfig.h>
39#include <yaz/xmltypes.h>
40#include <yaz/z-opac.h>
41
43
46
51
56
57#if YAZ_HAVE_XML2
62
64 void * (*construct)(const xmlNode *, const char *path,
65 WRBUF error_msg);
66
68 int (*convert)(void *info, WRBUF record, WRBUF error_msg);
69
71 void (*destroy)(void *info);
72};
73
97YAZ_EXPORT
98int yaz_record_conv_configure(yaz_record_conv_t p, const xmlNode *node);
99
108YAZ_EXPORT
109int yaz_record_conv_configure_t(yaz_record_conv_t p, const xmlNode *node,
110 struct yaz_record_conv_type *types);
111
112#endif
113
124YAZ_EXPORT
125int yaz_record_conv_record(yaz_record_conv_t p, const char *input_record_buf,
126 size_t input_record_len,
127 WRBUF output_record);
128
129
139YAZ_EXPORT
141 Z_OPACRecord *input_record,
142 WRBUF output_record);
143
148YAZ_EXPORT
150
151
156YAZ_EXPORT
157void yaz_record_conv_set_path(yaz_record_conv_t p, const char *path);
158
163YAZ_EXPORT
165
167
168#endif
169/*
170 * Local variables:
171 * c-basic-offset: 4
172 * c-file-style: "Stroustrup"
173 * indent-tabs-mode: nil
174 * End:
175 * vim: shiftwidth=4 tabstop=8 expandtab
176 */
177
yaz_record_conv_t yaz_record_conv_create(void)
void yaz_record_conv_destroy(yaz_record_conv_t p)
Definition record_conv.c:95
int yaz_record_conv_configure_t(yaz_record_conv_t p, const xmlNode *node, struct yaz_record_conv_type *types)
const char * yaz_record_conv_get_error(yaz_record_conv_t p)
const char * yaz_record_get_output_charset(yaz_record_conv_t p)
void yaz_record_conv_set_path(yaz_record_conv_t p, const char *path)
int yaz_record_conv_record(yaz_record_conv_t p, const char *input_record_buf, size_t input_record_len, WRBUF output_record)
int yaz_record_conv_opac_record(yaz_record_conv_t p, Z_OPACRecord *input_record, WRBUF output_record)
int yaz_record_conv_configure(yaz_record_conv_t p, const xmlNode *node)
struct yaz_record_conv_struct * yaz_record_conv_t
Definition record_conv.h:45
string buffer
Definition wrbuf.h:43
The internal structure for yaz_record_conv_t.
Definition record_conv.c:45
struct yaz_record_conv_type * next
pointer to next type ; NULL for last
Definition record_conv.h:61
int(* convert)(void *info, WRBUF record, WRBUF error_msg)
converts a record
Definition record_conv.h:68
void(* destroy)(void *info)
destroys our conversion handler
Definition record_conv.h:71
Header for WRBUF (growing buffer)
Define xmlNode and xmlDocPtr if Libxml2 is present.
Header with fundamental macros.
#define YAZ_BEGIN_CDECL
Definition yconfig.h:56
#define YAZ_END_CDECL
Definition yconfig.h:57
ASN.1 Module RecordSyntax-opac.