Back to Site
Loading...
Searching...
No Matches
file_transfer.h File Reference
#include "socket.h"
#include "json.hpp"
#include <string>
#include <vector>
#include <functional>
#include <memory>
#include <mutex>
#include <unordered_map>
#include <atomic>
#include <chrono>
#include <thread>
#include <queue>
#include <condition_variable>
Include dependency graph for file_transfer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  librats::FileChunk
 File transfer chunk information. More...
 
struct  librats::FileMetadata
 File metadata for transfers. More...
 
struct  librats::DirectoryMetadata
 Directory transfer metadata. More...
 
struct  librats::FileTransferProgress
 File transfer progress information. More...
 
struct  librats::FileTransferConfig
 File transfer configuration. More...
 
class  librats::FileTransferManager
 File transfer manager class Handles efficient chunked file transfers with resume capability. More...
 

Namespaces

namespace  librats
 

Typedefs

using librats::FileTransferProgressCallback = std::function< void(const FileTransferProgress &)>
 Callback function types for file transfer events.
 
using librats::FileTransferCompletedCallback = std::function< void(const std::string &transfer_id, bool success, const std::string &error_message)>
 
using librats::FileTransferRequestCallback = std::function< bool(const std::string &peer_id, const FileMetadata &metadata, const std::string &transfer_id)>
 
using librats::DirectoryTransferProgressCallback = std::function< void(const std::string &transfer_id, const std::string &current_file, uint64_t files_completed, uint64_t total_files, uint64_t bytes_completed, uint64_t total_bytes)>
 
using librats::FileRequestCallback = std::function< bool(const std::string &peer_id, const std::string &file_path, const std::string &transfer_id)>
 
using librats::DirectoryRequestCallback = std::function< bool(const std::string &peer_id, const std::string &directory_path, bool recursive, const std::string &transfer_id)>
 

Enumerations

enum class  librats::FileTransferStatus {
  librats::PENDING , librats::STARTING , librats::IN_PROGRESS , librats::PAUSED ,
  librats::COMPLETED , librats::FAILED , librats::CANCELLED , librats::RESUMING
}
 File transfer status codes. More...
 
enum class  librats::FileTransferDirection { librats::SENDING , librats::RECEIVING }
 File transfer direction. More...