Added Summary. Unfinished work
[yaz-moved-to-github.git] / include / d1_map.h
1 /*
2  * Copyright (c) 1995,1996 Index Data.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and
5  * its documentation, in whole or in part, for any purpose, is hereby granted,
6  * provided that:
7  *
8  * 1. This copyright and permission notice appear in all copies of the
9  * software and its documentation. Notices of copyright or attribution
10  * which appear at the beginning of any file must remain unchanged.
11  *
12  * 2. The names of Index Data or the individual authors may not be used to
13  * endorse or promote products derived from this software without specific
14  * prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19  * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22  * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24  * OF THIS SOFTWARE.
25  *
26  */
27
28 #ifndef D1_MAP_H
29 #define D1_MAP_H
30
31 typedef struct data1_maptag
32 {
33     int new_field;
34     int type;
35     enum 
36     {
37         D1_MAPTAG_numeric,
38         D1_MAPTAG_string
39     } which;
40     union
41     {
42         int numeric;
43         char *string;
44     } value;
45     struct data1_maptag *next;
46 } data1_maptag;
47
48 typedef struct data1_mapunit
49 {
50     int no_data;
51     char *source_element_name;
52     data1_maptag *target_path;
53     struct data1_mapunit *next;
54 } data1_mapunit;
55
56 typedef struct data1_maptab
57 {
58     char *name;
59     oid_value target_absyn_ref;
60     char *target_absyn_name;
61     data1_mapunit *map;
62     struct data1_maptab *next;
63 } data1_maptab;
64
65 #endif