os backend refactor
This commit is contained in:
parent
09300c1702
commit
d91ad4bfa9
@ -11,20 +11,23 @@ namespace Backends {
|
||||
|
||||
ToxFTFilesystem::ToxFTFilesystem(
|
||||
ObjectStore2& os
|
||||
) : StorageBackendI::StorageBackendI(os) {
|
||||
) : _os(os) {
|
||||
}
|
||||
|
||||
ToxFTFilesystem::~ToxFTFilesystem(void) {
|
||||
}
|
||||
|
||||
ObjectHandle ToxFTFilesystem::newObject(ByteSpan id) {
|
||||
ObjectHandle ToxFTFilesystem::newObject(ByteSpan id, bool throw_construct) {
|
||||
ObjectHandle o{_os.registry(), _os.registry().create()};
|
||||
|
||||
o.emplace<ObjComp::Ephemeral::Backend>(this);
|
||||
o.emplace<ObjComp::Ephemeral::BackendMeta>(this);
|
||||
o.emplace<ObjComp::Ephemeral::BackendFile2>(this);
|
||||
o.emplace<ObjComp::ID>(std::vector<uint8_t>{id});
|
||||
//o.emplace<ObjComp::Ephemeral::FilePath>(object_file_path.generic_u8string());
|
||||
|
||||
_os.throwEventConstruct(o);
|
||||
if (throw_construct) {
|
||||
_os.throwEventConstruct(o);
|
||||
}
|
||||
|
||||
return o;
|
||||
}
|
||||
|
@ -4,13 +4,15 @@
|
||||
|
||||
namespace Backends {
|
||||
|
||||
struct ToxFTFilesystem : public StorageBackendI {
|
||||
struct ToxFTFilesystem : public StorageBackendIMeta, public StorageBackendIFile2 {
|
||||
ObjectStore2& _os;
|
||||
|
||||
ToxFTFilesystem(
|
||||
ObjectStore2& os
|
||||
);
|
||||
~ToxFTFilesystem(void);
|
||||
|
||||
ObjectHandle newObject(ByteSpan id) override;
|
||||
ObjectHandle newObject(ByteSpan id, bool throw_construct = true) override;
|
||||
|
||||
std::unique_ptr<File2I> file2(Object o, FILE2_FLAGS flags) override;
|
||||
};
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include <solanaceae/message3/components.hpp>
|
||||
#include "./msg_components.hpp"
|
||||
#include "./obj_components.hpp"
|
||||
#include "solanaceae/object_store/meta_components.hpp"
|
||||
#include "solanaceae/util/span.hpp"
|
||||
|
||||
#include <sodium.h>
|
||||
|
||||
@ -146,8 +148,7 @@ Message3Handle ToxTransferManager::toxSendFilePath(const Contact3 c, uint32_t fi
|
||||
return {};
|
||||
}
|
||||
|
||||
// TODO: move this to backend
|
||||
ObjectHandle o {_os.registry(), _os.registry().create()};
|
||||
auto o = _ftb.newObject(ByteSpan{file_id}, false);
|
||||
|
||||
o.emplace<ObjComp::F::TagLocalHaveAll>();
|
||||
o.emplace<ObjComp::Tox::TagOutgoing>();
|
||||
@ -159,8 +160,6 @@ Message3Handle ToxTransferManager::toxSendFilePath(const Contact3 c, uint32_t fi
|
||||
o.emplace<ObjComp::F::SingleInfoLocal>(std::string{file_path});
|
||||
o.emplace<ObjComp::Ephemeral::FilePath>(std::string{file_path}); // ?
|
||||
|
||||
o.emplace<ObjComp::Ephemeral::Backend>(&_ftb);
|
||||
|
||||
o.emplace<ObjComp::Ephemeral::File::TransferStats>();
|
||||
|
||||
// TODO: replace with better state tracking
|
||||
@ -507,7 +506,7 @@ bool ToxTransferManager::onToxEvent(const Tox_Event_File_Recv* e) {
|
||||
|
||||
auto self_c = _cr.get<Contact::Components::Self>(c).self;
|
||||
|
||||
o = {_os.registry(), _os.registry().create()};
|
||||
o = _ftb.newObject(ByteSpan{f_id_opt.value()}, false);
|
||||
|
||||
o.emplace<ObjComp::Tox::TagIncomming>();
|
||||
o.emplace<ObjComp::Ephemeral::File::TagTransferPaused>();
|
||||
@ -521,8 +520,6 @@ bool ToxTransferManager::onToxEvent(const Tox_Event_File_Recv* e) {
|
||||
|
||||
o.emplace<ObjComp::Ephemeral::File::TransferStats>();
|
||||
|
||||
o.emplace<ObjComp::Ephemeral::Backend>(&_ftb);
|
||||
|
||||
toxFriendLookupAdd(o);
|
||||
|
||||
Message3Handle msg = {*reg_ptr, reg_ptr->create()};
|
||||
|
Loading…
x
Reference in New Issue
Block a user