Move io functions into the util namespace
This commit is contained in:
parent
6b0db35db7
commit
f02501eb5e
3
io.cpp
3
io.cpp
@ -11,10 +11,11 @@
|
|||||||
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
using namespace util;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
uint8_t *
|
uint8_t *
|
||||||
slurp (const boost::filesystem::path& path) {
|
util::slurp (const boost::filesystem::path& path) {
|
||||||
fd_ref fd(open (path.string ().c_str (), O_RDONLY)); // | O_CLOEXEC));
|
fd_ref fd(open (path.string ().c_str (), O_RDONLY)); // | O_CLOEXEC));
|
||||||
|
|
||||||
// Calculate the total file size
|
// Calculate the total file size
|
||||||
|
78
io.hpp
78
io.hpp
@ -25,57 +25,59 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem/path.hpp>
|
||||||
|
|
||||||
/// Specifies bitwise combinations of IO access rights.
|
|
||||||
enum access_t {
|
|
||||||
ACCESS_READ = 1 << 0,
|
|
||||||
ACCESS_WRITE = 1 << 1,
|
|
||||||
ACCESS_READWRITE = ACCESS_READ | ACCESS_WRITE
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/// Reads an entire file into memory. Caller frees the result. Guarantees a
|
namespace util {
|
||||||
/// null trailing byte.
|
/// Specifies bitwise combinations of IO access rights.
|
||||||
uint8_t *
|
enum access_t {
|
||||||
slurp (const boost::filesystem::path&) mustuse;
|
ACCESS_READ = 1 << 0,
|
||||||
|
ACCESS_WRITE = 1 << 1,
|
||||||
|
ACCESS_READWRITE = ACCESS_READ | ACCESS_WRITE
|
||||||
|
};
|
||||||
|
|
||||||
/// A simple RAII wrapper for file descriptors
|
|
||||||
struct fd_ref {
|
|
||||||
public:
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
fd_ref (int _fd);
|
/// Reads an entire file into memory. Caller frees the result. Guarantees a
|
||||||
~fd_ref ();
|
/// null trailing byte.
|
||||||
|
uint8_t *
|
||||||
|
slurp (const boost::filesystem::path&) mustuse;
|
||||||
|
|
||||||
operator int (void) const;
|
/// A simple RAII wrapper for file descriptors
|
||||||
};
|
struct fd_ref {
|
||||||
|
public:
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
fd_ref (int _fd);
|
||||||
|
~fd_ref ();
|
||||||
|
|
||||||
|
operator int (void) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#if defined(HAVE_MMAP)
|
#if defined(HAVE_MMAP)
|
||||||
/// Wraps a mechanism to map a file into memory. Read only.
|
/// Wraps a mechanism to map a file into memory. Read only.
|
||||||
class mapped_file {
|
class mapped_file {
|
||||||
protected:
|
protected:
|
||||||
fd_ref m_fd;
|
fd_ref m_fd;
|
||||||
uint8_t *m_data;
|
uint8_t *m_data;
|
||||||
size_t m_size;
|
size_t m_size;
|
||||||
|
|
||||||
void load_fd (void);
|
void load_fd (void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
mapped_file (const char *path);
|
mapped_file (const char *path);
|
||||||
mapped_file (const std::string &path);
|
mapped_file (const std::string &path);
|
||||||
mapped_file (const boost::filesystem::path &path);
|
mapped_file (const boost::filesystem::path &path);
|
||||||
|
|
||||||
mapped_file (const mapped_file &rhs);
|
mapped_file (const mapped_file &rhs);
|
||||||
mapped_file& operator =(const mapped_file &rhs);
|
mapped_file& operator =(const mapped_file &rhs);
|
||||||
|
|
||||||
~mapped_file ();
|
~mapped_file ();
|
||||||
|
|
||||||
const uint8_t* data (void) const;
|
const uint8_t* data (void) const;
|
||||||
size_t size (void) const;
|
size_t size (void) const;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
using namespace util;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Parsing
|
* Parsing
|
||||||
|
Loading…
Reference in New Issue
Block a user