add file message
This commit is contained in:
@@ -5,12 +5,15 @@
|
||||
#include <solanaceae/contact/components.hpp>
|
||||
#include <solanaceae/tox_contacts/components.hpp>
|
||||
#include <solanaceae/message3/components.hpp>
|
||||
#include <solanaceae/tox_messages/components.hpp>
|
||||
|
||||
#include <solanaceae/message3/file_r_file.hpp>
|
||||
|
||||
#include "./ft1_sha1_info.hpp"
|
||||
#include "./hash_utils.hpp"
|
||||
|
||||
#include <sodium.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <variant>
|
||||
|
||||
@@ -116,7 +119,7 @@ SHA1_NGCFT1::SHA1_NGCFT1(
|
||||
|
||||
void SHA1_NGCFT1::iterate(float delta) {
|
||||
{ // timers
|
||||
// chunk sending
|
||||
// sending transfers
|
||||
for (auto peer_it = _sending_transfers.begin(); peer_it != _sending_transfers.end();) {
|
||||
for (auto it = peer_it->second.begin(); it != peer_it->second.end();) {
|
||||
it->second.time_since_activity += delta;
|
||||
@@ -492,6 +495,30 @@ bool SHA1_NGCFT1::sendFilePath(const Contact3 c, std::string_view file_name, std
|
||||
} // else queue?
|
||||
#endif
|
||||
|
||||
if (_cr.any_of<Contact::Components::ToxGroupEphemeral>(c)) {
|
||||
const uint32_t group_number = _cr.get<Contact::Components::ToxGroupEphemeral>(c).group_number;
|
||||
uint32_t message_id = 0;
|
||||
|
||||
// TODO: check return
|
||||
_nft.NGC_FT1_send_message_public(group_number, message_id, static_cast<uint32_t>(NGCFT1_file_kind::HASH_SHA1_INFO), sha1_info_hash.data(), sha1_info_hash.size());
|
||||
reg_ptr->emplace<Message::Components::ToxGroupMessageID>(e, message_id);
|
||||
|
||||
// TODO: generalize?
|
||||
auto& synced_by = reg_ptr->emplace<Message::Components::SyncedBy>(e).list;
|
||||
synced_by.emplace(c_self);
|
||||
} else if (
|
||||
// non online group
|
||||
_cr.any_of<Contact::Components::ToxGroupPersistent>(c)
|
||||
) {
|
||||
// create msg_id
|
||||
const uint32_t message_id = randombytes_random();
|
||||
reg_ptr->emplace<Message::Components::ToxGroupMessageID>(e, message_id);
|
||||
|
||||
// TODO: generalize?
|
||||
auto& synced_by = reg_ptr->emplace<Message::Components::SyncedBy>(e).list;
|
||||
synced_by.emplace(c_self);
|
||||
}
|
||||
|
||||
_rmm.throwEventConstruct(*reg_ptr, e);
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user