acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_file.h
1#pragma once
2
3
4class FileException;
5struct FileStatus;
6
7void CLASS_DECL_ACME vfxGetRoot(const wide_character * lpszPath, string& wstrRoot);
8
9namespace ios
10{
11
13 // File - raw unbuffered disk file I/O
14
15 class CLASS_DECL_ACME file :
16 virtual public ::file::file
17 {
18 public:
19
20
21 enum Attribute
22 {
23
24 normal = 0x00,
25 readOnly = 0x01,
26 hidden = 0x02,
27 system = 0x04,
28 volume = 0x08,
29 directory = 0x10,
30 archive = 0x20
31
32 };
33
34 enum
35 {
36
37 hFileNull = -1
38
39 };
40
41 enum BufferCommand
42 {
43
44 bufferRead,
45 bufferWrite,
46 bufferCommit,
47 bufferCheck
48
49 };
50
51 zip::util * m_pziputil;
52 string m_strFileName;
53 wstring m_wstrFileName;
54 ::i32 m_iFile;
55
56
57 file();
58 virtual ~file();
59
60
61// // void assert_ok() const override;
62// // void dump(dump_context & dumpcontext) const override;
63
64 //virtual bool has_write_mode() override;
65
66 virtual filesize get_position() const override;
67 virtual bool get_status(::file::file_status & status) const override;
68 virtual ::file::path get_file_path() const override;
69 virtual void set_file_path(const ::file::path & path) override;
70
71 virtual ::extended::status open(const ::file::path & path, ::file::e_open eopen) override;
72
73 virtual filesize seek(filesize uiCount, ::enum_seek eseek) override;
74 virtual void set_size(filesize uiCount) override;
75 virtual filesize get_size() const override;
76
77 virtual memsize read(void * pbuffer, memsize uiCount) override;
78 virtual void write(const void * pbuffer, memsize uiCount) override;
79
80 virtual void lock(filesize pos, filesize uiCount) override;
81 virtual void unlock(filesize pos, filesize uiCount) override;
82
83 virtual void flush() override;
84 virtual void close() override;
85
86 virtual bool is_opened() const override;
87
88
89 };
90
91
92// namespace file_exception
93// {
94//
95//
96// void os_error_to_exception(::i32 lOsError);
97// void err_no_to_exception(::i32 nErrno);
98// void throw_os_error(::particle * pparticle, ::i32 lOsError, const_char_pointer pszFileName = nullptr);
99// void throw_err_no(::particle * pparticle, ::i32 nErrno, const_char_pointer pszFileName = nullptr);
100//
101//
102// } // namespace file_exception
103//
104//
105} // namespace ios
virtual void flush() override
Definition status.h:15
Definition aaa_want_to_remove_str_wstring.h:94
Definition filesystem.h:16
Definition status.h:12