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
15typedef struct
16{
17  UConverterFromUCallback  subCallback;
18  const void               *subContext;
19  UBool                    flag;
20} FromUFLAGContext;
21
22/**
23 * open the context
24 */
25
26U_CAPI FromUFLAGContext* U_EXPORT2  flagCB_fromU_openContext();
27
28/**
29 * the actual callback
30 */
31U_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
42typedef 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
50U_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
58U_CAPI debugCBContext *debugCB_openContext();
59
60#endif
61