more ai generated doc with human review
This commit is contained in:
@@ -31,25 +31,40 @@
|
||||
|
||||
#define __PIFILETRANSFER_VERSION 2
|
||||
|
||||
//! \~english Class for send and receive files and directories via \a PIBaseTransfer
|
||||
//! \~russian Класс для отправки и приема файлов и папок с помощью \a PIBaseTransfer
|
||||
class PIP_EXPORT PIFileTransfer: public PIBaseTransfer {
|
||||
PIOBJECT_SUBCLASS(PIFileTransfer, PIBaseTransfer);
|
||||
|
||||
public:
|
||||
//! \~english Constructs empty file transfer
|
||||
//! \~russian Создает пустой transfer файлов
|
||||
PIFileTransfer();
|
||||
|
||||
//! \~english Destructor
|
||||
//! \~russian Деструктор
|
||||
~PIFileTransfer();
|
||||
|
||||
//! \~english Step type for file transfer
|
||||
//! \~russian Тип шага для передачи файлов
|
||||
enum StepType {
|
||||
pft_None,
|
||||
pft_Description,
|
||||
pft_Data
|
||||
};
|
||||
|
||||
//! \~english File information structure
|
||||
//! \~russian Структура информации о файле
|
||||
struct PIP_EXPORT PFTFileInfo: public PIFile::FileInfo {
|
||||
//! \~english Constructor
|
||||
//! \~russian Конструктор
|
||||
PFTFileInfo(const PIFile::FileInfo & fi = PIFile::FileInfo()): PIFile::FileInfo(fi) {}
|
||||
PIString dest_path;
|
||||
};
|
||||
|
||||
#pragma pack(push, 1)
|
||||
//! \~english File transfer header structure
|
||||
//! \~russian Структура заголовка передачи файлов
|
||||
struct PIP_EXPORT PFTHeader {
|
||||
union {
|
||||
struct {
|
||||
@@ -60,6 +75,8 @@ public:
|
||||
};
|
||||
int step; // PacketType
|
||||
int session_id;
|
||||
//! \~english Check if signature is valid
|
||||
//! \~russian Проверка валидности подписи
|
||||
bool check_sig() {
|
||||
if (sig[0] != sign[0] || sig[1] != sign[1] || sig[2] != sign[2] || version != __PIFILETRANSFER_VERSION) return false;
|
||||
return true;
|
||||
@@ -67,23 +84,64 @@ public:
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//! \~english Send file
|
||||
//! \~russian Отправить файл
|
||||
bool send(const PIFile & file);
|
||||
|
||||
//! \~english Send file by path
|
||||
//! \~russian Отправить файл по пути
|
||||
bool send(const PIString & file);
|
||||
|
||||
//! \~english Send files list
|
||||
//! \~russian Отправить список файлов
|
||||
bool send(const PIStringList & files);
|
||||
|
||||
//! \~english Send file info
|
||||
//! \~russian Отправить информацию о файле
|
||||
bool send(PIFile::FileInfo entry) { return send(PIVector<PIFile::FileInfo>() << entry); }
|
||||
|
||||
//! \~english Send file info vector
|
||||
//! \~russian Отправить вектор информации о файлах
|
||||
bool send(PIVector<PIFile::FileInfo> entries);
|
||||
|
||||
//! \~english Set directory
|
||||
//! \~russian Установить директорию
|
||||
void setDirectory(const PIDir & d) { dir = d; }
|
||||
|
||||
//! \~english Set directory by path
|
||||
//! \~russian Установить директорию по пути
|
||||
void setDirectory(const PIString & path) { dir.setDir(path); }
|
||||
|
||||
//! \~english Get directory
|
||||
//! \~russian Получить директорию
|
||||
PIDir directory() const { return dir; }
|
||||
|
||||
//! \~english Check if transfer is started
|
||||
//! \~russian Проверить, начата ли передача
|
||||
bool isStarted() const { return started_; }
|
||||
|
||||
//! \~english Get current file name
|
||||
//! \~russian Получить имя текущего файла
|
||||
PIString curFile() const;
|
||||
|
||||
//! \~english Get total bytes of current file
|
||||
//! \~russian Получить общее количество байт текущего файла
|
||||
llong bytesFileAll() const { return bytes_file_all; }
|
||||
|
||||
//! \~english Get current bytes of current file
|
||||
//! \~russian Получить текущие байты текущего файла
|
||||
llong bytesFileCur() const { return bytes_file_cur; }
|
||||
|
||||
//! \~english Get pointer to current file name
|
||||
//! \~russian Получить указатель на имя текущего файла
|
||||
const PIString * curFile_ptr() const { return &cur_file_string; }
|
||||
|
||||
//! \~english Get pointer to total bytes of current file
|
||||
//! \~russian Получить указатель на общее количество байт текущего файла
|
||||
const llong * bytesFileAll_ptr() const { return &bytes_file_all; }
|
||||
|
||||
//! \~english Get pointer to current bytes of current file
|
||||
//! \~russian Получить указатель на текущие байты текущего файла
|
||||
const llong * bytesFileCur_ptr() const { return &bytes_file_cur; }
|
||||
|
||||
EVENT(receiveFilesStarted);
|
||||
|
||||
Reference in New Issue
Block a user