Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_INPUTOUTPUT_FILE_HDD_H__
00009 #define __SP_INPUTOUTPUT_FILE_HDD_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013 #include "Base/spInputOutputFile.hpp"
00014
00015 #include <fstream>
00016
00017
00018 namespace sp
00019 {
00020 namespace io
00021 {
00022
00023
00024 class SP_EXPORT FilePhysical : public File
00025 {
00026
00027 public:
00028
00029 FilePhysical();
00030 ~FilePhysical();
00031
00032
00033
00034 bool open(const io::stringc &Filename, const EFilePermission Permission = FILE_READWRITE);
00035 void close();
00036
00037 s32 writeBuffer(const void* Buffer, u32 Size, u32 Count = 1);
00038 s32 readBuffer(void* Buffer, u32 Size, u32 Count = 1) const;
00039
00040 void setSeek(s32 Pos, const EFileSeekTypes PosType = FILEPOS_BEGIN);
00041 s32 getSeek() const;
00042
00043 bool isEOF() const;
00044
00045 u32 getSize() const;
00046 void* getHandle();
00047
00048 bool opened() const;
00049
00050
00051
00052 static bool findFile(const io::stringc &Filename);
00053
00054 private:
00055
00056
00057
00058 static io::stringc getAppRootPath();
00059
00060
00061
00062 mutable std::fstream Stream_;
00063
00064 };
00065
00066
00067 }
00068
00069 }
00070
00071
00072 #endif
00073
00074
00075
00076