summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-4.4/samples/ucnv/flagcb.h
blob: 4b1cba5a4514a914eb3bc98ffe9b1edffd4024d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/* Copyright (c) 2000 IBM, Inc. and Others. 
   FLAGCB.H - interface to 'flagging' callback which 
   simply marks the fact that the callback was called. 
*/

#ifndef _FLAGCB
#define _FLAGCB

#include "unicode/utypes.h"
#include "unicode/ucnv.h"

/* The structure of a FromU Flag context. 
   (conceivably there could be a ToU Flag Context) */

typedef struct
{
  UConverterFromUCallback  subCallback;
  const void               *subContext;
  UBool                    flag;
} FromUFLAGContext;

/**
 * open the context 
 */

U_CAPI FromUFLAGContext* U_EXPORT2  flagCB_fromU_openContext();

/**
 * the actual callback 
 */
U_CAPI void U_EXPORT2 flagCB_fromU(
                  const void *context,
                  UConverterFromUnicodeArgs *fromUArgs,
                  const UChar* codeUnits,
                  int32_t length,
                  UChar32 codePoint,
                  UConverterCallbackReason reason,
				  UErrorCode * err);



typedef struct
{
    UConverterFromUCallback  subCallback;
    const void               *subContext;
    uint32_t       magic;      /* 0xC0FFEE to identify that the object is OK */
    uint32_t       serial;     /* minted from nextSerial */
} debugCBContext;

U_CAPI void debugCB_fromU(const void *context,
                   UConverterFromUnicodeArgs *fromUArgs,
                   const UChar* codeUnits,
                   int32_t length,
                   UChar32 codePoint,
                   UConverterCallbackReason reason,
                   UErrorCode * err);

U_CAPI debugCBContext *debugCB_openContext();

#endif