root/ext/mbstring/libmbfl/mbfl/mbfl_convert.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * "streamable kanji code filter and converter"
   3  * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved.
   4  *
   5  * LICENSE NOTICES
   6  *
   7  * This file is part of "streamable kanji code filter and converter",
   8  * which is distributed under the terms of GNU Lesser General Public
   9  * License (version 2) as published by the Free Software Foundation.
  10  *
  11  * This software is distributed in the hope that it will be useful,
  12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14  * GNU Lesser General Public License for more details.
  15  *
  16  * You should have received a copy of the GNU Lesser General Public
  17  * License along with "streamable kanji code filter and converter";
  18  * if not, write to the Free Software Foundation, Inc., 59 Temple Place,
  19  * Suite 330, Boston, MA  02111-1307  USA
  20  *
  21  * The author of this file:
  22  *
  23  */
  24 /*
  25  * The source code included in this files was separated from mbfilter.h
  26  * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file
  27  * mbfilter.h is included in this package .
  28  *
  29  */
  30 
  31 #ifndef MBFL_CONVERT_H
  32 #define MBFL_CONVERT_H
  33 
  34 #include "mbfl_defs.h"
  35 #include "mbfl_encoding.h"
  36 #include "mbfl_memory_device.h"
  37 
  38 typedef struct _mbfl_convert_filter mbfl_convert_filter;
  39 
  40 struct _mbfl_convert_filter {
  41         void (*filter_ctor)(mbfl_convert_filter *filter);
  42         void (*filter_dtor)(mbfl_convert_filter *filter);
  43         void (*filter_copy)(mbfl_convert_filter *src, mbfl_convert_filter *dest);
  44         int (*filter_function)(int c, mbfl_convert_filter *filter);
  45         int (*filter_flush)(mbfl_convert_filter *filter);
  46         int (*output_function)(int c, void *data);
  47         int (*flush_function)(void *data);
  48         void *data;
  49         int status;
  50         int cache;
  51         const mbfl_encoding *from;
  52         const mbfl_encoding *to;
  53         int illegal_mode;
  54         int illegal_substchar;
  55         int num_illegalchar;
  56         void *opaque;
  57 };
  58 
  59 struct mbfl_convert_vtbl {
  60         enum mbfl_no_encoding from;
  61         enum mbfl_no_encoding to;
  62         void (*filter_ctor)(mbfl_convert_filter *filter);
  63         void (*filter_dtor)(mbfl_convert_filter *filter);
  64         int (*filter_function)(int c, mbfl_convert_filter *filter);
  65         int (*filter_flush)(mbfl_convert_filter *filter);
  66         void (*filter_copy)(mbfl_convert_filter *src, mbfl_convert_filter *dest);
  67 };
  68 
  69 MBFLAPI extern const struct mbfl_convert_vtbl *mbfl_convert_filter_list[];
  70 
  71 MBFLAPI extern mbfl_convert_filter *mbfl_convert_filter_new(
  72     enum mbfl_no_encoding from,
  73     enum mbfl_no_encoding to,
  74     int (*output_function)(int, void *),
  75     int (*flush_function)(void *),
  76     void *data );
  77 MBFLAPI extern mbfl_convert_filter *mbfl_convert_filter_new2(
  78         const struct mbfl_convert_vtbl *vtbl,
  79     int (*output_function)(int, void *),
  80     int (*flush_function)(void *),
  81     void *data );
  82 MBFLAPI extern void mbfl_convert_filter_delete(mbfl_convert_filter *filter);
  83 MBFLAPI extern int mbfl_convert_filter_feed(int c, mbfl_convert_filter *filter);
  84 MBFLAPI extern int mbfl_convert_filter_flush(mbfl_convert_filter *filter);
  85 MBFLAPI extern void mbfl_convert_filter_reset(mbfl_convert_filter *filter, enum mbfl_no_encoding from, enum mbfl_no_encoding to);
  86 MBFLAPI extern void mbfl_convert_filter_copy(mbfl_convert_filter *src, mbfl_convert_filter *dist);
  87 MBFLAPI extern int mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter);
  88 MBFLAPI extern const struct mbfl_convert_vtbl * mbfl_convert_filter_get_vtbl(enum mbfl_no_encoding from, enum mbfl_no_encoding to);
  89 
  90 MBFLAPI extern void mbfl_filt_conv_common_ctor(mbfl_convert_filter *filter);
  91 MBFLAPI extern int mbfl_filt_conv_common_flush(mbfl_convert_filter *filter);
  92 MBFLAPI extern void mbfl_filt_conv_common_dtor(mbfl_convert_filter *filter);
  93 
  94 MBFLAPI extern int mbfl_convert_filter_devcat(mbfl_convert_filter *filter, mbfl_memory_device *src);
  95 MBFLAPI extern int mbfl_convert_filter_strcat(mbfl_convert_filter *filter, const unsigned char *p);
  96 
  97 #endif /* MBFL_CONVERT_H */

/* [<][>][^][v][top][bottom][index][help] */