Public header icu.h, private header icu_I18N.h .
[yaz-moved-to-github.git] / include / yaz / icu_I18N.h
index 4e80ad1..0b06dbd 100644 (file)
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/** \file
+    \brief Internal header for ICU utilities
+*/
+
 #ifndef ICU_I18NL_H
 #define ICU_I18NL_H
 
-#include <yaz/nmem.h>
+#include <yaz/yconfig.h>
 
-#include <libxml/parser.h>
 #include <libxml/tree.h>
 
 #include <unicode/utypes.h>   /* Basic ICU data types */
@@ -40,9 +43,7 @@
 #include <unicode/ubrk.h>
 #include <unicode/utrans.h>
 
-
-// #define ICU_CHAIN_SORTKEY
-#undef ICU_CHAIN_SORTKEY
+#include <yaz/icu.h>
 
 /* declared structs and functions */
 
@@ -50,9 +51,9 @@ int icu_check_status (UErrorCode status);
 
 struct icu_buf_utf16
 {
-  UChar * utf16;
-  int32_t utf16_len;
-  int32_t utf16_cap;
+    UChar * utf16;
+    int32_t utf16_len;
+    int32_t utf16_cap;
 };
 
 struct icu_buf_utf16 * icu_buf_utf16_create(size_t capacity);
@@ -106,7 +107,7 @@ struct icu_casemap
 };
 
 struct icu_casemap * icu_casemap_create(const char *locale, char action,
-                                            UErrorCode *status);
+                                        UErrorCode *status);
 
 void icu_casemap_destroy(struct icu_casemap * casemap);
 
@@ -187,10 +188,6 @@ int icu_normalizer_normalize(struct icu_normalizer * normalizer,
 enum icu_chain_step_type {
     ICU_chain_step_type_none,
     ICU_chain_step_type_display,   /* convert to utf8 display format */
-#ifdef ICU_CHAIN_SORTKEY
-    ICU_chain_step_type_index,     /* convert to utf8 index format  */
-    ICU_chain_step_type_sortkey,   /* convert to utf8 sortkey format */
-#endif
     ICU_chain_step_type_casemap,   /* apply utf16 charmap */
     ICU_chain_step_type_normalize, /* apply utf16 normalization */
     ICU_chain_step_type_tokenize   /* apply utf16 tokenization */
@@ -217,7 +214,7 @@ struct icu_chain_step
 
 struct icu_chain;
 
-struct icu_chain_step * icu_chain_step_create(struct icu_chain * chain,
+struct icu_chain_step * icu_chain_step_create(yaz_icu_chain_t chain,
                                               enum icu_chain_step_type type,
                                               const uint8_t * rule,
                                               struct icu_buf_utf16 * buf16,
@@ -232,6 +229,8 @@ struct icu_chain
     uint8_t locale[16];
     int sort;
 
+    const char * src8cstr;
+
     UCollator * coll;
     
     /* number of tokens returned so far */
@@ -249,42 +248,18 @@ struct icu_chain
     struct icu_chain_step * steps;
 };
 
-struct icu_chain * icu_chain_create(const uint8_t * locale,
-                                    int sort,
-                                    UErrorCode * status);
-
-void icu_chain_destroy(struct icu_chain * chain);
-
-struct icu_chain * icu_chain_xml_config(xmlNode *xml_node,
-                                        const uint8_t * locale,
-                                        int sort,
-                                        UErrorCode * status);
-
-struct icu_chain_step * icu_chain_insert_step(struct icu_chain * chain,
+struct icu_chain_step * icu_chain_insert_step(yaz_icu_chain_t chain,
                                               enum icu_chain_step_type type,
                                               const uint8_t * rule,
                                               UErrorCode *status);
 
-int icu_chain_step_next_token(struct icu_chain * chain,
+int icu_chain_step_next_token(yaz_icu_chain_t chain,
                               struct icu_chain_step * step,
                               UErrorCode *status);
 
-int icu_chain_assign_cstr(struct icu_chain * chain,
-                          const char * src8cstr, 
-                          UErrorCode *status);
-
-int icu_chain_next_token(struct icu_chain * chain,
-                         UErrorCode *status);
-
-int icu_chain_get_token_count(struct icu_chain * chain);
-
-const char * icu_chain_get_display(struct icu_chain * chain);
-
-const char * icu_chain_get_norm(struct icu_chain * chain);
-
-const char * icu_chain_get_sort(struct icu_chain * chain);
+int icu_chain_token_number(yaz_icu_chain_t chain);
 
-const UCollator * icu_chain_get_coll(struct icu_chain * chain);
+const UCollator * icu_chain_get_coll(yaz_icu_chain_t chain);
 
 #endif /* ICU_I18NL_H */