|
YAZ 5.35.1
|
OID Database. More...
#include <stdlib.h>#include <string.h>#include <yaz/yaz-util.h>#include <yaz/odr.h>#include <yaz/oid_util.h>#include <yaz/oid_db.h>Go to the source code of this file.
Data Structures | |
| struct | yaz_oid_db |
Macros | |
| #define | get_entries(db) (db->xmalloced==0 ? yaz_oid_standard_entries : db->entries) |
Functions | |
| yaz_oid_db_t | yaz_oid_std (void) |
| returns standard OID database | |
| const Odr_oid * | yaz_string_to_oid (yaz_oid_db_t oid_db, oid_class oclass, const char *name) |
| maps named OID string to raw OID by database lookup | |
| Odr_oid * | yaz_string_to_oid_nmem (yaz_oid_db_t oid_list, oid_class oclass, const char *name, NMEM nmem) |
| creates NMEM malloc'ed OID from string | |
| Odr_oid * | yaz_string_to_oid_odr (yaz_oid_db_t oid_list, oid_class oclass, const char *name, ODR o) |
| creates ODR malloc'ed OID from string | |
| const char * | yaz_oid_to_string (yaz_oid_db_t oid_db, const Odr_oid *oid, oid_class *oclass) |
| maps raw OID to string | |
| const char * | yaz_oid_to_string_buf (const Odr_oid *oid, oid_class *oclass, char *buf) |
| maps any OID to string (named or dot-notation) | |
| char * | oid_name_to_dotstring (oid_class oclass, const char *name, char *oid_buf) |
| maps named from standard database to dot notation | |
| int | yaz_oid_is_iso2709 (const Odr_oid *oid) |
| checks if OID refers to MARC transfer syntax | |
| int | yaz_oid_add (yaz_oid_db_t oid_db, oid_class oclass, const char *name, const Odr_oid *new_oid) |
| adds new OID entry to database | |
| yaz_oid_db_t | yaz_oid_db_new (void) |
| creates empty OID database | |
| void | yaz_oid_db_destroy (yaz_oid_db_t oid_db) |
| destroys OID database | |
| void | yaz_oid_trav (yaz_oid_db_t oid_db, void(*func)(const Odr_oid *oid, oid_class oclass, const char *name, void *client_data), void *client_data) |
| traverses OIDs in a database | |
Variables | |
| struct yaz_oid_db | standard_db_l |
| yaz_oid_db_t | standard_db = &standard_db_l |
OID Database.
Definition in file oid_db.c.
| #define get_entries | ( | db | ) | (db->xmalloced==0 ? yaz_oid_standard_entries : db->entries) |
| char * oid_name_to_dotstring | ( | oid_class | oclass, |
| const char * | name, | ||
| char * | oid_buf | ||
| ) |
maps named from standard database to dot notation
| oclass | class of string (enum oid_class) |
| name | named OID |
| oid_buf | buffer for result (must be of size OID_STR_MAX) |
Definition at line 110 of file oid_db.c.
References name, yaz_oid_entry::oclass, yaz_oid_entry::oid, oid_oid_to_dotstring(), yaz_oid_std(), and yaz_string_to_oid().
| int yaz_oid_add | ( | yaz_oid_db_t | oid_db, |
| oid_class | oclass, | ||
| const char * | name, | ||
| const Odr_oid * | new_oid | ||
| ) |
adds new OID entry to database
| oid_db | database |
| oclass | OID class |
| name | name of OID |
| new_oid | OID value (raw OID) |
| 0 | OID added |
| -1 | OID name+oclass already exists |
Definition at line 128 of file oid_db.c.
References CLASS_NOP, yaz_oid_db::entries, name, yaz_oid_entry::name, yaz_oid_db::next, yaz_oid_entry::oclass, yaz_oid_entry::oid, oid_oidcpy(), oid_oidlen(), xmalloc, yaz_oid_db::xmalloced, xstrdup, and yaz_string_to_oid().
| void yaz_oid_db_destroy | ( | yaz_oid_db_t | oid_db | ) |
destroys OID database
| oid_db | database |
Definition at line 170 of file oid_db.c.
References yaz_oid_db::entries, yaz_oid_entry::name, yaz_oid_db::next, xfree, and yaz_oid_db::xmalloced.
| yaz_oid_db_t yaz_oid_db_new | ( | void | ) |
creates empty OID database
Definition at line 161 of file oid_db.c.
References yaz_oid_db::entries, yaz_oid_db::next, xmalloc, and yaz_oid_db::xmalloced.
| int yaz_oid_is_iso2709 | ( | const Odr_oid * | oid | ) |
checks if OID refers to MARC transfer syntax
| oid | raw OID |
| 1 | OID is a MARC type |
| 0 | OID is not a MARC type |
Definition at line 119 of file oid_db.c.
References yaz_oid_entry::oid, and oid_oidlen().
Referenced by return_record_wrbuf(), and ztest_fetch().
| yaz_oid_db_t yaz_oid_std | ( | void | ) |
returns standard OID database
| OID | database handle |
Definition at line 33 of file oid_db.c.
References standard_db.
Referenced by conf_retrieval(), cql_transform_parse_tok_line(), create_update_package(), oid_name_to_dotstring(), otherInfo_attach(), query_oid_getvalbyname(), yaz_oid_to_string_buf(), yaz_record_render(), yaz_xml2query_attribute_element(), yaz_xml2query_rpn(), ZOOM_record_error(), and zoom_yaz_str_to_z3950oid().
| const char * yaz_oid_to_string | ( | yaz_oid_db_t | oid_db, |
| const Odr_oid * | oid, | ||
| oid_class * | oclass | ||
| ) |
maps raw OID to string
| oid_db | OID database |
| oid | raw OID |
| oclass | holds OID class if found (output parameter) |
Definition at line 78 of file oid_db.c.
References get_entries, yaz_oid_entry::name, yaz_oid_db::next, yaz_oid_entry::oclass, yaz_oid_entry::oid, and oid_oidcmp().
Referenced by yaz_oid_to_string_buf(), yaz_record_render(), and ZOOM_record_error().
maps any OID to string (named or dot-notation)
| oid | raw OID |
| oclass | holds OID class if found (output parameter) |
| buf | string buffer for result (must be of size OID_STR_MAX) |
Definition at line 99 of file oid_db.c.
References CLASS_GENERAL, yaz_oid_entry::oclass, yaz_oid_entry::oid, oid_oid_to_dotstring(), yaz_oid_std(), and yaz_oid_to_string().
Referenced by display_grs1(), process_ESRequest(), response_default_diag(), yaz_attribute_element_to_wrbuf(), yaz_query2xml_attribute_element(), yaz_query2xml_rpn(), yaz_rpnquery_to_wrbuf(), zlog_attributes(), and ztest_esrequest().
| void yaz_oid_trav | ( | yaz_oid_db_t | oid_db, |
| void(*)(const Odr_oid *oid, oid_class oclass, const char *name, void *client_data) | func, | ||
| void * | client_data | ||
| ) |
traverses OIDs in a database
| oid_db | OID database |
| func | function to be called for each OID |
| client_data | data to be passed to func (custom defined) |
Definition at line 188 of file oid_db.c.
References get_entries, yaz_oid_entry::name, yaz_oid_db::next, yaz_oid_entry::oclass, and yaz_oid_entry::oid.
| const Odr_oid * yaz_string_to_oid | ( | yaz_oid_db_t | oid_db, |
| oid_class | oclass, | ||
| const char * | name | ||
| ) |
maps named OID string to raw OID by database lookup
| oid_db | OID database |
| oclass | class of string (enum oid_class) |
| name | OID name |
This function only maps known names in the database provided. Use yaz_string_to_oid_nmem or yaz_string_to_oid_odr to map any named OID in dot-notation (1.2.8).
Definition at line 40 of file oid_db.c.
References CLASS_GENERAL, get_entries, name, yaz_oid_entry::name, yaz_oid_db::next, yaz_oid_entry::oclass, yaz_oid_entry::oid, and yaz_matchstr().
Referenced by oid_name_to_dotstring(), yaz_oid_add(), and yaz_string_to_oid_nmem().
| Odr_oid * yaz_string_to_oid_nmem | ( | yaz_oid_db_t | oid_db, |
| oid_class | oclass, | ||
| const char * | name, | ||
| NMEM | nmem | ||
| ) |
creates NMEM malloc'ed OID from string
| oid_db | OID database |
| oclass | class of string (enum oid_class) |
| name | OID name |
| nmem | memory for returned OID |
Definition at line 63 of file oid_db.c.
References name, yaz_oid_entry::oclass, odr_getoidbystr_nmem(), odr_oiddup_nmem(), yaz_oid_entry::oid, and yaz_string_to_oid().
Referenced by cql_transform_parse_tok_line(), and yaz_string_to_oid_odr().
| Odr_oid * yaz_string_to_oid_odr | ( | yaz_oid_db_t | oid_db, |
| oid_class | oclass, | ||
| const char * | name, | ||
| ODR | odr | ||
| ) |
creates ODR malloc'ed OID from string
| oid_db | OID database |
| oclass | class of string (enum oid_class) |
| name | OID name |
| odr | memory for returned OID |
Definition at line 72 of file oid_db.c.
References name, yaz_oid_entry::oclass, odr_getmem, and yaz_string_to_oid_nmem().
Referenced by conf_retrieval(), create_update_package(), otherInfo_attach(), query_oid_getvalbyname(), yaz_xml2query_attribute_element(), yaz_xml2query_rpn(), and zoom_yaz_str_to_z3950oid().
| yaz_oid_db_t standard_db = &standard_db_l |
Definition at line 31 of file oid_db.c.
Referenced by yaz_oid_std().
| struct yaz_oid_db standard_db_l |