00001 /* 00002 ****************************************************************************** 00003 * Copyright (C) 1997-2001, International Business Machines 00004 * Corporation and others. All Rights Reserved. 00005 ****************************************************************************** 00006 * Date Name Description 00007 * 06/23/00 aliu Creation. 00008 ****************************************************************************** 00009 */ 00010 00011 #ifndef __UREP_H 00012 #define __UREP_H 00013 00014 #include "unicode/utypes.h" 00015 00016 U_CDECL_BEGIN 00017 00018 /******************************************************************** 00019 * General Notes 00020 ******************************************************************** 00021 * TODO 00022 * Add usage scenario 00023 * Add test code 00024 * Talk about pinning 00025 * Talk about "can truncate result if out of memory" 00026 */ 00027 00028 /******************************************************************** 00029 * Data Structures 00030 ********************************************************************/ 00031 00038 typedef void* UReplaceable; 00039 00047 typedef struct _UReplaceableCallbacks { 00048 00054 int32_t (*length)(const UReplaceable* rep); 00055 00063 UChar (*charAt)(const UReplaceable* rep, 00064 int32_t offset); 00065 00072 UChar32 (*char32At)(const UReplaceable* rep, 00073 int32_t offset); 00074 00089 void (*replace)(UReplaceable* rep, 00090 int32_t start, 00091 int32_t limit, 00092 const UChar* text, 00093 int32_t textLength); 00094 00109 void (*copy)(UReplaceable* rep, 00110 int32_t start, 00111 int32_t limit, 00112 int32_t dest); 00113 00114 } UReplaceableCallbacks; 00115 00116 U_CDECL_END 00117 00118 #endif