acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
native_buffer.h
1#pragma once
2
3
4namespace universal_windows
5{
6
8 // native_buffer - raw unbuffered disk native_buffer I/O
9
10 class CLASS_DECL_ACME native_buffer:
11 virtual public ::file::file
12 {
13 public:
14
15
16 enum Attribute
17 {
18 normal = 0x00,
19 readOnly = 0x01,
20 hidden = 0x02,
21 system = 0x04,
22 volume = 0x08,
23 directory = 0x10,
24 archive = 0x20
25 };
26
27 enum { hnative_bufferNull = -1 };
28
29 bool m_bCloseOnDelete;
30 ::file::path m_strFileName;
31 StorageFile ^ m_file;
32 StorageFolder ^ m_folder;
33 Streams::IRandomAccessStream ^ m_stream;
34 ::file::e_open m_eopen;
35
36
37 native_buffer();
38 native_buffer(StorageFile ^ file);
39 virtual ~native_buffer();
40
41// // void assert_ok() const override;
42// // void dump(dump_context & dumpcontext) const override;
43
44 operator StorageFile ^ () const;
45
46 virtual filesize get_position() const override;
47 virtual bool get_status(::file::file_status & rStatus) const override;
48 //virtual string GetFileName() const;
49 //virtual string GetFileTitle() const;
50 virtual ::file::path get_file_path() const override;
51 virtual void set_file_path(const ::file::path & pathNewName) override;
52
53 virtual ::extended::status open(::winrt::Windows::Storage::StorageFolder ^ folder, const ::file::path & lpszfileName, ::file::e_open eopen);
54 virtual ::extended::status open(const ::file::path & lpszfileName, ::file::e_open eopen) override;
55
56 //virtual bool GetStatus(const ::file::path & lpszfileName,::file::file_status& rStatus);
57
59 //void WriteHuge(const void * lpBuffer,::u64 dwCount);
60
61 //virtual ::pointer<::file::file>Duplicate() const;
62
63 virtual filesize seek(filesize lOff,::enum_seek eseek) override;
64 virtual void set_size(filesize dwNewLen) override;
65 virtual filesize get_size() const override;
66
67 virtual memsize read(void * lpBuf,memsize nCount) override;
68 virtual void write(const void * lpBuf,memsize nCount) override;
69
70 virtual void lock(filesize dwPos,filesize dwCount) override;
71 virtual void unlock(filesize dwPos,filesize dwCount) override;
72
73 //virtual void Abort();
74 virtual void flush() override;
75 virtual void close() override;
76
77 virtual bool is_opened() const override;
78 //enum BufferCommand { bufferRead,bufferWrite,bufferCommit,bufferCheck };
79 //virtual ::u64 GetBufferPtr(::u32 nCommand,::u64 nCount = 0,
80 // void ** ppBufStart = nullptr,void ** ppBufMax = nullptr);
81
82 };
83
84
85} // namespace universal_windows
86
87
88
89
Definition path.h:52
Definition folder.h:13
virtual filesize seek(filesize lOff,::enum_seek eseek) override
u64 ReadHuge(void * lpBuffer,::u64 dwCount);
Definition aaa_native_buffer.cpp:524
virtual void flush() override
Definition aaa_native_buffer.cpp:549
Definition filesystem.h:16
Definition status.h:12