lean cpp library
A lean C++ library providing efficient utility classes for high-performance C++ applications.
raw_file.h
00001 /*****************************************************/
00002 /* lean I/O                     (c) Tobias Zirr 2011 */
00003 /*****************************************************/
00004 
00005 #ifndef LEAN_LOGGING_IO_RAW_FILE
00006 #define LEAN_LOGGING_IO_RAW_FILE
00007 
00008 #include "../lean.h"
00009 #include "../strings/types.h"
00010 #include "file.h"
00011 
00012 namespace lean
00013 {
00014 namespace io
00015 {
00016 
00018 class raw_file : public file
00019 {
00020 public:
00022     LEAN_MAYBE_EXPORT explicit raw_file(const utf8_ntri &name,
00023         uint4 access = file::read | file::write, open_mode mode = file::open,
00024         uint4 hints = file::none, uint4 share = file::share_default);
00026     LEAN_MAYBE_EXPORT ~raw_file();
00027 
00029     LEAN_MAYBE_EXPORT size_t read(char *begin, size_t count) const;
00031     LEAN_MAYBE_EXPORT size_t write(const char *begin, size_t count);
00032 
00034     LEAN_MAYBE_EXPORT size_t print(const char_ntri &message);
00035 };
00036 
00037 } // namespace
00038 
00039 using io::raw_file;
00040 
00041 } // namespace
00042 
00043 #ifdef LEAN_INCLUDE_INLINED
00044 #include "source/raw_file.cpp"
00045 #endif
00046 
00047 #endif