tekfileascii.h

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Kevin McBride                                   *
00003  *   kevin@planetsaphire.com                                               *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU Library General Public License as       *
00007  *   published by the Free Software Foundation; either version 2 of the    *
00008  *   License, or (at your option) any later version.                       *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU Library General Public     *
00016  *   License along with this program; if not, write to the                 *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 #ifndef TEKFILEASCII_H
00021 #define TEKFILEASCII_H
00022 
00023 #ifndef     TEKLTI_H_C35A2A4C_D475_11D9_90BC_000BDBC434D9
00024 #error      This file must be included from <teklti.h>
00025 #endif      /* TEKLTI_H_C35A2A4C_D475_11D9_90BC_000BDBC434D9 */
00026 
00027 
00028 TEKUUIDIMPORT(UTekFileASCII);
00029 
00030 
00038 class TekFileASCII : public TekFile
00039 {
00040 public:
00041 
00045 TekFileASCII();
00046 
00047 
00051 ~TekFileASCII();
00052 
00053 
00054 #ifndef     TEKFILE_INTERNAL
00055 #ifndef     TEKFILEASCII_INTERNAL
00056 virtual TEKERR ReadLine(uchar_t** Buffer, unsigned long ReadMax) = 0;
00057 virtual TEKERR WriteLine(const uchar_t* Buffer) = 0;
00058 
00059 virtual TEKERR Close() = 0;
00060 virtual TEKERR Flush() = 0;
00061 virtual TEKERR get_FILE(FILE** FileDescriptor) = 0;
00062 virtual TEKERR get_Filename(uchar_t** Name) = 0;
00063 virtual TEKERR get_Mode(TekFileMode* ModeID) = 0;
00064 virtual TEKERR get_Type(TekFileType* FileTypePointer) = 0;
00065 virtual TEKERR Open() = 0;
00066 virtual TEKERR Open64() = 0;
00067 virtual TEKERR put_FILE(FILE* FileDescriptor) = 0;
00068 virtual TEKERR put_Filename(uchar_t* Name) = 0;
00069 virtual TEKERR put_Mode(TekFileMode ModeID) = 0;
00070 virtual TEKERR Read64(void* Buffer, uint64_t BytesToRead, uint64_t* BytesRead) = 0;
00071 virtual TEKERR Read(void* Buffer, unsigned long BytesToRead, unsigned long* BytesRead) = 0;
00072 virtual TEKERR Seek64(TekFileSeek SeekWhere, int64_t NewLocation) = 0;
00073 virtual TEKERR Seek(TekFileSeek SeekWhere, signed long NewLocation) = 0;
00074 virtual TEKERR Write64(void* Buffer, uint64_t BytesToWrite, uint64_t* BytesWrote) = 0;
00075 virtual TEKERR Write(void* Buffer, unsigned long BytesToWrite, unsigned long* BytesWrote) = 0;
00076 virtual TEKERR get_Location(unsigned long * Location) = 0;
00077 virtual TEKERR get_Location64(uint64_t * Location) = 0;
00078 #endif      /* not TEKFILEASCII_INTERNAL */
00079 #endif      /* not TEKFILE_INTERNAL */
00080 
00081 public:
00082 
00083 TEKSTD_HEADER_VARS;
00084 };
00085 
00086 #endif      /* not TEKFILEASCII_H */
SourceForge.net Logo  Technical Library Template Interface Project Page