- #pragma once
-
- #include <cstddef>
- #include <atomic>
-
-
-
- namespace gp {
- namespace system {
- class system;
- }
-
- template<typename> class buffer;
-
- class file_description {
- std::atomic_int64_t ref_counter;
- public:
- virtual void read() = 0;
- virtual void write() = 0;
- virtual void set_attr() = 0;
- virtual void get_attr() = 0;
- virtual void seek() = 0;
- virtual void close() = 0;
- static file_description* open(system::system&, gp::buffer<std::byte>);
- static file_description* create(system::system&, gp::buffer<std::byte>);
- static file_description* remove(system::system&, gp::buffer<std::byte>);
- };
-
- }
|