1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*******************************************************************************
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Copyright (C) 2005, International Business Machines
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Corporation and others.  All Rights Reserved.
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*******************************************************************************
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   file name:  swapimpl.h
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   encoding:   US-ASCII
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   tab size:   8 (not used)
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   indentation:4
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   created on: 2005jul29
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   created by: Markus W. Scherer
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Declarations for data file swapping functions not declared in internal
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   library headers.
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __SWAPIMPL_H__
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define __SWAPIMPL_H__
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h"
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "udataswp.h"
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/**
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Identifies and then transforms the ICU data piece in-place, or determines
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * its length. See UDataSwapFn.
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * This function handles single data pieces (but not .dat data packages)
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * and internally dispatches to per-type swap functions.
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Sets a U_UNSUPPORTED_ERROR if the data format is not recognized.
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru *
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see UDataSwapFn
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see udata_openSwapper
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @see udata_openSwapperForInputData
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal ICU 2.8
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_CAPI int32_t U_EXPORT2
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruudata_swap(const UDataSwapper *ds,
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru           const void *inData, int32_t length, void *outData,
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru           UErrorCode *pErrorCode);
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
44