IDZEBRA  2.2.7
Data Structures | Macros | Functions | Variables
mod_grs_marc.c File Reference
#include <stdio.h>
#include <ctype.h>
#include <assert.h>
#include <yaz/yaz-util.h>
#include <yaz/snprintf.h>
#include <yaz/marcdisp.h>
#include <idzebra/recgrs.h>
#include "marcomp.h"
#include "inline.h"

Go to the source code of this file.

Data Structures

struct  marc_info
 

Macros

#define MARC_DEBUG   0
 
#define MARCOMP_DEBUG   0
 

Functions

static data1_nodegrs_read_iso2709 (struct grs_read_info *p, int marc_xml)
 
static char * get_data (data1_node *n, int *len)
 
static data1_nodelookup_subfield (data1_node *node, const char *name)
 
static inline_subfieldlookup_inline_subfield (inline_subfield *pisf, const char *name)
 
static inline_subfieldcat_inline_subfield (mc_subfield *psf, WRBUF buf, inline_subfield *pisf)
 
static void cat_inline_field (mc_field *pf, WRBUF buf, data1_node *subfield)
 
static data1_nodecat_subfield (mc_subfield *psf, WRBUF buf, data1_node *subfield)
 
static data1_nodecat_field (struct grs_read_info *p, mc_field *pf, WRBUF buf, data1_node *field)
 
static int is_empty (char *s)
 
static void parse_data1_tree (struct grs_read_info *p, const char *mc_stmnt, data1_node *root)
 
data1_nodegrs_read_marcxml (struct grs_read_info *p)
 
data1_nodegrs_read_marc (struct grs_read_info *p)
 
static void * init_marc (Res res, RecType rt)
 
static ZEBRA_RES config_marc (void *clientData, Res res, const char *args)
 
static void destroy_marc (void *clientData)
 
static int extract_marc (void *clientData, struct recExtractCtrl *ctrl)
 
static int retrieve_marc (void *clientData, struct recRetrieveCtrl *ctrl)
 
static int extract_marcxml (void *clientData, struct recExtractCtrl *ctrl)
 
static int retrieve_marcxml (void *clientData, struct recRetrieveCtrl *ctrl)
 

Variables

static struct recType marc_type
 
static struct recType marcxml_type
 
RecType idzebra_filter []
 

Macro Definition Documentation

◆ MARC_DEBUG

#define MARC_DEBUG   0

Definition at line 34 of file mod_grs_marc.c.

◆ MARCOMP_DEBUG

#define MARCOMP_DEBUG   0

Definition at line 35 of file mod_grs_marc.c.

Function Documentation

◆ cat_field()

static data1_node* cat_field ( struct grs_read_info p,
mc_field pf,
WRBUF  buf,
data1_node field 
)
static

◆ cat_inline_field()

static void cat_inline_field ( mc_field pf,
WRBUF  buf,
data1_node subfield 
)
static

◆ cat_inline_subfield()

static inline_subfield* cat_inline_subfield ( mc_subfield psf,
WRBUF  buf,
inline_subfield pisf 
)
static

◆ cat_subfield()

static data1_node* cat_subfield ( mc_subfield psf,
WRBUF  buf,
data1_node subfield 
)
static

◆ config_marc()

static ZEBRA_RES config_marc ( void *  clientData,
Res  res,
const char *  args 
)
static

Definition at line 841 of file mod_grs_marc.c.

References marc_info::type, and ZEBRA_OK.

◆ destroy_marc()

static void destroy_marc ( void *  clientData)
static

Definition at line 849 of file mod_grs_marc.c.

◆ extract_marc()

static int extract_marc ( void *  clientData,
struct recExtractCtrl ctrl 
)
static

Definition at line 856 of file mod_grs_marc.c.

References grs_read_marc(), and zebra_grs_extract().

◆ extract_marcxml()

static int extract_marcxml ( void *  clientData,
struct recExtractCtrl ctrl 
)
static

Definition at line 876 of file mod_grs_marc.c.

References grs_read_marcxml(), and zebra_grs_extract().

◆ get_data()

static char* get_data ( data1_node n,
int *  len 
)
static

◆ grs_read_iso2709()

static data1_node* grs_read_iso2709 ( struct grs_read_info p,
int  marc_xml 
)
static

◆ grs_read_marc()

data1_node* grs_read_marc ( struct grs_read_info p)

◆ grs_read_marcxml()

data1_node* grs_read_marcxml ( struct grs_read_info p)

◆ init_marc()

static void* init_marc ( Res  res,
RecType  rt 
)
static

Definition at line 834 of file mod_grs_marc.c.

References marc_info::type.

◆ is_empty()

static int is_empty ( char *  s)
static

Definition at line 704 of file mod_grs_marc.c.

Referenced by parse_data1_tree().

◆ lookup_inline_subfield()

static inline_subfield* lookup_inline_subfield ( inline_subfield pisf,
const char *  name 
)
static

Definition at line 386 of file mod_grs_marc.c.

References inline_subfield::name, and inline_subfield::next.

Referenced by cat_inline_subfield().

◆ lookup_subfield()

static data1_node* lookup_subfield ( data1_node node,
const char *  name 
)
static

Definition at line 374 of file mod_grs_marc.c.

References data1_node::next, data1_node::tag, and data1_node::u.

Referenced by cat_subfield().

◆ parse_data1_tree()

static void parse_data1_tree ( struct grs_read_info p,
const char *  mc_stmnt,
data1_node root 
)
static

◆ retrieve_marc()

static int retrieve_marc ( void *  clientData,
struct recRetrieveCtrl ctrl 
)
static

Definition at line 861 of file mod_grs_marc.c.

◆ retrieve_marcxml()

static int retrieve_marcxml ( void *  clientData,
struct recRetrieveCtrl ctrl 
)
static

Definition at line 881 of file mod_grs_marc.c.

Variable Documentation

◆ idzebra_filter

RecType idzebra_filter[]
Initial value:
= {
0,
}
static struct recType marcxml_type
Definition: mod_grs_marc.c:886
static struct recType marc_type
Definition: mod_grs_marc.c:866

Definition at line 900 of file mod_grs_marc.c.

◆ marc_type

struct recType marc_type
static
Initial value:
= {
0,
"grs.marc",
}
static ZEBRA_RES config_marc(void *clientData, Res res, const char *args)
Definition: mod_grs_marc.c:841
static int retrieve_marc(void *clientData, struct recRetrieveCtrl *ctrl)
Definition: mod_grs_marc.c:861
static int extract_marc(void *clientData, struct recExtractCtrl *ctrl)
Definition: mod_grs_marc.c:856
static void * init_marc(Res res, RecType rt)
Definition: mod_grs_marc.c:834
static void destroy_marc(void *clientData)
Definition: mod_grs_marc.c:849

Definition at line 861 of file mod_grs_marc.c.

◆ marcxml_type

struct recType marcxml_type
static
Initial value:
= {
0,
"grs.marcxml",
}
static int extract_marcxml(void *clientData, struct recExtractCtrl *ctrl)
Definition: mod_grs_marc.c:876
static int retrieve_marcxml(void *clientData, struct recRetrieveCtrl *ctrl)
Definition: mod_grs_marc.c:881

Definition at line 881 of file mod_grs_marc.c.