Main Page | Class List | Directories | File List | Class Members | File Members

librcc.h

Go to the documentation of this file.
00001 #ifndef _LIBRCC_H
00002 #define _LIBRCC_H
00003 
00004 #include <stdlib.h>
00005 
00006 /*******************************************************************************
00007 ***************************** Global Defines ***********************************
00008 *******************************************************************************/
00009 
00010 #define RCC_MAX_CHARSETS 16
00011 #define RCC_MAX_ENGINES 5
00012 #define RCC_MAX_LANGUAGES 64
00013 #define RCC_MAX_ALIASES 64
00014 #define RCC_MAX_CLASSES 16
00015 
00016 /* ID's */
00024 typedef unsigned char rcc_language_id;
00028 typedef unsigned char rcc_alias_id;
00032 typedef unsigned char rcc_relation_id;
00039 typedef unsigned char rcc_charset_id;
00045 typedef unsigned char rcc_autocharset_id;
00052 typedef unsigned char rcc_engine_id;
00056 typedef int rcc_class_id;
00057 
00058 /* Opaque Pointer's */
00059 typedef struct rcc_context_t *rcc_context; 
00067 typedef struct rcc_engine_context_t *rcc_engine_context; 
00073 typedef struct rcc_language_config_t *rcc_language_config; 
00074 typedef const struct rcc_class_t *rcc_class_ptr; 
00075 
00076 #ifdef __cplusplus
00077 extern "C" {
00078 #endif
00079 
00084 int rccInit();
00085 
00089 void rccFree();
00090 
00091 /*******************************************************************************
00092 **************************** Initialization ************************************
00093 *******************************************************************************/
00097 typedef unsigned int rcc_init_flags;
00098 
00102 #define RCC_FLAG_NO_DEFAULT_CONFIGURATION 1 
00103 
00115 rcc_context rccCreateContext(const char *locale_variable, unsigned int max_languages, unsigned int max_classes, rcc_class_ptr defclasses, rcc_init_flags flags);
00128 int rccInitDefaultContext(const char *locale_variable, unsigned int max_languages, unsigned int max_classes, rcc_class_ptr defclasses, rcc_init_flags flags);
00129 
00135 void rccFreeContext(rcc_context ctx);
00136 
00137 
00141 typedef unsigned int rcc_db4_flags;
00142 
00151 int rccInitDb4(rcc_context ctx, const char *name, rcc_db4_flags flags);
00152 
00153 int rccLockConfiguration(rcc_context ctx, unsigned int lock_code);
00154 int rccUnlockConfiguration(rcc_context ctx, unsigned int lock_code);
00155 
00156 /*******************************************************************************
00157 ******************* Altering Language Configuaration ***************************
00158 *******************************************************************************/
00162 typedef const char *rcc_charset;
00166 typedef rcc_charset rcc_charset_list[RCC_MAX_CHARSETS+1];
00167 
00168 /* Engines */
00172 typedef void *rcc_engine_internal;
00181 typedef rcc_engine_internal (*rcc_engine_init_function)(rcc_engine_context ctx);
00189 typedef rcc_autocharset_id (*rcc_engine_function)(rcc_engine_context ctx, const char *buf, int len);
00193 typedef void (*rcc_engine_free_function)(rcc_engine_context ctx);
00194 
00200 struct rcc_engine_t {
00201     const char *title; 
00202     rcc_engine_init_function init_func; 
00203     rcc_engine_free_function free_func; 
00204     rcc_engine_function func; 
00205     rcc_charset_list charsets; 
00206 };
00207 typedef struct rcc_engine_t rcc_engine;
00208 typedef rcc_engine *rcc_engine_ptr;
00209 typedef rcc_engine_ptr rcc_engine_list[RCC_MAX_ENGINES+1];
00210 
00214 struct rcc_language_t {
00215     const char *sn; 
00216     rcc_charset_list charsets; 
00217     rcc_engine_list engines; 
00218 };
00219 typedef struct rcc_language_t rcc_language;
00220 typedef rcc_language *rcc_language_ptr;
00221 typedef rcc_language_ptr rcc_language_list[RCC_MAX_LANGUAGES+1];
00222 
00227 struct rcc_language_alias_t {
00228     const char *alias; 
00229     const char *lang; 
00230 };
00231 typedef struct rcc_language_alias_t rcc_language_alias;
00232 typedef rcc_language_alias *rcc_language_alias_ptr;
00233 typedef rcc_language_alias_ptr rcc_language_alias_list[RCC_MAX_ALIASES+1];
00234 
00245 struct rcc_language_relation_t {
00246     const char *lang;           
00247     const char *parent;         
00248 };
00249 typedef struct rcc_language_relation_t rcc_language_relation;
00250 
00257 rcc_language_id rccRegisterLanguage(rcc_context ctx, rcc_language *language);
00264 rcc_charset_id rccLanguageRegisterCharset(rcc_language *language, rcc_charset charset);
00271 rcc_engine_id rccLanguageRegisterEngine(rcc_language *language, rcc_engine *engine);
00278 rcc_alias_id rccRegisterLanguageAlias(rcc_context ctx, rcc_language_alias *alias);
00285 rcc_relation_id rccRegisterLanguageRelation(rcc_context ctx, rcc_language_relation *relation);
00286 
00287 /*******************************************************************************
00288 ************************ Altering Configuaration *******************************
00289 *******************************************************************************/
00293 typedef enum rcc_class_type_t {
00294     RCC_CLASS_INVALID = 0,      
00295     RCC_CLASS_STANDARD,         
00296     RCC_CLASS_KNOWN,            
00297     RCC_CLASS_FS,               
00298     RCC_CLASS_TRANSLATE_LOCALE, 
00299     RCC_CLASS_TRANSLATE_CURRENT,
00300     RCC_CLASS_TRANSLATE_FROM,   
00301 } rcc_class_type;
00302 
00306 struct rcc_class_default_charset_t {
00307     const char *lang;           
00308     const char *charset;        
00309 };
00310 typedef const struct rcc_class_default_charset_t rcc_class_default_charset;
00311 
00313 #define RCC_CLASS_FLAG_CONST                    0x01
00314 
00315 #define RCC_CLASS_FLAG_SKIP_SAVELOAD            0x02    
00316 
00349 struct rcc_class_t {
00350     const char *name;   
00351     const rcc_class_type class_type; 
00352     const char *defvalue; 
00353     rcc_class_default_charset *defcharset; 
00354     const char *fullname; 
00355     const unsigned long flags; 
00356 };
00357 typedef const struct rcc_class_t rcc_class;
00358 typedef rcc_class_ptr rcc_class_list[RCC_MAX_CLASSES+1];
00359 
00366 rcc_class_id rccRegisterClass(rcc_context ctx, rcc_class *cl);
00374 int rccRegisterAdditionalCharsets(rcc_context ctx, rcc_class_id class_id, rcc_charset *charsets);
00382 int rccRegisterDisabledCharsets(rcc_context ctx, rcc_class_id class_id, rcc_charset *charsets);
00390 int rccIsDisabledCharsetName(rcc_context ctx, rcc_class_id class_id, const char *charset);
00391 
00398 rcc_class_type rccGetClassType(rcc_context ctx, rcc_class_id class_id);
00405 const char *rccGetClassName(rcc_context ctx, rcc_class_id class_id);
00412 const char *rccGetClassFullName(rcc_context ctx, rcc_class_id class_id);
00413 
00414 /*******************************************************************************
00415 ************************ Altering Configuaration *******************************
00416 *******************************************************************************/
00417 typedef int rcc_option_value;
00418 
00422 #define RCC_OPTION_LEARNING_FLAG_USE 1
00423 
00426 #define RCC_OPTION_LEARNING_FLAG_LEARN 2
00427 
00428 typedef enum rcc_option_translate_t {
00429     RCC_OPTION_TRANSLATE_OFF = 0,       
00430     RCC_OPTION_TRANSLATE_TRANSLITERATE, 
00431     RCC_OPTION_TRANSLATE_TO_ENGLISH,    
00432     RCC_OPTION_TRANSLATE_SKIP_RELATED,  
00433     RCC_OPTION_TRANSLATE_SKIP_PARENT,   
00434     RCC_OPTION_TRANSLATE_FULL           
00435 } rcc_option_translate;
00436 
00440 typedef enum rcc_option_t {
00441     RCC_OPTION_LEARNING_MODE = 0,       
00442     RCC_OPTION_AUTODETECT_FS_TITLES,    
00443     RCC_OPTION_AUTODETECT_FS_NAMES,     
00444     RCC_OPTION_CONFIGURED_LANGUAGES_ONLY, 
00445     RCC_OPTION_AUTOENGINE_SET_CURRENT,  
00446     RCC_OPTION_AUTODETECT_LANGUAGE,     
00447     RCC_OPTION_TRANSLATE,               
00448     RCC_OPTION_TIMEOUT,                 
00449     RCC_OPTION_OFFLINE,                 
00450     RCC_MAX_OPTIONS,
00451     RCC_OPTION_ALL
00452 } rcc_option;
00453 
00457 typedef enum rcc_option_type_t {
00458     RCC_OPTION_TYPE_INVISIBLE = 0,      
00459     RCC_OPTION_TYPE_STANDARD,           
00460     RCC_OPTION_TYPE_MAX
00461 } rcc_option_type;
00462 
00466 typedef enum rcc_option_range_type_t {
00467     RCC_OPTION_RANGE_TYPE_BOOLEAN = 0,  
00468     RCC_OPTION_RANGE_TYPE_RANGE,        
00469     RCC_OPTION_RANGE_TYPE_FLAGS,        
00470     RCC_OPTION_RANGE_TYPE_MENU,         
00471     RCC_OPTION_RANGE_TYPE_MAX
00472 } rcc_option_range_type;
00473 
00477 typedef struct rcc_option_range_t {
00478     rcc_option_range_type type;         
00479     rcc_option_value min;               
00480     rcc_option_value max;               
00481     rcc_option_value step;              
00482 }rcc_option_range;
00483 
00484 /* lng.c */
00485 
00492 int rccGetLanguageNumber(rcc_context ctx);
00499 int rccGetClassNumber(rcc_context ctx);
00507 const char *rccGetLanguageName(rcc_context ctx, rcc_language_id language_id);
00515 rcc_language_id rccGetLanguageByName(rcc_context ctx, const char *name);
00529 rcc_language_id rccGetRealLanguage(rcc_context ctx, rcc_language_id language_id);
00538 const char *rccGetRealLanguageName(rcc_context ctx, rcc_language_id language_id);
00545 rcc_language_id rccGetSelectedLanguage(rcc_context ctx);
00553 const char *rccGetSelectedLanguageName(rcc_context ctx);
00561 rcc_language_id rccGetCurrentLanguage(rcc_context ctx);
00569 const char *rccGetCurrentLanguageName(rcc_context ctx);
00570 
00571 
00579 int rccSetLanguage(rcc_context ctx, rcc_language_id language_id);
00587 int rccSetLanguageByName(rcc_context ctx, const char *name);
00588 
00589 /* opt.c */
00597 rcc_option_value rccGetOption(rcc_context ctx, rcc_option option);
00605 int rccOptionIsDefault(rcc_context ctx, rcc_option option);
00613 int rccOptionSetDefault(rcc_context ctx, rcc_option option);
00622 int rccSetOption(rcc_context ctx, rcc_option option, rcc_option_value value);
00630 rcc_option_type rccOptionGetType(rcc_context ctx, rcc_option option);
00638 rcc_option_range *rccOptionGetRange(rcc_context ctx, rcc_option option);
00639 
00646 const char *rccGetOptionName(rcc_option option);
00647 
00655 const char *rccGetOptionValueName(rcc_option option, rcc_option_value value);
00662 rcc_option rccGetOptionByName(const char *name);
00670 rcc_option_value rccGetOptionValueByName(rcc_option option, const char *name);
00671 
00672 
00673 /* lngconfig.c */
00685 rcc_language_config rccCheckConfig(rcc_context ctx, rcc_language_id language_id);
00697 rcc_language_config rccGetConfig(rcc_context ctx, rcc_language_id language_id);
00716 rcc_language_config rccGetUsableConfig(rcc_context ctx, rcc_language_id language_id);
00725 rcc_language_config rccGetConfigByName(rcc_context ctx, const char *name);
00733 rcc_language_config rccGetCurrentConfig(rcc_context ctx);
00734 
00740 rcc_language_id rccConfigGetLanguage(rcc_language_config config);
00746 const char *rccConfigGetLanguageName(rcc_language_config config);
00747 
00754 int rccConfigGetCharsetNumber(rcc_language_config config);
00762 int rccConfigGetClassCharsetNumber(rcc_language_config config, rcc_class_id class_id);
00769 int rccConfigGetEngineNumber(rcc_language_config config);
00770 
00778 const char *rccConfigGetEngineName(rcc_language_config config, rcc_engine_id engine_id);
00786 const char *rccConfigGetCharsetName(rcc_language_config config, rcc_charset_id charset_id);
00795 const char *rccConfigGetClassCharsetName(rcc_language_config config, rcc_class_id class_id, rcc_charset_id charset_id);
00796 
00804 rcc_engine_id rccConfigGetEngineByName(rcc_language_config config, const char *name);
00812 rcc_charset_id rccConfigGetCharsetByName(rcc_language_config config, const char *name);
00821 rcc_charset_id rccConfigGetClassCharsetByName(rcc_language_config config, rcc_class_id class_id, const char *name);
00829 int rccConfigIsDisabledCharset(rcc_language_config config, rcc_class_id class_id, rcc_charset_id charset_id);
00839 rcc_engine_id rccConfigGetSelectedEngine(rcc_language_config config);
00847 const char *rccConfigGetSelectedEngineName(rcc_language_config config);
00858 rcc_engine_id rccConfigGetCurrentEngine(rcc_language_config config);
00866 const char *rccConfigGetCurrentEngineName(rcc_language_config config);
00867 
00877 rcc_charset_id rccConfigGetSelectedCharset(rcc_language_config config, rcc_class_id class_id);
00886 const char *rccConfigGetSelectedCharsetName(rcc_language_config config, rcc_class_id class_id);
00902 rcc_charset_id rccConfigGetCurrentCharset(rcc_language_config config, rcc_class_id class_id);
00911 const char *rccConfigGetCurrentCharsetName(rcc_language_config config, rcc_class_id class_id);
00912 
00920 int rccConfigSetEngine(rcc_language_config config, rcc_engine_id engine_id);
00929 int rccConfigSetCharset(rcc_language_config config, rcc_class_id class_id, rcc_charset_id charset_id);
00937 int rccConfigSetEngineByName(rcc_language_config config, const char *name);
00946 int rccConfigSetCharsetByName(rcc_language_config config, rcc_class_id class_id, const char *name);
00947 
00955 rcc_charset_id rccConfigGetLocaleCharset(rcc_language_config config, const char *locale_variable);
00964 rcc_charset_id rccConfigGetLocaleClassCharset(rcc_language_config config, rcc_class_id class_id, const char *locale_variable);
00965 
00966 /* curconfig.c */
00967 int rccGetCharsetNumber(rcc_context ctx);
00968 int rccGetClassCharsetNumber(rcc_context ctx, rcc_class_id class_id);
00969 int rccGetEngineNumber(rcc_context ctx);
00970 
00971 const char *rccGetEngineName(rcc_context ctx, rcc_engine_id engine_id);
00972 const char *rccGetCharsetName(rcc_context ctx, rcc_charset_id charset_id);
00973 const char *rccGetClassCharsetName(rcc_context ctx, rcc_class_id class_id, rcc_charset_id charset_id);
00974 
00975 rcc_engine_id rccGetEngineByName(rcc_context ctx, const char *name);
00976 rcc_charset_id rccGetCharsetByName(rcc_context ctx, const char *name);
00977 rcc_charset_id rccGetClassCharsetByName(rcc_context ctx, rcc_class_id class_id, const char *name);
00978 
00979 int rccIsDisabledCharset(rcc_context ctx, rcc_class_id class_id, rcc_charset_id charset_id);
00980 
00981 rcc_engine_id rccGetSelectedEngine(rcc_context ctx);
00982 const char *rccGetSelectedEngineName(rcc_context ctx);
00983 rcc_engine_id rccGetCurrentEngine(rcc_context ctx);
00984 const char *rccGetCurrentEngineName(rcc_context ctx);
00985 rcc_charset_id rccGetSelectedCharset(rcc_context ctx, rcc_class_id class_id);
00986 const char *rccGetSelectedCharsetName(rcc_context ctx, rcc_class_id class_id);
00987 rcc_charset_id rccGetCurrentCharset(rcc_context ctx, rcc_class_id class_id);
00988 const char *rccGetCurrentCharsetName(rcc_context ctx, rcc_class_id class_id);
00989 
00990 int rccSetEngine(rcc_context ctx, rcc_engine_id engine_id);
00991 int rccSetCharset(rcc_context ctx, rcc_class_id class_id, rcc_charset_id charset_id);
00992 int rccSetEngineByName(rcc_context ctx, const char *name);
00993 int rccSetCharsetByName(rcc_context ctx, rcc_class_id class_id, const char *name);
00994 
00995 rcc_charset_id rccGetLocaleCharset(rcc_context ctx, const char *locale_variable);
00996 rcc_charset_id rccGetLocaleClassCharset(rcc_context ctx, rcc_class_id class_id, const char *locale_variable);
00997 
00998 rcc_autocharset_id rccDetectCharset(rcc_context ctx, rcc_class_id class_id, const char *buf, size_t len);
00999 
01000 /*******************************************************************************
01001 ************************ Language Configuaration *******************************
01002 *******************************************************************************/
01003 
01004 /*******************************************************************************
01005 ************************ RCC_STRING Manipulations ******************************
01006 *******************************************************************************/
01007 /* string.c */
01013 typedef char *rcc_string;
01019 typedef const char *rcc_const_string;
01020 
01026 size_t rccStringCheck(const char *str);
01034 size_t rccStringSizedCheck(const char *str, size_t len);
01035 
01042 rcc_language_id rccStringGetLanguage(rcc_const_string str);
01049 const char *rccStringGetString(rcc_const_string str);
01056 char *rccStringExtractString(rcc_const_string str);
01057 
01065 const char *rccGetString(const char *str);
01074 const char *rccSizedGetString(const char *str, size_t len);
01075 
01076 int rccStringCmp(const char *str1, const char *str2);
01077 int rccStringNCmp(const char *str1, const char *str2, size_t n);
01078 int rccStringCaseCmp(const char *str1, const char *str2);
01079 int rccStringNCaseCmp(const char *str1, const char *str2, size_t n);
01080 
01081 /*******************************************************************************
01082 ******************************** Recoding **************************************
01083 *******************************************************************************/
01084 /* rcciconv.c */
01085 
01089 typedef struct rcc_iconv_t *rcc_iconv;
01090 
01100 rcc_iconv rccIConvOpen(const char *from, const char *to);
01105 void rccIConvClose(rcc_iconv icnv);
01115 char *rccIConv(rcc_iconv icnv, const char *buf, size_t len, size_t *rlen);
01116 
01117 /* rcctranslate.c */
01118 
01122 typedef struct rcc_translate_t *rcc_translate;
01123 
01133 rcc_translate rccTranslateOpen(const char *from, const char *to);
01139 void rccTranslateClose(rcc_translate translate);
01140 
01141 /*
01142  * Set translation timeout
01143  *
01144  * @param translate is translating context 
01145  * @param us is timeout in microseconds (0 - no timeout)
01146  * @return non-zero value is returned in the case of errror
01147  */
01148 int rccTranslateSetTimeout(rcc_translate translate, unsigned long us);
01149 
01150 /*
01151  * Allows translation engine to perform pending task after the main program is 
01152  * being terminated
01153  *
01154  * @param translate is translating context 
01155  * @return non-zero value is returned in the case of errror
01156  */
01157 int rccTranslateAllowOfflineMode(rcc_translate translate);
01158 
01166 char *rccTranslate(rcc_translate translate, const char *buf);
01167 
01168 
01169 /* rccspell.c */
01170 
01174 typedef struct rcc_speller_t *rcc_speller;
01175 
01179 typedef enum rcc_speller_result_t {
01180     RCC_SPELLER_INCORRECT = 0,          
01181     RCC_SPELLER_ALMOST_PARENT,          
01182     RCC_SPELLER_ALMOST_CORRECT,         
01183     RCC_SPELLER_PARENT,                 
01184     RCC_SPELLER_CORRECT                 
01185 } rcc_speller_result;
01186 
01187 int rccSpellerResultIsOwn(rcc_speller_result res);
01188 int rccSpellerResultIsPrecise(rcc_speller_result res);
01189 int rccSpellerResultIsCorrect(rcc_speller_result res);
01190 
01199 rcc_speller rccSpellerCreate(const char *lang);
01205 void rccSpellerFree(rcc_speller speller);
01213 int rccSpellerAddParent(rcc_speller speller, rcc_speller parent);
01221 rcc_speller_result rccSpeller(rcc_speller speller, const char *word);
01222 
01223 /* recode.c */
01224 
01233 rcc_language_id rccDetectLanguage(rcc_context ctx, rcc_class_id class_id, const char *buf, size_t len);
01234 
01243 rcc_autocharset_id rccConfigDetectCharset(rcc_language_config config, rcc_class_id class_id, const char *buf, size_t len);
01244 
01256 rcc_string rccSizedFrom(rcc_context ctx, rcc_class_id class_id, const char *buf, size_t len);
01268 char *rccSizedTo(rcc_context ctx, rcc_class_id class_id, rcc_const_string buf, size_t *rlen);
01283 char *rccSizedRecode(rcc_context ctx, rcc_class_id from, rcc_class_id to, const char *buf, size_t len, size_t *rlen);
01303 char *rccFS(rcc_context ctx, rcc_class_id from, rcc_class_id to, const char *fspath, const char *path, const char *filename);
01304 
01314 rcc_string rccSizedFromCharset(rcc_context ctx, const char *charset, const char *buf, size_t len);
01324 char *rccSizedToCharset(rcc_context ctx, const char *charset, rcc_const_string buf, size_t *rlen);
01339 char *rccSizedRecodeToCharset(rcc_context ctx, rcc_class_id class_id, const char *charset, rcc_const_string buf, size_t len, size_t *rlen);
01354 rcc_string rccSizedRecodeFromCharset(rcc_context ctx, rcc_class_id class_id, const char *charset, const char *buf, size_t len, size_t *rlen);
01366 char *rccSizedRecodeCharsets(rcc_context ctx, const char *from, const char *to, const char *buf, size_t len, size_t *rlen);
01367 
01368 
01380 rcc_string rccConfigSizedFrom(rcc_language_config config, rcc_class_id class_id, const char *buf, size_t len);
01392 char *rccConfigSizedTo(rcc_language_config config, rcc_class_id class_id, rcc_const_string buf, size_t *rlen);
01407 char *rccConfigSizedRecode(rcc_language_config config, rcc_class_id from, rcc_class_id to, const char *buf, size_t len, size_t *rlen);
01419 rcc_string rccConfigSizedRecodeFromCharset(rcc_language_config config, rcc_class_id class_id, const char *charset, const char *buf, size_t len, size_t *rlen);
01431 char *rccConfigSizedRecodeToCharset(rcc_language_config config, rcc_class_id class_id, const char *charset, rcc_const_string buf, size_t len, size_t *rlen);
01432 
01433 
01434 #define rccFrom(ctx, class_id, buf) rccSizedFrom(ctx, class_id, buf, 0)
01435 #define rccTo(ctx, class_id, buf) rccSizedTo(ctx, class_id, buf, NULL)
01436 #define rccRecode(ctx, from, to, buf) rccSizedRecode(ctx, from, to, buf, 0, NULL)
01437 
01438 #define rccFromCharset(ctx, charset, buf) rccSizedFromCharset(ctx, charset, buf, 0)
01439 #define rccToCharset(ctx, charset, buf) rccSizedToCharset(ctx, charset, buf, NULL)
01440 #define rccRecodeToCharset(ctx, class_id, charset, buf) rccSizedRecodeToCharset(ctx, class_id, charset, buf, 0, NULL)
01441 #define rccRecodeFromCharset(ctx, class_id, charset, buf) rccSizedRecodeFromCharset(ctx, class_id, charset, buf, 0, NULL)
01442 #define rccRecodeCharsets(ctx, from, to, buf) rccSizedRecodeCharsets(ctx, from, to, buf, 0, NULL)
01443 
01444 #define rccConfigFrom(ctx, class_id, buf) rccConfigSizedFrom(ctx, class_id, buf, 0)
01445 #define rccConfigTo(ctx, class_id, buf) rccConfigSizedTo(ctx, class_id, buf, NULL)
01446 #define rccConfigRecode(ctx, from, to, buf) rccConfigSizedRecode(ctx, from, to, buf, 0, NULL)
01447 #define rccConfigRecodeToCharset(ctx, class_id, charset, buf) rccConfigSizedRecodeToCharset(ctx, class_id, charset, buf, 0, NULL)
01448 #define rccConfigRecodeFromCharset(ctx, class_id, charset, buf) rccConfigSizedRecodeFromCharset(ctx, class_id, charset, buf, 0, NULL)
01449 
01450 /*******************************************************************************
01451 ******************************** Options ***************************************
01452 *******************************************************************************/
01453 
01454 /* xml.c */
01455 typedef void *rcc_config;
01456 rcc_config rccGetConfiguration();
01457 
01465 int rccSave(rcc_context ctx, const char *name);
01473 int rccLoad(rcc_context ctx, const char *name);
01474 
01475 /*******************************************************************************
01476 **************************** Engine Plugins ************************************
01477 *******************************************************************************/
01478 
01479 typedef rcc_engine *(*rcc_plugin_engine_info_function)(const char *lang);
01480 
01481 rcc_engine_internal rccEngineGetInternal(rcc_engine_context ctx);
01482 rcc_language *rccEngineGetLanguage(rcc_engine_context ctx);
01483 rcc_context rccEngineGetRccContext(rcc_engine_context ctx);
01484 
01485 /*******************************************************************************
01486 **************************** Configuration *************************************
01487 *******************************************************************************/
01488 
01492 #define RCC_CC_FLAG_HAVE_BERKLEY_DB                     0x01
01493 
01496 #define RCC_CC_FLAG_HAVE_DYNAMIC_ENGINES                0x02
01497 
01500 #define RCC_CC_FLAG_HAVE_ENCA                           0x04
01501 
01504 #define RCC_CC_FLAG_HAVE_RCD                            0x08
01505 
01508 #define RCC_CC_FLAG_HAVE_LIBTRANSLATE                   0x10
01509 
01513 struct rcc_compiled_configuration_t {
01514     unsigned long flags;        
01515 };
01516 typedef struct rcc_compiled_configuration_t rcc_compiled_configuration_s;
01517 typedef const struct rcc_compiled_configuration_t *rcc_compiled_configuration;
01518 
01522 rcc_compiled_configuration rccGetCompiledConfiguration();
01523 
01524 int rccLocaleGetClassByName(const char *locale);
01525 int rccLocaleGetLanguage(char *result, const char *lv, unsigned int n);
01526 int rccLocaleGetCharset(char *result, const char *lv, unsigned int n);
01527 
01528 
01532 #define RCC_OPTION_TRANSLATE_SKIP_PARRENT RCC_OPTION_TRANSLATE_SKIP_PARENT
01533 #define RCC_SPELLER_ALMOST_PARRENT RCC_SPELLER_ALMOST_PARENT
01534 #define RCC_SPELLER_PARRENT RCC_SPELLER_PARENT
01535 #define rccSpellerAddParrent rccSpellerAddParent
01536 
01537 #ifdef __cplusplus
01538 }
01539 #endif
01540 
01541 #endif /* _LIBRCC_H */

Generated on Mon Apr 16 02:15:07 2007 for LibRCC by  doxygen 1.4.2