File I/O device. More...

#include <file.h>

+ Inheritance diagram for clan::File:

Public Types

enum  AccessFlags { access_read = 1, access_write = 2, access_read_write = access_read | access_write }
 Access flags. More...
 
enum  Flags { flag_write_through = 1, flag_no_buffering = 2, flag_random_access = 4, flag_sequential_scan = 8 }
 Optimization Flags. More...
 
enum  OpenMode {
  open_always, open_existing, open_existing_truncate, create_always,
  create_new
}
 File opening modes. More...
 
enum  ShareFlags { share_read = 1, share_write = 2, share_delete = 4, share_all = share_read + share_write + share_delete }
 File sharing flags. More...
 
- Public Types inherited from clan::IODevice
enum  SeekMode { seek_set, seek_cur, seek_end }
 Seeking modes. More...
 

Public Member Functions

 File ()
 Constructs a file object. More...
 
 File (const std::string &filename)
 Constructs a file object read only. More...
 
 File (const std::string &filename, OpenMode mode, unsigned int access, unsigned int share=share_all, unsigned int flags=0)
 Constructs a file object. More...
 
 ~File ()
 
void close ()
 Close file. More...
 
bool open (const std::string &filename)
 Opens a file read only. More...
 
bool open (const std::string &filename, OpenMode mode, unsigned int access, unsigned int share=share_all, unsigned int flags=0)
 Opens a file. More...
 
- Public Member Functions inherited from clan::IODevice
 IODevice ()
 Constructs a null instance. More...
 
 IODevice (IODeviceProvider *provider)
 Constructs a IODevice. More...
 
 ~IODevice ()
 
IODevice duplicate ()
 Create a new IODevice referencing the same resource. More...
 
int get_position () const
 Returns the position in the data stream. More...
 
const IODeviceProviderget_provider () const
 Returns the provider for this object. More...
 
IODeviceProviderget_provider ()
 Returns the provider for this object. More...
 
int get_size () const
 Returns the size of data stream. More...
 
bool is_little_endian () const
 Returns true if the input source is in little endian mode. More...
 
bool is_null () const
 Returns true if this object is invalid. More...
 
int peek (void *data, int len)
 Peek data from device (data is left in the buffer). More...
 
int read (void *data, int len, bool receive_all=true)
 Alias for receive(data, len, receive_all) More...
 
float read_float ()
 Reads a float from input source. More...
 
int16_t read_int16 ()
 Reads a signed 16 bit integer from input source. More...
 
int32_t read_int32 ()
 Reads a signed 32 bit integer from input source. More...
 
int64_t read_int64 ()
 Reads a signed 64 bit integer from input source. More...
 
int8_t read_int8 ()
 Reads a signed 8 bit integer from input source. More...
 
std::string read_string_a ()
 Reads a string from the input source. More...
 
std::string read_string_nul ()
 Reads a nul terminated string from the input source. More...
 
std::string read_string_text (const char *skip_initial_chars, const char *read_until_chars, bool allow_eof=true)
 Reads a string from the input source where the source is a text file. More...
 
uint16_t read_uint16 ()
 Reads an unsigned 16 bit integer from input source. More...
 
uint32_t read_uint32 ()
 Reads an unsigned 32 bit integer from input source. More...
 
uint64_t read_uint64 ()
 Reads an unsigned 64 bit integer from input source. More...
 
uint8_t read_uint8 ()
 Reads an unsigned 8 bit integer from input source. More...
 
int receive (void *data, int len, bool receive_all=true)
 Receive data from device. More...
 
bool seek (int position, SeekMode mode=seek_set)
 Seek in data stream. More...
 
int send (const void *data, int len, bool send_all=true)
 Send data to device. More...
 
void set_big_endian_mode ()
 Changes input data endianess to big endian mode. (Default is little endian) More...
 
void set_little_endian_mode ()
 Changes input data endianess to little endian mode. This is the default setting. More...
 
void set_system_mode ()
 Changes input data endianess to the local systems mode. More...
 
void throw_if_null () const
 Throw an exception if this object is invalid. More...
 
int write (const void *data, int len, bool send_all=true)
 Alias for send(data, len, send_all) More...
 
void write_float (float data)
 Writes a float to output source. More...
 
void write_int16 (int16_t data)
 Writes a signed 16 bit integer to output source. More...
 
void write_int32 (int32_t data)
 Writes a signed 32 bit integer to output source. More...
 
void write_int64 (int64_t data)
 Writes a signed 64 bit integer to output source. More...
 
void write_int8 (int8_t data)
 Writes a signed 8 bit integer to output source. More...
 
void write_string_a (const std::string &str)
 Writes a string to the output source. More...
 
void write_string_nul (const std::string &str)
 Writes a nul terminated string to the output source. More...
 
void write_string_text (const std::string &str)
 Writes a text string to the output source. More...
 
void write_uint16 (uint16_t data)
 Writes an unsigned 16 bit integer to output source. More...
 
void write_uint32 (uint32_t data)
 Writes an unsigned 32 bit integer to output source. More...
 
void write_uint64 (uint64_t data)
 Writes an unsigned 64 bit integer to output source. More...
 
void write_uint8 (uint8_t data)
 Writes an unsigned 8 bit integer to output source. More...
 

Static Public Member Functions

static DataBuffer read_bytes (const std::string &filename)
 Loads an file into a byte buffer. More...
 
static std::string read_text (const std::string &filename)
 Loads an UTF-8 text file into a string. More...
 
static void write_bytes (const std::string &filename, const DataBuffer &bytes)
 Saves a byte buffer to file. More...
 
static void write_text (const std::string &filename, const std::string &text, bool write_bom=false)
 Saves an UTF-8 text string to file. More...
 

Additional Inherited Members

- Protected Attributes inherited from clan::IODevice
std::shared_ptr< IODevice_Impl > impl
 

Detailed Description

File I/O device.

Constructor & Destructor Documentation

clan::File::File ( )

Constructs a file object.

clan::File::File ( const std::string filename)

Constructs a file object read only.

PathHelp::normalize(filename, PathHelp::path_type_file) is called

clan::File::File ( const std::string filename,
OpenMode  mode,
unsigned int  access,
unsigned int  share = share_all,
unsigned int  flags = 0 
)

Constructs a file object.

PathHelp::normalize(filename, PathHelp::path_type_file) is called

clan::File::~File ( )

Member Function Documentation

void clan::File::close ( )

Close file.

bool clan::File::open ( const std::string filename)

Opens a file read only.

PathHelp::normalize(filename, PathHelp::path_type_file) is called

bool clan::File::open ( const std::string filename,
OpenMode  mode,
unsigned int  access,
unsigned int  share = share_all,
unsigned int  flags = 0 
)

Opens a file.

PathHelp::normalize(filename, PathHelp::path_type_file) is called

static DataBuffer clan::File::read_bytes ( const std::string filename)
static

Loads an file into a byte buffer.

static std::string clan::File::read_text ( const std::string filename)
static

Loads an UTF-8 text file into a string.

static void clan::File::write_bytes ( const std::string filename,
const DataBuffer bytes 
)
static

Saves a byte buffer to file.

static void clan::File::write_text ( const std::string filename,
const std::string text,
bool  write_bom = false 
)
static

Saves an UTF-8 text string to file.


The documentation for this class was generated from the following file: