acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
circular_file.h
1#pragma once
2// transposed 2011-04-08
3// originally from C++ sockets library tcp_socket::circular_file
4
5
6#include "acme/prototype/prototype/memory.h"
7#include "file.h"
8
9
10namespace file
11{
12
15
16 class CLASS_DECL_ACME circular_file :
17 virtual public file
18 {
19 protected:
20
21
22 memory m_memory;
23 memsize m_max;
24 memsize m_q;
25 memsize m_b;
26 memsize m_t;
27 memsize m_count;
28
29
30 public:
31
32
33 circular_file(memsize size);
34 circular_file(const circular_file& buffer);
35 circular_file(circular_file &&) = delete;
36 circular_file& operator=(const circular_file& buffer);
37 ~circular_file();
38
40 using ::file::file::write;
41 void write(const void * pdata, memsize l);
43 using ::file::file::read;
44 memsize read(void * pbuffer, memsize l);
46 bool erase(memsize l);
48 using ::file::file::read_string;
49 string read_string(memsize l);
50
52 filesize get_length() const;
54 const_char_pointer GetStart();
56 memsize GetL();
58 memsize Space();
59
61 memsize ByteCounter(bool clear = false);
62
63 };
64
65
66} // namespace file
67
68
69
70
memsize GetL()
Definition circular_buffer.cpp:158
memsize ByteCounter(bool clear=false)
Definition circular_buffer.cpp:172
const_char_pointer GetStart()
Definition circular_buffer.cpp:150
memsize Space()
Definition circular_buffer.cpp:166
filesize get_length() const
Definition circular_buffer.cpp:142
bool erase(memsize l)
Definition circular_buffer.cpp:123
Definition memory.h:33
Definition filesystem.h:16