12e5b6d6dSopenharmony_ci// © 2016 and later: Unicode, Inc. and others.
22e5b6d6dSopenharmony_ci// License & terms of use: http://www.unicode.org/copyright.html
32e5b6d6dSopenharmony_ci/*
42e5b6d6dSopenharmony_ci******************************************************************************
52e5b6d6dSopenharmony_ci*
62e5b6d6dSopenharmony_ci*   Copyright (C) 1997-2005, International Business Machines
72e5b6d6dSopenharmony_ci*   Corporation and others.  All Rights Reserved.
82e5b6d6dSopenharmony_ci*
92e5b6d6dSopenharmony_ci******************************************************************************
102e5b6d6dSopenharmony_ci*
112e5b6d6dSopenharmony_ci* File FILESTRM.H
122e5b6d6dSopenharmony_ci*
132e5b6d6dSopenharmony_ci* Contains FileStream interface
142e5b6d6dSopenharmony_ci*
152e5b6d6dSopenharmony_ci* @author       Glenn Marcy
162e5b6d6dSopenharmony_ci*
172e5b6d6dSopenharmony_ci* Modification History:
182e5b6d6dSopenharmony_ci*
192e5b6d6dSopenharmony_ci*   Date        Name        Description
202e5b6d6dSopenharmony_ci*   5/8/98      gm          Created.
212e5b6d6dSopenharmony_ci*  03/02/99     stephen     Reordered params in ungetc to match stdio
222e5b6d6dSopenharmony_ci*                           Added wopen
232e5b6d6dSopenharmony_ci*
242e5b6d6dSopenharmony_ci******************************************************************************
252e5b6d6dSopenharmony_ci*/
262e5b6d6dSopenharmony_ci
272e5b6d6dSopenharmony_ci#ifndef FILESTRM_H
282e5b6d6dSopenharmony_ci#define FILESTRM_H
292e5b6d6dSopenharmony_ci
302e5b6d6dSopenharmony_ci#include "unicode/utypes.h"
312e5b6d6dSopenharmony_ci
322e5b6d6dSopenharmony_citypedef struct _FileStream FileStream;
332e5b6d6dSopenharmony_ci
342e5b6d6dSopenharmony_ciU_CAPI FileStream* U_EXPORT2
352e5b6d6dSopenharmony_ciT_FileStream_open(const char* filename, const char* mode);
362e5b6d6dSopenharmony_ci
372e5b6d6dSopenharmony_ci/*
382e5b6d6dSopenharmony_ciU_CAPI FileStream* U_EXPORT2
392e5b6d6dSopenharmony_ciT_FileStream_wopen(const wchar_t* filename, const wchar_t* mode);
402e5b6d6dSopenharmony_ci*/
412e5b6d6dSopenharmony_ciU_CAPI void U_EXPORT2
422e5b6d6dSopenharmony_ciT_FileStream_close(FileStream* fileStream);
432e5b6d6dSopenharmony_ci
442e5b6d6dSopenharmony_ciU_CAPI UBool U_EXPORT2
452e5b6d6dSopenharmony_ciT_FileStream_file_exists(const char* filename);
462e5b6d6dSopenharmony_ci
472e5b6d6dSopenharmony_ci/*
482e5b6d6dSopenharmony_ciU_CAPI FileStream* U_EXPORT2
492e5b6d6dSopenharmony_ciT_FileStream_tmpfile(void);
502e5b6d6dSopenharmony_ci*/
512e5b6d6dSopenharmony_ci
522e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
532e5b6d6dSopenharmony_ciT_FileStream_read(FileStream* fileStream, void* addr, int32_t len);
542e5b6d6dSopenharmony_ci
552e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
562e5b6d6dSopenharmony_ciT_FileStream_write(FileStream* fileStream, const void* addr, int32_t len);
572e5b6d6dSopenharmony_ci
582e5b6d6dSopenharmony_ciU_CAPI void U_EXPORT2
592e5b6d6dSopenharmony_ciT_FileStream_rewind(FileStream* fileStream);
602e5b6d6dSopenharmony_ci
612e5b6d6dSopenharmony_ci/*Added by Bertrand A. D. */
622e5b6d6dSopenharmony_ciU_CAPI char * U_EXPORT2
632e5b6d6dSopenharmony_ciT_FileStream_readLine(FileStream* fileStream, char* buffer, int32_t length);
642e5b6d6dSopenharmony_ci
652e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
662e5b6d6dSopenharmony_ciT_FileStream_writeLine(FileStream* fileStream, const char* buffer);
672e5b6d6dSopenharmony_ci
682e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
692e5b6d6dSopenharmony_ciT_FileStream_putc(FileStream* fileStream, int32_t ch);
702e5b6d6dSopenharmony_ci
712e5b6d6dSopenharmony_ciU_CAPI int U_EXPORT2
722e5b6d6dSopenharmony_ciT_FileStream_getc(FileStream* fileStream);
732e5b6d6dSopenharmony_ci
742e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
752e5b6d6dSopenharmony_ciT_FileStream_ungetc(int32_t ch, FileStream *fileStream);
762e5b6d6dSopenharmony_ci
772e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
782e5b6d6dSopenharmony_ciT_FileStream_peek(FileStream* fileStream);
792e5b6d6dSopenharmony_ci
802e5b6d6dSopenharmony_ciU_CAPI int32_t U_EXPORT2
812e5b6d6dSopenharmony_ciT_FileStream_size(FileStream* fileStream);
822e5b6d6dSopenharmony_ci
832e5b6d6dSopenharmony_ciU_CAPI int U_EXPORT2
842e5b6d6dSopenharmony_ciT_FileStream_eof(FileStream* fileStream);
852e5b6d6dSopenharmony_ci
862e5b6d6dSopenharmony_ciU_CAPI int U_EXPORT2
872e5b6d6dSopenharmony_ciT_FileStream_error(FileStream* fileStream);
882e5b6d6dSopenharmony_ci
892e5b6d6dSopenharmony_ci/*
902e5b6d6dSopenharmony_ciU_CAPI void U_EXPORT2
912e5b6d6dSopenharmony_ciT_FileStream_setError(FileStream* fileStream);
922e5b6d6dSopenharmony_ci*/
932e5b6d6dSopenharmony_ci
942e5b6d6dSopenharmony_ciU_CAPI FileStream* U_EXPORT2
952e5b6d6dSopenharmony_ciT_FileStream_stdin(void);
962e5b6d6dSopenharmony_ci
972e5b6d6dSopenharmony_ciU_CAPI FileStream* U_EXPORT2
982e5b6d6dSopenharmony_ciT_FileStream_stdout(void);
992e5b6d6dSopenharmony_ci
1002e5b6d6dSopenharmony_ciU_CAPI FileStream* U_EXPORT2
1012e5b6d6dSopenharmony_ciT_FileStream_stderr(void);
1022e5b6d6dSopenharmony_ci
1032e5b6d6dSopenharmony_ciU_CAPI UBool U_EXPORT2
1042e5b6d6dSopenharmony_ciT_FileStream_remove(const char* fileName);
1052e5b6d6dSopenharmony_ci
1062e5b6d6dSopenharmony_ci#endif /* _FILESTRM*/
107