1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/* ====================================================================
* Copyright (c) 2003-2006, Martin Hauner
* http://subcommander.tigris.org
*
* Subcommander is licensed as described in the file doc/COPYING, which
* you should have received as part of this distribution.
* ====================================================================
*/
#ifndef _SC_UTIL_FILE_H
#define _SC_UTIL_FILE_H
// sc
namespace sc {
class Error;
}
// apr
#include <apr_errno.h> // apr_status_t
struct apr_pool_t;
struct apr_file_t;
struct apr_finfo_t;
struct apr_mmap_t;
typedef apr_off_t sc_size_t;
/**
* Wrapper class for apr_file_t
*/
class File
{
public:
File( const char* file, apr_pool_t* pool = 0 );
virtual ~File();
const sc::Error* open();
const sc::Error* close();
bool exists();
sc_size_t getSize() const;
const sc::Error* mmap();
const sc::Error* unmmap();
bool ismmaped() const;
void* mmaped() const;
//apr_file_t* getFile() const;
private:
apr_pool_t* _pool;
const char* _filename;
bool _open;
apr_file_t* _file;
apr_finfo_t* _finfo;
bool _mmaped;
apr_mmap_t* _mmap;
};
#endif // _SC_UTIL_FILE_H
|