1.1 --- a/libfsserver/include/fsserver/accessor.h Sun Apr 18 00:27:43 2021 +0200
1.2 +++ b/libfsserver/include/fsserver/accessor.h Sun Apr 18 22:31:55 2021 +0200
1.3 @@ -41,13 +41,13 @@
1.4 public:
1.5 fileid_t fileid;
1.6
1.7 - explicit Accessor(fileid_t fileid, offset_t size=0);
1.8 + explicit Accessor(fileid_t fileid);
1.9
1.10 virtual ~Accessor();
1.11
1.12 - virtual offset_t get_size();
1.13 + virtual offset_t get_size() = 0;
1.14
1.15 - virtual void set_size(offset_t size);
1.16 + virtual void set_size(offset_t size) = 0;
1.17
1.18 virtual void close();
1.19
2.1 --- a/libfsserver/include/fsserver/block_file_accessor.h Sun Apr 18 00:27:43 2021 +0200
2.2 +++ b/libfsserver/include/fsserver/block_file_accessor.h Sun Apr 18 22:31:55 2021 +0200
2.3 @@ -31,6 +31,7 @@
2.4 class BlockFileAccessor : public Accessor
2.5 {
2.6 protected:
2.7 + offset_t _size;
2.8 char *_data;
2.9
2.10 /* Data transfer helper methods. */
2.11 @@ -42,6 +43,8 @@
2.12 public:
2.13 explicit BlockFileAccessor(const char *path, fileid_t fileid);
2.14
2.15 + virtual offset_t get_size();
2.16 +
2.17 virtual void set_size(offset_t size);
2.18 };
2.19
3.1 --- a/libfsserver/include/fsserver/host_file_accessor.h Sun Apr 18 00:27:43 2021 +0200
3.2 +++ b/libfsserver/include/fsserver/host_file_accessor.h Sun Apr 18 22:31:55 2021 +0200
3.3 @@ -33,6 +33,7 @@
3.4 class HostFileAccessor : public Accessor
3.5 {
3.6 protected:
3.7 + offset_t _size;
3.8 const char *_path;
3.9 FILE *_fp;
3.10
3.11 @@ -45,6 +46,10 @@
3.12 public:
3.13 explicit HostFileAccessor(const char *path, fileid_t fileid);
3.14
3.15 + virtual offset_t get_size();
3.16 +
3.17 + virtual void set_size(offset_t size);
3.18 +
3.19 virtual void close();
3.20
3.21 virtual void open();
4.1 --- a/libfsserver/include/fsserver/pipe_accessor.h Sun Apr 18 00:27:43 2021 +0200
4.2 +++ b/libfsserver/include/fsserver/pipe_accessor.h Sun Apr 18 22:31:55 2021 +0200
4.3 @@ -30,6 +30,7 @@
4.4 class PipeAccessor : public Accessor
4.5 {
4.6 protected:
4.7 + offset_t _size;
4.8
4.9 /* Data transfer helper methods. */
4.10
4.11 @@ -40,6 +41,10 @@
4.12 public:
4.13 explicit PipeAccessor();
4.14
4.15 + virtual offset_t get_size();
4.16 +
4.17 + virtual void set_size(offset_t size);
4.18 +
4.19 virtual void close();
4.20
4.21 virtual void open();
5.1 --- a/libfsserver/include/fsserver/test_file_accessor.h Sun Apr 18 00:27:43 2021 +0200
5.2 +++ b/libfsserver/include/fsserver/test_file_accessor.h Sun Apr 18 22:31:55 2021 +0200
5.3 @@ -30,6 +30,7 @@
5.4 class TestFileAccessor : public Accessor
5.5 {
5.6 protected:
5.7 + offset_t _size;
5.8
5.9 /* Data transfer helper methods. */
5.10
5.11 @@ -39,6 +40,10 @@
5.12
5.13 public:
5.14 explicit TestFileAccessor(fileid_t fileid, offset_t size=0);
5.15 +
5.16 + virtual offset_t get_size();
5.17 +
5.18 + virtual void set_size(offset_t size);
5.19 };
5.20
5.21 // vim: tabstop=4 expandtab shiftwidth=4
6.1 --- a/libfsserver/lib/files/block_file_accessor.cc Sun Apr 18 00:27:43 2021 +0200
6.2 +++ b/libfsserver/lib/files/block_file_accessor.cc Sun Apr 18 22:31:55 2021 +0200
6.3 @@ -66,6 +66,13 @@
6.4 fclose(fp);
6.5 }
6.6
6.7 +/* Return the size of the file. */
6.8 +
6.9 +offset_t BlockFileAccessor::get_size()
6.10 +{
6.11 + return _size;
6.12 +}
6.13 +
6.14 /* Update the size of the file. */
6.15
6.16 void BlockFileAccessor::set_size(offset_t size)
6.17 @@ -79,7 +86,7 @@
6.18 if (size > _size)
6.19 memset(_data + _size, 0, size - _size);
6.20
6.21 - Accessor::set_size(size);
6.22 + _size = size;
6.23 }
6.24 }
6.25
7.1 --- a/libfsserver/lib/files/host_file_accessor.cc Sun Apr 18 00:27:43 2021 +0200
7.2 +++ b/libfsserver/lib/files/host_file_accessor.cc Sun Apr 18 22:31:55 2021 +0200
7.3 @@ -39,6 +39,20 @@
7.4 _size = 0;
7.5 }
7.6
7.7 +/* Return the size of the file. */
7.8 +
7.9 +offset_t HostFileAccessor::get_size()
7.10 +{
7.11 + return _size;
7.12 +}
7.13 +
7.14 +/* Update the size of the file. */
7.15 +
7.16 +void HostFileAccessor::set_size(offset_t size)
7.17 +{
7.18 + _size = size;
7.19 +}
7.20 +
7.21 /* Perform any closing operation on the file. */
7.22
7.23 void HostFileAccessor::close()
8.1 --- a/libfsserver/lib/files/test_file_accessor.cc Sun Apr 18 00:27:43 2021 +0200
8.2 +++ b/libfsserver/lib/files/test_file_accessor.cc Sun Apr 18 22:31:55 2021 +0200
8.3 @@ -25,8 +25,22 @@
8.4 #include "test_file_accessor.h"
8.5
8.6 TestFileAccessor::TestFileAccessor(fileid_t fileid, offset_t size)
8.7 -: Accessor(fileid, size)
8.8 +: Accessor(fileid), _size(size)
8.9 +{
8.10 +}
8.11 +
8.12 +/* Return the size of the file. */
8.13 +
8.14 +offset_t TestFileAccessor::get_size()
8.15 {
8.16 + return _size;
8.17 +}
8.18 +
8.19 +/* Update the size of the file. */
8.20 +
8.21 +void TestFileAccessor::set_size(offset_t size)
8.22 +{
8.23 + _size = size;
8.24 }
8.25
8.26 /* Data transfer helper methods. */
9.1 --- a/libfsserver/lib/generic/accessor.cc Sun Apr 18 00:27:43 2021 +0200
9.2 +++ b/libfsserver/lib/generic/accessor.cc Sun Apr 18 22:31:55 2021 +0200
9.3 @@ -25,8 +25,8 @@
9.4
9.5
9.6
9.7 -Accessor::Accessor(fileid_t fileid, offset_t size)
9.8 -: _size(size), fileid(fileid)
9.9 +Accessor::Accessor(fileid_t fileid)
9.10 +: fileid(fileid)
9.11 {
9.12 }
9.13
9.14 @@ -34,20 +34,6 @@
9.15 {
9.16 }
9.17
9.18 -/* Return the size of the file. */
9.19 -
9.20 -offset_t Accessor::get_size()
9.21 -{
9.22 - return _size;
9.23 -}
9.24 -
9.25 -/* Update the size of the file. */
9.26 -
9.27 -void Accessor::set_size(offset_t size)
9.28 -{
9.29 - _size = size;
9.30 -}
9.31 -
9.32 /* Perform any closing operation on the file. */
9.33
9.34 void Accessor::close()
9.35 @@ -68,7 +54,7 @@
9.36 flexpage. This could potentially be a shared read-only flexpage that
9.37 would be replaced by an independent writable flexpage if ever written. */
9.38
9.39 - if (flexpage->base_offset < _size)
9.40 + if (flexpage->base_offset < get_size())
9.41 fill_populated(flexpage);
9.42 else
9.43 memset((void *) flexpage->base_addr, 0, flexpage->size);
9.44 @@ -79,7 +65,7 @@
9.45 /* Flushing completely beyond the end of file should discard the
9.46 flexpage. */
9.47
9.48 - if (flexpage->base_offset < _size)
9.49 + if (flexpage->base_offset < get_size())
9.50 flush_populated(flexpage);
9.51 }
9.52
10.1 --- a/libfsserver/lib/pipes/pipe_accessor.cc Sun Apr 18 00:27:43 2021 +0200
10.2 +++ b/libfsserver/lib/pipes/pipe_accessor.cc Sun Apr 18 22:31:55 2021 +0200
10.3 @@ -28,6 +28,20 @@
10.4 {
10.5 }
10.6
10.7 +/* Return the size of the file. */
10.8 +
10.9 +offset_t PipeAccessor::get_size()
10.10 +{
10.11 + return _size;
10.12 +}
10.13 +
10.14 +/* Update the size of the file. */
10.15 +
10.16 +void PipeAccessor::set_size(offset_t size)
10.17 +{
10.18 + _size = size;
10.19 +}
10.20 +
10.21 /* Perform any closing operation on the file. */
10.22
10.23 void PipeAccessor::close()