Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

DefaultFileSystem.cpp

Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include "Utility.h"
00003 
00004 
00005 namespace corona {
00006 
00007   class CFile : public DLLImplementation<File> {
00008   public:
00009     CFile(FILE* file) {
00010       m_file = file;
00011     }
00012 
00013     ~CFile() {
00014       fclose(m_file);
00015     }
00016 
00017     int COR_CALL read(void* buffer, int size) {
00018       return fread(buffer, 1, size, m_file);
00019     }
00020 
00021     int COR_CALL write(const void* buffer, int size) {
00022       return fwrite(buffer, 1, size, m_file);
00023     }
00024 
00025     bool COR_CALL seek(int position, SeekMode mode) {
00026       int m;
00027       switch (mode) {
00028         case BEGIN:   m = SEEK_SET; break;
00029         case CURRENT: m = SEEK_CUR; break;
00030         case END:     m = SEEK_END; break;
00031         default: return false;
00032       }
00033       return fseek(m_file, position, m) == 0;
00034     }
00035 
00036     int COR_CALL tell() {
00037       return ftell(m_file);
00038     }
00039 
00040   private:
00041     FILE* m_file;
00042   };
00043 
00044 
00045   COR_EXPORT(File*) CorOpenFile(const char* filename, bool writeable) {
00046     FILE* file = fopen(filename, (writeable ? "wb" : "rb"));
00047     return (file ? new CFile(file) : 0);
00048   }
00049 
00050 }

Generated on Thu Oct 2 12:59:30 2003 for corona by doxygen1.3-rc1