file.h
1/*
2** ClanLib SDK
3** Copyright (c) 1997-2020 The ClanLib Team
4**
5** This software is provided 'as-is', without any express or implied
6** warranty. In no event will the authors be held liable for any damages
7** arising from the use of this software.
8**
9** Permission is granted to anyone to use this software for any purpose,
10** including commercial applications, and to alter it and redistribute it
11** freely, subject to the following restrictions:
12**
13** 1. The origin of this software must not be misrepresented; you must not
14** claim that you wrote the original software. If you use this software
15** in a product, an acknowledgment in the product documentation would be
16** appreciated but is not required.
17** 2. Altered source versions must be plainly marked as such, and must not be
18** misrepresented as being the original software.
19** 3. This notice may not be removed or altered from any source distribution.
20**
21** Note: Some of the libraries ClanLib may link to may have additional
22** requirements or restrictions.
23**
24** File Author(s):
25**
26** Magnus Norddahl
27*/
28
29#pragma once
30
31#include "iodevice.h"
32#include "../System/databuffer.h"
33
34namespace clan
35{
38
40 class File : public IODevice
41 {
42 public:
44 static std::string read_text(const std::string &filename);
45
47 static DataBuffer read_bytes(const std::string &filename);
48
50 static void write_text(const std::string &filename, const std::string &text, bool write_bom = false);
51
53 static void write_bytes(const std::string &filename, const DataBuffer &bytes);
54
56
68
84
103
112
115
120 const std::string &filename);
121
126 const std::string &filename,
127 OpenMode mode,
128 unsigned int access,
129 unsigned int share = share_all,
130 unsigned int flags = 0);
131
133
137 bool open(
138 const std::string &filename);
139
143 bool open(
144 const std::string &filename,
145 OpenMode mode,
146 unsigned int access,
147 unsigned int share = share_all,
148 unsigned int flags = 0);
149
151 void close();
152
153 private:
154 };
155
157}
General purpose data buffer.
Definition databuffer.h:42
static std::string read_text(const std::string &filename)
Loads an UTF-8 text file into a string.
static DataBuffer read_bytes(const std::string &filename)
Loads an file into a byte buffer.
Flags
Optimization Flags.
Definition file.h:106
@ flag_random_access
Definition file.h:109
@ flag_no_buffering
Definition file.h:108
@ flag_write_through
Definition file.h:107
@ flag_sequential_scan
Definition file.h:110
bool open(const std::string &filename, OpenMode mode, unsigned int access, unsigned int share=share_all, unsigned int flags=0)
Opens a file.
static void write_text(const std::string &filename, const std::string &text, bool write_bom=false)
Saves an UTF-8 text string to file.
ShareFlags
File sharing flags.
Definition file.h:71
@ share_all
All other sharing flags combined.
Definition file.h:82
@ share_write
Allow others to open the file for writing.
Definition file.h:76
@ share_delete
Allow others to delete the file.
Definition file.h:79
@ share_read
Allow others to open the file for reading.
Definition file.h:73
bool open(const std::string &filename)
Opens a file read only.
File()
Constructs a file object.
void close()
Close file.
static void write_bytes(const std::string &filename, const DataBuffer &bytes)
Saves a byte buffer to file.
AccessFlags
Access flags.
Definition file.h:58
@ access_write
Generic write access.
Definition file.h:63
@ access_read_write
Generic read write access.
Definition file.h:66
@ access_read
Generic read access.
Definition file.h:60
OpenMode
File opening modes.
Definition file.h:87
@ create_new
Create a new file. Fails if it already exists.
Definition file.h:101
@ open_existing
Open existing file. Fails if it does not exist.
Definition file.h:92
@ open_existing_truncate
Open existing file and truncate it.
Definition file.h:95
@ create_always
Create file, even if it already exists.
Definition file.h:98
@ open_always
Open file or create it if it does not exist.
Definition file.h:89
File(const std::string &filename, OpenMode mode, unsigned int access, unsigned int share=share_all, unsigned int flags=0)
Constructs a file object.
File(const std::string &filename)
Constructs a file object read only.
IODevice()
Constructs a null instance.
Definition clanapp.h:36