diff Wnn/jserver/de_header.h @ 0:bbc77ca4def5

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 13 Dec 2007 04:30:14 +0900
parents
children 790205f476c0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Wnn/jserver/de_header.h	Thu Dec 13 04:30:14 2007 +0900
@@ -0,0 +1,572 @@
+/*
+ *  $Id: de_header.h,v 1.20 2004/12/29 17:45:32 aonoto Exp $
+ */
+
+/*
+ * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+ * This file is part of FreeWnn.
+ * 
+ * Copyright Kyoto University Research Institute for Mathematical Sciences
+ *                 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+ * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright FreeWnn Project 1999, 2000, 2001, 2002, 2003, 2004
+ *
+ * Maintainer:  FreeWnn Project   <freewnn@tomo.gr.jp>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef JSERVER_DE_HEADER_H
+#define JSERVER_DE_HEADER_H 1
+
+#ifdef  GLOBAL_VALUE_DEFINE
+#define GLOBAL
+#define GLOBAL_VAL(v)  = (v)
+#else
+#define GLOBAL  extern
+#define GLOBAL_VAL(v)
+#endif /* GLOBAL_VALUE_DEFINE */
+
+#define DAEMON
+
+#if defined(CHINESE)
+#define WNN_DAEMON_NAME "cserver"
+#else
+#  if defined(KOREAN)
+#  define WNN_DAEMON_NAME "kserver"
+#  else
+#  define WNN_DAEMON_NAME "jserver"
+#  endif        /* KOREAN */
+#endif        /* CHINESE */
+
+#include "jslib.h"
+#include "commonhd.h"
+#include "jdata.h"
+#include "ddefine.h"
+#include "wnn_os.h"
+
+#define FILENAME 128
+#define SUCCESS 1
+#define FAILURE NULL
+
+#define CL_MAX 32
+#define ST_MAX 10
+#define MAX_ENV         256
+#define MAX_FILES       600
+#define MAX_DIC         1200
+
+/* constants for one client */
+/*
+#define USER_NAME_LEN 20
+#define HOST_NAME_LEN 20
+*/
+/* constants for one env. */
+#define FILE_NAME_L     100
+
+/* value of file.localf */
+#define LOCAL   1
+#define REMOTE  0
+
+/* SERVER OPTIONS */
+#define OPT_FORK	0x01
+#define OPT_VERBOSE	0x02
+
+
+/*
+        Client
+*/
+struct cli
+{
+  char user_name[WNN_ENVNAME_LEN];
+  char host_name[WNN_HOSTLEN];
+  int env[WNN_MAX_ENV_OF_A_CLIENT];
+};
+
+typedef struct cli CLIENT;
+
+/*
+        Environment for Conversion
+ */
+/*      jisho Table for an Environment          */
+
+/* 疑似文節の選択した候補 */
+
+struct GIJI
+{                               /* ADD */
+  int eisuu;                    /* 半角/全角英数字 */
+  int number;                   /* 半角/全角/漢数字 */
+  int kigou;                    /* 半角/全角(JIS/ASCII)記号 */
+};
+
+struct cnv_env
+{
+  char env_name[WNN_ENVNAME_LEN];
+  int ref_count;
+  int sticky;                   /* クライアントがいなくなってもその環境を残す */
+  int nbun;                     /* N(大)文節解析のN */
+  int nshobun;                  /* 大文節中の小文節の最大数 */
+  int hindoval;                 /* 幹語の頻度のパラメータ */
+  int lenval;                   /* 小文節長のパラメータ */
+  int jirival;                  /* 幹語長のパラメータ */
+  int flagval;                  /* 今使ったよbitのパラメータ */
+  int jishoval;                 /* 辞書のパラメータ */
+  int sbn_val;                  /* 小文節の評価値のパラメータ */
+  int dbn_len_val;              /* 大文節長のパラメータ */
+  int sbn_cnt_val;              /* 小文節数のパラメータ */
+
+  int suuji_val;                /* 疑似品詞 数字の頻度 */
+  int kana_val;                 /* 疑似品詞 カナの頻度 */
+  int eisuu_val;                /* 疑似品詞 英数の頻度 */
+  int kigou_val;                /* 疑似品詞 記号の頻度 */
+  int toji_kakko_val;           /* 疑似品詞 閉括弧の頻度 */
+  int fuzokogo_val;             /* 疑似品詞 付属語の頻度 */
+  int kaikakko_val;             /* 疑似品詞 開括弧の頻度 */
+
+  struct GIJI giji;             /* ADD */
+
+  int fzk_fid;
+
+  int jishomax;
+  int jisho[WNN_MAX_JISHO_OF_AN_ENV];
+  int file[WNN_MAX_FILE_OF_AN_ENV];
+};
+
+
+/*
+        structure of Dictionary
+ */
+
+struct wnn_dic
+{
+  int body;                     /* fid */
+  int hindo;                    /* fid */
+  int rw;
+  int hindo_rw;
+  int enablef;
+  int nice;
+  int rev;                      /* reverse dict */
+};
+
+/*
+        structure of File
+ */
+
+struct wnn_file
+{
+  char name[FILE_NAME_L];
+  struct wnn_file_uniq f_uniq;
+  struct wnn_file_uniq f_uniq_org;
+  int localf;
+  int file_type;
+  int ref_count;
+  void *area;
+  char passwd[WNN_PASSWD_LEN];
+};
+
+
+/*
+        external variables of daemon
+*/
+GLOBAL char SER_VERSION[] GLOBAL_VAL(_SERVER_VERSION);
+
+GLOBAL CLIENT *client;
+GLOBAL int max_client GLOBAL_VAL(CL_MAX);
+GLOBAL CLIENT *c_c GLOBAL_VAL(NULL);	/* this means current client */
+GLOBAL int cur_client;
+GLOBAL int clientp;
+
+/*      env,dic,file    */
+GLOBAL struct cnv_env *env[MAX_ENV];
+GLOBAL struct cnv_env *c_env;
+/* GLOBAL struct cnv_env *s_env[]; */
+GLOBAL int max_sticky_env GLOBAL_VAL(ST_MAX);
+
+GLOBAL struct wnn_file *files;
+GLOBAL struct wnn_dic dic_table[MAX_DIC];
+
+GLOBAL int wnn_errorno GLOBAL_VAL(0);
+
+/* option flags */
+GLOBAL int noisy GLOBAL_VAL(0);
+GLOBAL int option_flag GLOBAL_VAL(0);
+
+GLOBAL char jserver_dir[MAXPATHLEN];
+GLOBAL char jserverrcfile[MAXPATHLEN];
+GLOBAL char *hinsi_file_name GLOBAL_VAL(NULL);
+GLOBAL char lang_dir[MAXPATHLEN];
+
+/* atojis.c */
+extern w_char *get_giji_knj ();
+extern void giji_hindoup ();
+/* b_index.c */
+#ifdef CONVERT_by_STROKE
+extern int create_b_index (struct JT *jt);
+extern int b_index_add (struct JT *jt, w_char *yomi, int serial);
+extern void b_index_delete (struct JT *jt, int serial);
+#endif
+/* bnsetu_kai.c */
+extern int sbn_kai ();
+extern int j_max ();
+extern int getgiji ();
+extern int is_g_eisuu ();
+extern int getgiji_f ();
+extern int check_bar_katakana ();
+extern int kan_ckvt ();
+/* daibn_kai.c */
+extern int dbn_kai ();
+extern int get_status ();
+extern int zentan_able ();
+#ifndef NO_FZK
+extern w_char *rev_fzk ();
+#endif
+extern struct SYO_BNSETSU *que_reorder ();
+extern int sbjunjo ();
+extern int set_daibnsetu ();
+extern int sum_hyouka ();
+extern int ave_hyouka ();
+extern int cmp_hyouka ();
+/* de.c */
+extern void del_client (void);
+extern void daemon_fin (void);
+extern char *gets_cur (char*, size_t);
+extern w_char *getws_cur (w_char*, size_t);
+extern int get2_cur (void);
+extern int get4_cur (void);
+extern int getc_cur (void);
+extern void puts_cur (char*);
+extern void puts_n_cur (char*, int);
+extern void putws_cur (w_char*);
+extern void putnws_cur (w_char*, int);
+extern void put2_cur (int);
+extern void put4_cur (int);
+extern void putc_cur (int);
+extern void putc_purge (void);
+extern void js_who (void);
+extern void js_kill (void);
+/* dispatch.c */
+extern void do_command ();
+extern char *get_file_name (char*, size_t);
+extern char *expand_file_name (char*, size_t);
+extern void error_ret ();
+/* do_dic_env.c */
+extern void js_dic_add ();
+extern int add_dic_to_env ();
+extern int chk_dic ();
+extern int chk_hindo ();
+extern int get_new_dic ();
+extern int find_dic_in_env ();
+extern void js_dic_delete ();
+extern void del_all_dic_in_env ();
+extern void js_dic_list_all ();
+extern void js_dic_list ();
+extern void js_dic_use ();
+extern void js_fuzokugo_set ();
+extern void js_fuzokugo_get ();
+extern void used_dic_fuzoku_delete ();
+/* do_dic_no.c */
+extern void dic_init ();
+extern void js_dic_info ();
+extern void put_dic_info (int);
+extern void js_word_add ();
+extern void js_word_delete ();
+extern void js_word_search_by_env ();
+extern void js_word_search ();
+extern void js_word_comment_set ();
+extern void js_word_info ();
+extern void js_hinsi_name ();
+extern void js_hinsi_number ();
+extern void js_hinsi_list ();
+extern void js_hinsi_dicts ();
+extern void js_hinsi_table_set ();
+/* do_env.c */
+extern void js_open (void);
+extern void js_close (void);
+extern void env_init (void);
+extern void js_connect (void);
+extern void js_env_sticky (void);
+extern void js_env_un_sticky (void);
+extern void js_env_exist (void);
+extern void disconnect_all_env_of_client (void);
+extern void js_disconnect (void);
+extern void js_env_list (void);
+extern void js_param_set (void);
+extern void js_param_get (void);
+extern int envhandle (void);
+/* do_filecom.c */
+extern int file_init (void);
+extern void js_mkdir (void);
+extern void js_access (void);
+extern void js_file_list_all (void);
+extern void js_file_list (void);
+extern void js_file_info (void);
+extern void js_file_stat (void);
+extern int file_stat (char *);
+extern void js_file_discard (void);
+extern void del_all_file_in_env (int);
+extern void js_hindo_file_create (void);
+extern void js_hindo_file_create_client (void);
+extern void js_dic_file_create (void);
+extern void js_file_comment_set (void);
+extern void js_file_loaded_local (void);
+extern void js_file_loaded (void);
+extern int file_loaded (char *);
+extern void js_file_send (void);
+extern void js_file_read (void);
+extern void js_file_write (void);
+extern void js_file_receive (void);
+extern int get_new_fid (void);
+extern int find_fid_in_env (int, int);
+extern void js_file_remove (void);
+extern void js_file_password_set (void);
+/* do_henkan.c */
+extern void ret_dai ();
+extern void ret_sho ();
+#ifdef CONVERT_by_STROKE
+extern void ret_B ();
+extern void ret_daiB ();
+#endif
+#ifdef DEBUG
+extern void print_dlist ();
+extern void print_dlist1 ();
+#endif
+/* do_henkan1.c */
+extern void do_kanren ();
+extern void do_kantan_dai ();
+extern void do_kantan_sho ();
+extern void do_kanzen_dai ();
+extern void do_kanzen_sho ();
+extern void Get_knj ();
+extern void get_knj_com ();
+/* do_hinsi_s.c */
+extern void js_hindo_set ();
+/* error.c */
+#if 0				/* not used for now */
+extern void error_exit1 ();
+extern void error_exit ();
+#endif
+extern void log_err (const char *, ...);
+extern void log_debug (const char *, ...);
+extern RETSIGTYPE signal_hand ();
+extern RETSIGTYPE terminate_hand ();
+/* error1() - For compatiblity */
+#define error1 log_debug
+extern void out ();
+#ifdef DEBUG
+#ifdef  putwchar
+#undef  putwchar
+#endif
+extern void putwchar ();
+extern void wsputs ();
+#endif
+/* fzk.c */
+extern struct FT *fzk_read ();
+extern struct FT *fzk_ld ();
+extern void fzk_discard ();
+extern int fzk_kai ();
+extern int fzk_ckvt ();
+/* get_kaiarea.c */
+extern int get_kaiseki_area (size_t);
+extern void init_work_areas (void);
+/* hinsi_list.c */
+extern void make_hinsi_list ();
+extern int hinsi_table_set ();
+/* initjserv.c */
+extern int read_default (void);
+extern int read_default_files (void);
+/* jbiki.c */
+extern int jishobiki ();
+extern int binary1 ();
+extern int binary ();
+extern int Strcmpud ();
+extern int Substrud ();
+extern int Substrstud ();
+extern int Substrudud ();
+extern int word_search ();
+extern int rd_biki ();
+extern int rd_binary1 ();
+extern int rd_binary ();
+extern int rd_binary_same ();
+#ifdef CONVERT_by_STROKE
+/* jbiki_b.c */
+extern int is_bwnn_rev_dict ();
+extern int jishobiki_b ();
+#endif
+/* jikouho.c */
+extern int jkt_sbn_one ();
+#ifndef NO_KATA
+extern struct JKT_SBN *get_kata_kouho ();
+#endif
+extern struct JKT_SBN *get_hira_kouho ();
+extern int jkt_get_syo ();
+extern int get_zen_giji ();
+/* jikouho_d.c */
+extern int jkt_get_dai ();
+extern int get_jkt_status ();
+extern struct DSD_DBN *get_dsd_dbn ();
+extern struct DSD_DBN *get_dsd_dbn ();
+extern struct DSD_SBN *get_dsd_sbn ();
+extern int dbn_set ();
+extern int cnt_sone ();
+/* jishoop.c */
+extern int word_add ();
+extern int word_comment_set ();
+extern int word_delete ();
+extern void kanjiadd ();
+extern int dic_in_envp ();
+extern int hindo_file_size_justify ();
+/* jishosub.c */
+extern int inspect ();
+extern int get_yomi_from_serial ();
+extern int get_yomi_from_serial ();
+/* jmt0.c */
+extern void init_jmt (void);
+extern int jmt_set (int);
+/* mknode0.c */
+extern int init_bzd (void);
+extern int init_ichbnp ();
+extern void clr_node ();
+extern void freebzd ();
+extern void freeibsp ();
+extern struct BZD *getbzdsp ();
+extern struct ICHBNP *getibsp ();
+extern struct fzkkouho *getfzkoh_body ();
+extern struct fzkkouho *getfzkoh1_body ();
+extern int mknode ();
+/* mknode1.c */
+extern int init_sbn ();
+extern int get_area ();
+extern void free_area ();
+extern void freesbn ();
+extern void clr_sbn_node ();
+extern struct SYO_BNSETSU *getsbnsp ();
+/* mknode2.c */
+extern int init_jktdbn ();
+extern int init_jktsbn ();
+extern int init_jktsone ();
+extern void freejktdbn ();
+extern void freejktsbn ();
+extern struct JKT_DBN *getjktdbn ();
+extern struct JKT_SBN *getjktsbn ();
+extern struct JKT_SONE *getjktsone ();
+/* rd_jishoop.c */
+extern int rd_word_add1 (struct JT *, w_char *, int, w_char *, w_char *);
+extern int rd_word_delete1 (struct JT *, struct HJT *, int);
+extern int inspect_rd (int, int, w_char *, struct jdata *);
+/* readfile.c */
+extern int read_file (struct wnn_file *);
+extern int ud_realloc_hontai (struct JT *);
+extern int ud_realloc_kanji (struct JT *);
+extern int ud_realloc_serial (struct JT *);
+extern int ud_realloc_table (struct JT *);
+extern int rd_realloc_ri1 (struct JT *, int);
+extern int hindo_file_realloc (struct HJT *);
+#ifdef CONVERT_by_STROKE
+extern int rd_realloc_bind (struct JT *);
+#endif
+extern int must_write_file (struct wnn_file *, struct wnn_file_uniq *);
+extern void clear_dirty_bit (struct wnn_file *);
+extern int rcv_file (struct wnn_file *, int);
+extern int write_file (struct wnn_file *, char *);
+extern int discardfile (struct wnn_file *);
+extern int create_hindo_file1 (struct wnn_file *, char *, w_char *, char *);
+extern int match_dic_and_hindo_p (struct wnn_file *, struct wnn_file *);
+extern int file_comment_set (struct wnn_file *, w_char *);
+extern int file_password_set (struct wnn_file *, int, char *, char *);
+/* renbn_kai.c */
+#ifndef NO_FZK         
+extern int renbn_kai (int, int, int, w_char*, int, int, int, int, int, struct DSD_DBN **);
+#else /* NO_FZK */
+extern int renbn_kai (int, int, int, int, int, int, int, int, struct DSD_DBN **);
+#endif /* NO_FZK */    
+#ifndef NO_FZK
+extern int tan_dai (int, int, int, w_char *, int, int, int, struct DSD_DBN **);
+#else /* NO_FZK */
+extern int tan_dai (int, int, int, int, int, int, struct DSD_DBN **);
+#endif /* NO_FZK */             
+#ifndef NO_FZK   
+extern int tan_syo (int, int, int, w_char*, int, int, struct DSD_SBN **);
+#else /* NO_FZK */
+extern int tan_syo (int, int, int, int, int, struct DSD_SBN **);
+#endif /* NO_FZK */
+/* sisheng.c */
+extern int get_sisheng ();
+extern w_char *biki_sisheng ();
+extern unsigned int diff_sisheng ();
+/* snd_rcv.c */
+extern int fopen_read_cur ();
+extern int fopen_write_cur ();
+extern int fread_cur ();
+extern int xgetc_cur ();
+extern void xungetc_cur ();
+extern void fwrite_cur ();
+extern void xputc_cur ();
+extern void fclose_cur ();
+/* w_string.c */
+extern void Sreverse ();
+extern int Sstrcpy ();
+extern int Strcmp ();
+extern int Substr ();
+extern int Strncmp ();
+extern w_char *Strcpy ();
+extern w_char *Strncpy ();
+extern int Strlen ();
+/* gethinsi.c */
+extern int wnn_loadhinsi ();
+extern w_char *wnn_hinsi_name ();
+extern int wnn_hinsi_number ();
+extern int wnn_hinsi_list ();
+extern int wnn_has_hinsi ();
+extern int wnn_find_hinsi_by_name ();
+extern char *wnn_get_hinsi_name ();
+extern int wnn_get_fukugou_component_body ();
+extern int wnn_get_fukugou_component ();
+/* bdic.c */
+extern void check_backup ();
+extern void delete_tmp_file ();
+extern char *make_backup_file ();
+extern char *make_tmp_file ();
+extern void move_tmp_to_org ();
+extern int output_file_header ();
+extern int input_file_header ();
+extern int output_file_uniq (struct wnn_file_uniq* funiq, FILE* ofpter);
+extern int check_inode ();
+extern int change_file_uniq ();
+extern int f_uniq_cmp ();
+extern void Get_knj2 ();
+extern void get_kanji_str ();
+extern void Get_kanji_str_r ();
+extern unsigned char *kanjiaddr ();
+extern int create_null_dic ();
+extern int create_hindo_file ();
+extern int input_header_jt ();
+extern int output_header_jt ();
+extern int input_header_hjt ();
+extern int output_header_hjt ();
+/* dic_atojis.c */
+extern void Get_kanji ();
+extern void Get_knj1 ();
+/* revdic.c */
+extern int little_endian ();
+extern int revdic ();
+/* hindo.c */
+extern int asshuku ();
+extern int motoni2 ();
+/* pwd.c */
+extern int new_pwd ();
+extern int check_pwd ();
+
+#endif /* JSERVER_DE_HEADER_H */
+