cookie: introduce yaz_cookies_reset
[yaz-moved-to-github.git] / include / yaz / marcdisp.h
index 752de41..d7bbaa0 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data.
+ * Copyright (C) Index Data.
  * All rights reserved.
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  * All rights reserved.
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -76,6 +76,8 @@ YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode);
 #define YAZ_MARC_CHECK     6
 /** \brief Output format: Turbo MARC Index Data format (XML based) */
 #define YAZ_MARC_TURBOMARC 7
 #define YAZ_MARC_CHECK     6
 /** \brief Output format: Turbo MARC Index Data format (XML based) */
 #define YAZ_MARC_TURBOMARC 7
+/** \brief Output format: JSON */
+#define YAZ_MARC_JSON      8
 
 /** \brief set iconv handle for character set conversion */
 YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
 
 /** \brief set iconv handle for character set conversion */
 YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
@@ -260,6 +262,15 @@ int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr,
                        const char *type);
 #endif
 
                        const char *type);
 #endif
 
+/** \brief writes MARC record in JSON represenation
+    \param mt handle
+    \param w WRBUF for output
+    \retval 0 Creation successful
+    \retval -1 ERROR
+*/
+YAZ_EXPORT
+int yaz_marc_write_json(yaz_marc_t mt, WRBUF w);
+
 /** \brief sets leader spec (for modifying bytes in 24 byte leader)
     \param mt handle
     \param leader_spec
 /** \brief sets leader spec (for modifying bytes in 24 byte leader)
     \param mt handle
     \param leader_spec
@@ -440,19 +451,20 @@ YAZ_EXPORT void yaz_opac_decode_wrbuf2(yaz_marc_t mt, Z_OPACRecord *r,
 
 #if YAZ_HAVE_XML2
 /** \brief Converts XML to OPAC
 
 #if YAZ_HAVE_XML2
 /** \brief Converts XML to OPAC
-    \param mt marc handle 
+    \param mt marc handle
     \param buf_in XML buffer
     \param size_in size of XML buffer
     \param dst Z39.50 OPAC result - allocated by NMEM on marc handle
     \param cd iconv handle for the OPAC content (not ISO2709 part)
     \param nmem memory for OPACRecord (if NULL, mt NMEM memory is used)
     \param buf_in XML buffer
     \param size_in size of XML buffer
     \param dst Z39.50 OPAC result - allocated by NMEM on marc handle
     \param cd iconv handle for the OPAC content (not ISO2709 part)
     \param nmem memory for OPACRecord (if NULL, mt NMEM memory is used)
+    \param syntax OID for embedded MARC (if NULL, USMARC is used)
     \retval 1 conversion OK
     \retval 0 conversion NOT OK
     \*/
 YAZ_EXPORT int yaz_xml_to_opac(yaz_marc_t mt,
                                const char *buf_in, size_t size_in,
                                Z_OPACRecord **dst, yaz_iconv_t cd,
     \retval 1 conversion OK
     \retval 0 conversion NOT OK
     \*/
 YAZ_EXPORT int yaz_xml_to_opac(yaz_marc_t mt,
                                const char *buf_in, size_t size_in,
                                Z_OPACRecord **dst, yaz_iconv_t cd,
-                               NMEM nmem);
+                               NMEM nmem, const Odr_oid *syntax);
 #endif
 
 /** \brief flushes records
 #endif
 
 /** \brief flushes records
@@ -468,6 +480,10 @@ YAZ_EXPORT int yaz_marc_write_trailer(yaz_marc_t mt, WRBUF wr);
 */
 YAZ_EXPORT void yaz_marc_enable_collection(yaz_marc_t mt);
 
 */
 YAZ_EXPORT void yaz_marc_enable_collection(yaz_marc_t mt);
 
+struct json_node;
+
+YAZ_EXPORT int yaz_marc_read_json_node(yaz_marc_t mt, struct json_node *n);
+
 YAZ_END_CDECL
 
 #endif
 YAZ_END_CDECL
 
 #endif