Home | History | Annotate | Download | only in ucnv
      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
     61