mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00

This work follow the JamiAccount split started before. This moves the ConnectionManager's callbacks code related to data transfer into transfer_channel_handler and improves syncing by sending contact's avatars (where a swarm is present) to new devices. Note: for now, contact's avatar are managed by the client. So, this code will only transmit avatars if the profile is found. For now, the only path tested is the one used by jami-libclient. To be able to fully sync all avatars, the avatar management should be moved in the daemon with future work. Finally, in syncHistory a test is added to validate the behavior. Doc: https://git.jami.net/savoirfairelinux/ring-project/-/wikis/technical/3.8-Sync-profiles GitLab: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282 Change-Id: Ic98da34aabf1be070a57dcac55bba0a00c555445
53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
/*
|
|
* Copyright (C) 2021 Savoir-faire Linux Inc.
|
|
*
|
|
* Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include <string_view>
|
|
|
|
namespace jami {
|
|
|
|
class Uri
|
|
{
|
|
public:
|
|
enum class Scheme {
|
|
JAMI, // Start with "jami:" and 45 ASCII chars OR 40 ASCII chars
|
|
SIP, // Start with "sip:"
|
|
SWARM, // Start with "swarm:" and 40 ASCII chars
|
|
GIT, // Start with "git:"
|
|
DATA_TRANSFER, // Start with "data-transfer://"
|
|
SYNC, // Start with "sync:"
|
|
UNRECOGNIZED // Anything that doesn't fit in other categories
|
|
};
|
|
|
|
Uri(const std::string_view& uri);
|
|
|
|
const std::string& authority() const;
|
|
Scheme scheme() const;
|
|
std::string toString() const;
|
|
// TODO hostname, transport, handle sip:
|
|
|
|
private:
|
|
std::string schemeToString() const;
|
|
Scheme scheme_;
|
|
std::string authority_;
|
|
};
|
|
} // namespace jami
|