/*---------------------------------------------------------------------------* * PANSIFileImpl.h * * * * Copyright 2007, 2008 Nuance Communciations, Inc. * * * * Licensed under the Apache License, Version 2.0 (the 'License'); * * you may not use this file except in compliance with the License. * * * * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an 'AS IS' BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * * * *---------------------------------------------------------------------------*/ #ifndef __PANSIFILEIMPL_H #define __PANSIFILEIMPL_H #include "PFile.h" #include "PFileImpl.h" #ifdef USE_THREAD #include "ptrd.h" #endif /** * Portable file, ANSI implementation. */ typedef struct PANSIFileImpl_t { /** * Superinterface. */ PFileImpl Interface; /** * Underlying file. */ FILE* value; } PANSIFileImpl; /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileCreateImpl(const LCHAR* filename, ESR_BOOL isLittleEndian, PFile** self); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileDestroyImpl(PFile* self); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileOpenImpl(PFile* self, const LCHAR* mode); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileCloseImpl(PFile* self); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileReadImpl(PFile* self, void* buffer, size_t size, size_t* count); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileWriteImpl(PFile* self, void* buffer, size_t size, size_t* count); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileFlushImpl(PFile* self); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileSeekImpl(PFile* self, long offset, int origin); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileGetPositionImpl(PFile* self, size_t* position); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileIsOpenImpl(PFile* self, ESR_BOOL* isOpen); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileIsEOFImpl(PFile* self, ESR_BOOL* isEof); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileIsErrorSetImpl(PFile* self, ESR_BOOL* isError); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileClearErrorImpl(PFile* self); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileVfprintfImpl(PFile* self, int* result, const LCHAR* format, va_list args); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileFgetcImpl(PFile* self, LINT* result); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileFgetsImpl(PFile* self, LCHAR* string, int n, LCHAR** result); /** * ANSI implementation. */ PORTABLE_API ESR_ReturnCode PANSIFileHideMemoryAllocation(PFile* self); #endif /* __PANSIFILEIMPL_H */