00001 /* 00002 ******************************************************************************* 00003 * Copyright (C) 1997-2000, 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 /******************************************************************** 00017 * General Notes 00018 ******************************************************************** 00019 * TODO 00020 * Add usage scenario 00021 * Add test code 00022 * Talk about pinning 00023 * Talk about "can truncate result if out of memory" 00024 */ 00025 00026 /******************************************************************** 00027 * Data Structures 00028 ********************************************************************/ 00029 00035 typedef void* UReplaceable; 00036 00043 typedef struct _UReplaceableCallbacks { 00044 00049 int32_t (*length)(const UReplaceable* rep); 00050 00057 UChar (*charAt)(const UReplaceable* rep, 00058 int32_t offset); 00059 00065 UChar32 (*char32At)(const UReplaceable* rep, 00066 int32_t offset); 00067 00081 void (*replace)(UReplaceable* rep, 00082 int32_t start, 00083 int32_t limit, 00084 const UChar* text, 00085 int32_t textLength); 00086 00100 void (*copy)(UReplaceable* rep, 00101 int32_t start, 00102 int32_t limit, 00103 int32_t dest); 00104 00105 } UReplaceableCallbacks; 00106 00107 #endif