Simplify Data::LoadFromFile and use DISALLOW_COPY_AND_ASSIGN for OnDiskBlob and OnDiskBlobStore
This commit is contained in:
parent
c20b09030d
commit
a699350e19
@ -54,13 +54,13 @@ void Data::StoreToFile(const bf::path &filepath) const {
|
|||||||
file.write((const char*)_data, _size);
|
file.write((const char*)_data, _size);
|
||||||
}
|
}
|
||||||
|
|
||||||
unique_ptr<Data> Data::LoadFromFile(const bf::path &filepath) {
|
Data Data::LoadFromFile(const bf::path &filepath) {
|
||||||
ifstream file(filepath.c_str(), ios::binary);
|
ifstream file(filepath.c_str(), ios::binary);
|
||||||
size_t size = _getStreamSize(file);
|
size_t size = _getStreamSize(file);
|
||||||
|
|
||||||
auto blob = make_unique<Data>(size);
|
Data result(size);
|
||||||
blob->_readFromStream(file);
|
result._readFromStream(file);
|
||||||
return blob;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t Data::_getStreamSize(istream &stream) {
|
size_t Data::_getStreamSize(istream &stream) {
|
||||||
|
@ -26,7 +26,7 @@ public:
|
|||||||
void FillWithZeroes();
|
void FillWithZeroes();
|
||||||
|
|
||||||
void StoreToFile(const boost::filesystem::path &filepath) const;
|
void StoreToFile(const boost::filesystem::path &filepath) const;
|
||||||
static std::unique_ptr<Data> LoadFromFile(const boost::filesystem::path &filepath);
|
static Data LoadFromFile(const boost::filesystem::path &filepath);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
size_t _size;
|
size_t _size;
|
||||||
|
@ -44,9 +44,9 @@ size_t OnDiskBlob::size() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unique_ptr<OnDiskBlob> OnDiskBlob::LoadFromDisk(const bf::path &filepath) {
|
unique_ptr<OnDiskBlob> OnDiskBlob::LoadFromDisk(const bf::path &filepath) {
|
||||||
auto data = Data::LoadFromFile(filepath);
|
Data data = Data::LoadFromFile(filepath);
|
||||||
|
|
||||||
return unique_ptr<OnDiskBlob>(new OnDiskBlob(filepath, std::move(*data.get())));
|
return unique_ptr<OnDiskBlob>(new OnDiskBlob(filepath, std::move(data)));
|
||||||
}
|
}
|
||||||
|
|
||||||
unique_ptr<OnDiskBlob> OnDiskBlob::CreateOnDisk(const bf::path &filepath, size_t size) {
|
unique_ptr<OnDiskBlob> OnDiskBlob::CreateOnDisk(const bf::path &filepath, size_t size) {
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#include <boost/filesystem/path.hpp>
|
#include <boost/filesystem/path.hpp>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "fspp/utils/macros.h"
|
||||||
|
|
||||||
namespace blobstore {
|
namespace blobstore {
|
||||||
namespace ondisk {
|
namespace ondisk {
|
||||||
class OnDiskBlobStore;
|
class OnDiskBlobStore;
|
||||||
@ -34,6 +36,8 @@ private:
|
|||||||
static void _assertFileDoesntExist(const boost::filesystem::path &filepath);
|
static void _assertFileDoesntExist(const boost::filesystem::path &filepath);
|
||||||
void _fillDataWithZeroes();
|
void _fillDataWithZeroes();
|
||||||
void _storeToDisk() const;
|
void _storeToDisk() const;
|
||||||
|
|
||||||
|
DISALLOW_COPY_AND_ASSIGN(OnDiskBlob);
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace ondisk */
|
} /* namespace ondisk */
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
#include <boost/filesystem/path.hpp>
|
#include <boost/filesystem/path.hpp>
|
||||||
|
|
||||||
|
#include "fspp/utils/macros.h"
|
||||||
|
|
||||||
namespace blobstore {
|
namespace blobstore {
|
||||||
namespace ondisk {
|
namespace ondisk {
|
||||||
class OnDiskBlob;
|
class OnDiskBlob;
|
||||||
@ -19,6 +21,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const boost::filesystem::path _rootdir;
|
const boost::filesystem::path _rootdir;
|
||||||
|
|
||||||
|
DISALLOW_COPY_AND_ASSIGN(OnDiskBlobStore);
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace ondisk */
|
} /* namespace ondisk */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user