Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / icu / source / samples / ucnv / flagcb.h
1 /* Copyright (c) 2000 IBM, Inc. and Others. 
2    FLAGCB.H - interface to 'flagging' callback which 
3    simply marks the fact that the callback was called. 
4 */
5
6 #ifndef _FLAGCB
7 #define _FLAGCB
8
9 #include "unicode/utypes.h"
10 #include "unicode/ucnv.h"
11
12 /* The structure of a FromU Flag context. 
13    (conceivably there could be a ToU Flag Context) */
14
15 typedef struct
16 {
17   UConverterFromUCallback  subCallback;
18   const void               *subContext;
19   UBool                    flag;
20 } FromUFLAGContext;
21
22 /**
23  * open the context 
24  */
25
26 U_CAPI FromUFLAGContext* U_EXPORT2  flagCB_fromU_openContext();
27
28 /**
29  * the actual callback 
30  */
31 U_CAPI void U_EXPORT2 flagCB_fromU(
32                   const void *context,
33                   UConverterFromUnicodeArgs *fromUArgs,
34                   const UChar* codeUnits,
35                   int32_t length,
36                   UChar32 codePoint,
37                   UConverterCallbackReason reason,
38                                   UErrorCode * err);
39
40
41
42 typedef struct
43 {
44     UConverterFromUCallback  subCallback;
45     const void               *subContext;
46     uint32_t       magic;      /* 0xC0FFEE to identify that the object is OK */
47     uint32_t       serial;     /* minted from nextSerial */
48 } debugCBContext;
49
50 U_CAPI void debugCB_fromU(const void *context,
51                    UConverterFromUnicodeArgs *fromUArgs,
52                    const UChar* codeUnits,
53                    int32_t length,
54                    UChar32 codePoint,
55                    UConverterCallbackReason reason,
56                    UErrorCode * err);
57
58 U_CAPI debugCBContext *debugCB_openContext();
59
60 #endif