List of all members
clan::File Class Reference
clanCore I/O Data

File I/O device. More...

`#include <file.h>`

Inheritance diagram for clan::File:

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

## Public Member Functions
Construction
| 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 ()
Operations
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...
void | close ()
| Close file. More...
Public Member Functions inherited from clan::IODevice
| IODevice ()
| Constructs a null instance. More...
| IODevice (IODeviceProvider *provider)
| Constructs a IODevice. More...
| ~IODevice ()
bool | is_null () const
| Returns true if this object is invalid. More...
void | throw_if_null () const
| Throw an exception if this object is invalid. More...
int | get_size () const
| Returns the size of data stream. More...
int | get_position () const
| Returns the position in the data stream. More...
bool | is_little_endian () const
| Returns true if the input source is in little endian mode. More...
const IODeviceProvider * | get_provider () const
| Returns the provider for this object. More...
IODeviceProvider * | get_provider ()
| Returns the provider for this object. More...
int | send (const void *data, int len, bool send_all=true)
| Send data to device. More...
int | receive (void *data, int len, bool receive_all=true)
| Receive data from device. More...
int | peek (void *data, int len)
| Peek data from device (data is left in the buffer). More...
bool | seek (int position, SeekMode mode=seek_set)
| Seek in data stream. More...
int | read (void *data, int len, bool receive_all=true)
| Alias for receive(data, len, receive_all) More...
int | write (const void *data, int len, bool send_all=true)
| Alias for send(data, len, send_all) More...
void | set_system_mode ()
| Changes input data endianess to the local systems mode. 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 | write_int64 (int64_t data)
| Writes a signed 64 bit integer to output source. More...
void | write_uint64 (uint64_t data)
| Writes an unsigned 64 bit integer to output source. More...
void | write_int32 (int32_t data)
| Writes a signed 32 bit integer to output source. More...
void | write_uint32 (uint32_t data)
| Writes an unsigned 32 bit integer to output source. More...
void | write_int16 (int16_t data)
| Writes a signed 16 bit integer to output source. More...
void | write_uint16 (uint16_t data)
| Writes an unsigned 16 bit integer to output source. More...
void | write_int8 (int8_t data)
| Writes a signed 8 bit integer to output source. More...
void | write_uint8 (uint8_t data)
| Writes an unsigned 8 bit integer to output source. More...
void | write_float (float data)
| Writes a float 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...
int64_t | read_int64 ()
| Reads a signed 64 bit integer from input source. More...
uint64_t | read_uint64 ()
| Reads an unsigned 64 bit integer from input source. More...
int32_t | read_int32 ()
| Reads a signed 32 bit integer from input source. More...
uint32_t | read_uint32 ()
| Reads an unsigned 32 bit integer from input source. More...
int16_t | read_int16 ()
| Reads a signed 16 bit integer from input source. More...
uint16_t | read_uint16 ()
| Reads an unsigned 16 bit integer from input source. More...
int8_t | read_int8 ()
| Reads a signed 8 bit integer from input source. More...
uint8_t | read_uint8 ()
| Reads an unsigned 8 bit integer from input source. More...
float | read_float ()
| Reads a float 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...
IODevice | duplicate ()
| Create a new IODevice referencing the same resource. More...

## Static Public Member Functions
Static helper functions
static std::string | read_text (const std::string &filename)
| Loads an UTF-8 text file into a string. More...
static DataBuffer | read_bytes (const std::string &filename)
| Loads an file into a byte buffer. 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...
static void | write_bytes (const std::string &filename, const DataBuffer &bytes)
| Saves a byte buffer to file. More...

## Additional Inherited Members
Protected Attributes inherited from clan::IODevice
std::shared_ptr< IODevice_Impl > | impl

## Detailed Description

File I/O device.

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

- file.h