00001 /* 00002 * Licensed to the Apache Software Foundation (ASF) under one or more 00003 * contributor license agreements. See the NOTICE file distributed with 00004 * this work for additional information regarding copyright ownership. 00005 * The ASF licenses this file to You under the Apache License, Version 2.0 00006 * (the "License"); you may not use this file except in compliance with 00007 * the License. You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 */ 00017 00018 /* 00019 * $Id: uniconv.h 568078 2007-08-21 11:43:25Z amassari $ 00020 */ 00021 00022 #ifndef UNICONV_HPP 00023 #define UNICONV_HPP 00024 00025 #include <xercesc/util/XercesDefs.hpp> 00026 00027 XERCES_CPP_NAMESPACE_BEGIN 00028 00029 // This is the type for the returned handles 00030 typedef void * uniconv_t; 00031 #define UNICONV_ERROR (uniconv_t)-1 00032 #define UNICONV_NOHANDLE (uniconv_t)0 00033 00034 // These are the character conversion services APIs. They are modeled 00035 // after the iconv() APIs. 00036 uniconv_t uniconv_open(const char *,const char *); 00037 int uniconv_close(uniconv_t); 00038 int uniconv(uniconv_t cd, char **inbuf, size_t *inbytesleft, 00039 char **outbuf, size_t *outbytesleft); 00040 00041 // These are the case conversion APIs. They use the same handle type as the 00042 // conversion APIs above. 00043 typedef unsigned short unichar_t; 00044 uniconv_t uniconv_toupper_open(); 00045 uniconv_t uniconv_tolower_open(); 00046 #define uniconv_toupper_close(_a) _uniconv_case_close(_a) 00047 #define uniconv_tolower_close(_a) _uniconv_case_close(_a) 00048 int _uniconv_case_close(uniconv_t handle_area); 00049 unichar_t uniconv_caseit(uniconv_t cd, unichar_t inchar); 00050 00051 XERCES_CPP_NAMESPACE_END 00052 00053 #endif