Annotation of embedaddon/php/ext/mbstring/libmbfl/mbfl/mbfl_convert.h, revision 1.1
1.1 ! misho 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 */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>