Skip to content
Snippets Groups Projects
Commit cec87854 authored by Guillaume Roguez's avatar Guillaume Roguez Committed by Olivier SOLDANO
Browse files

datatransfer: add dataTransferList API


Add API to obtain the list of known datatransfer.
libring and DBus API included.

Change-Id: I4e1a46c132f99bd36b4a531035dbc83261061093
Reviewed-by: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
parent bf105816
No related branches found
No related tags found
No related merge requests found
...@@ -1410,6 +1410,13 @@ ...@@ -1410,6 +1410,13 @@
<arg type="s" name="display_name" direction="in"></arg> <arg type="s" name="display_name" direction="in"></arg>
</method> </method>
<method name="dataTransferList" tp:name-for-bindings="dataTransferList">
<tp:added version="4.2.0"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorULongLong"/>
<arg type="at" name="DataTransferList" direction="out">
</arg>
</method>
<method name="dataTransferInfo" tp:name-for-bindings="dataTransferInfo"> <method name="dataTransferInfo" tp:name-for-bindings="dataTransferInfo">
<tp:added version="4.2.0"/> <tp:added version="4.2.0"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="DataTransferInfo"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="DataTransferInfo"/>
......
...@@ -640,3 +640,9 @@ DBusConfigurationManager::dataTransferBytesSent(const uint64_t& id) ...@@ -640,3 +640,9 @@ DBusConfigurationManager::dataTransferBytesSent(const uint64_t& id)
{ {
return DRing::dataTransferBytesSent(id);; return DRing::dataTransferBytesSent(id);;
} }
auto
DBusConfigurationManager::dataTransferList() -> decltype(DRing::dataTransferList())
{
return DRing::dataTransferList();;
}
...@@ -157,6 +157,7 @@ class DBusConfigurationManager : ...@@ -157,6 +157,7 @@ class DBusConfigurationManager :
const std::string& file_path, const std::string& display_name); const std::string& file_path, const std::string& display_name);
DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string> dataTransferInfo(const DRing::DataTransferId& id); DBus::Struct<bool, uint32_t, uint64_t, uint64_t, std::string, std::string> dataTransferInfo(const DRing::DataTransferId& id);
uint64_t dataTransferBytesSent(const uint64_t& id); uint64_t dataTransferBytesSent(const uint64_t& id);
std::vector<uint64_t> dataTransferList();
}; };
#endif // __RING_DBUSCONFIGURATIONMANAGER_H__ #endif // __RING_DBUSCONFIGURATIONMANAGER_H__
...@@ -41,6 +41,12 @@ registerDataXferHandlers(const std::map<std::string, std::shared_ptr<CallbackWra ...@@ -41,6 +41,12 @@ registerDataXferHandlers(const std::map<std::string, std::shared_ptr<CallbackWra
} }
} }
std::vector<DataTransferId>
dataTransferList()
{
return ring::Manager::instance().dataTransfers->list();
}
DataTransferId DataTransferId
sendFile(const std::string& account_id, sendFile(const std::string& account_id,
const std::string& peer_uri, const std::string& peer_uri,
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "peer_connection.h" #include "peer_connection.h"
#include "fileutils.h" #include "fileutils.h"
#include "string_utils.h" #include "string_utils.h"
#include "map_utils.h"
#include "client/ring_signal.h" #include "client/ring_signal.h"
#include <stdexcept> #include <stdexcept>
...@@ -365,6 +366,13 @@ DataTransferFacade::~DataTransferFacade() ...@@ -365,6 +366,13 @@ DataTransferFacade::~DataTransferFacade()
RING_WARN("facade destroy, pimpl @%p", pimpl_.get()); RING_WARN("facade destroy, pimpl @%p", pimpl_.get());
}; };
std::vector<DRing::DataTransferId>
DataTransferFacade::list() const
{
std::lock_guard<std::mutex> lk {pimpl_->mapMutex_};
return map_utils::extractKeys(pimpl_->map_);
}
DRing::DataTransferId DRing::DataTransferId
DataTransferFacade::sendFile(const std::string& account_id, const std::string& peer_uri, DataTransferFacade::sendFile(const std::string& account_id, const std::string& peer_uri,
const std::string& file_path, const std::string& display_name) const std::string& file_path, const std::string& display_name)
......
...@@ -34,6 +34,9 @@ public: ...@@ -34,6 +34,9 @@ public:
DataTransferFacade(); DataTransferFacade();
~DataTransferFacade(); ~DataTransferFacade();
/// Return all known transfer id
std::vector<DRing::DataTransferId> list() const;
/// Send a file to a peer. /// Send a file to a peer.
/// Open a file and send its contents over a reliable connection /// Open a file and send its contents over a reliable connection
/// to given peer using the protocol from given account. /// to given peer using the protocol from given account.
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <string> #include <string>
#include <map> #include <map>
#include <vector>
#include <memory> #include <memory>
#include <cstdlib> // std::size_t #include <cstdlib> // std::size_t
#include <ios> // std::streamsize #include <ios> // std::streamsize
...@@ -57,6 +58,8 @@ struct DataTransferInfo ...@@ -57,6 +58,8 @@ struct DataTransferInfo
std::string path; ///< associated local file path if supported (empty, if not) std::string path; ///< associated local file path if supported (empty, if not)
}; };
std::vector<DataTransferId> dataTransferList();
/// Asynchronously send a file to a peer using given account connection. /// Asynchronously send a file to a peer using given account connection.
/// ///
/// If given account supports a file transfer protocol this function creates /// If given account supports a file transfer protocol this function creates
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment