UncompressedFileType.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __UNCOMPRESSEDFILETYPE_H__
00019 #define __UNCOMPRESSEDFILETYPE_H__
00020
00021 #include <iostream>
00022 #include <stdio.h>
00023 #include "FileType.h"
00024
00025 class UncompressedFileType : public FileType
00026 {
00027 public:
00028 UncompressedFileType()
00029 {
00030 filePtr = NULL;
00031 }
00032
00033 virtual ~UncompressedFileType()
00034 {
00035 if (filePtr != NULL)
00036 {
00037 close();
00038 }
00039 }
00040
00041 UncompressedFileType(const char * filename, const char * mode);
00042
00043 bool operator == (void * rhs)
00044 {
00045
00046
00047 if (rhs != NULL)
00048 return false;
00049 return (filePtr == rhs);
00050 }
00051
00052 bool operator != (void * rhs)
00053 {
00054
00055
00056 if (rhs != NULL)
00057 return true;
00058 return (filePtr != rhs);
00059 }
00060
00061
00062 inline int close()
00063 {
00064 if((filePtr != stdout) && (filePtr != stdin))
00065 {
00066 int result = fclose(filePtr);
00067 filePtr = NULL;
00068 return result;
00069 }
00070 filePtr = NULL;
00071 return 0;
00072 }
00073
00074
00075
00076 inline void rewind()
00077 {
00078
00079 ::rewind(filePtr);
00080 }
00081
00082
00083 inline int eof()
00084 {
00085
00086 return feof(filePtr);
00087 }
00088
00089
00090 virtual inline bool isOpen()
00091 {
00092 if (filePtr != NULL)
00093 {
00094
00095 return(true);
00096 }
00097 return(false);
00098 }
00099
00100
00101 inline unsigned int write(const void * buffer, unsigned int size)
00102 {
00103 return fwrite(buffer, 1, size, filePtr);
00104 }
00105
00106
00107
00108
00109 inline int read(void * buffer, unsigned int size)
00110 {
00111 return fread(buffer, 1, size, filePtr);
00112 }
00113
00114
00115
00116
00117 virtual inline int64_t tell()
00118 {
00119 return ftell(filePtr);
00120 }
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130 virtual inline bool seek(int64_t offset, int origin)
00131 {
00132 int64_t returnVal = fseek(filePtr, offset, origin);
00133
00134 if (returnVal == 0)
00135 {
00136 return true;
00137 }
00138
00139 return false;
00140 }
00141
00142
00143 protected:
00144
00145 FILE* filePtr;
00146 };
00147
00148 #endif
00149
00150