PIP 5.6.1
Platform-Independent Primitives
Классы | Открытые типы | Открытые члены | Полный список членов класса
Класс PIFileTransfer

Класс для отправки и приема файлов и папок с помощью PIBaseTransfer. Подробнее...

#include <pifiletransfer.h>

Граф наследования:PIFileTransfer:
Inheritance graph
[см. легенду]

Классы

struct  PFTFileInfo
 Описание элемента файловой системы, расширенное относительным путем назначения. Подробнее...
 
struct  PFTHeader
 Пользовательский заголовок пакета, используемый протоколом передачи файлов. Подробнее...
 

Открытые типы

enum  StepType { pft_None , pft_Description , pft_Data }
 Этап протокола передачи файлов. Подробнее...
 

Открытые члены

 PIFileTransfer ()
 Создает пустой transfer файлов
 
 ~PIFileTransfer ()
 Деструктор
 
bool send (const PIFile &file)
 Отправляет один элемент файловой системы, заданный "file".
 
bool send (const PIString &file)
 Отправляет один файл или каталог по пути.
 
bool send (const PIStringList &files)
 Отправляет все файлы или каталоги из списка "files".
 
bool send (PIFile::FileInfo entry)
 Отправляет один элемент файловой системы, описанный "entry".
 
bool send (PIVector< PIFile::FileInfo > entries)
 Отправляет элементы файловой системы из "entries", рекурсивно раскрывая каталоги.
 
void setDirectory (const PIDir &d)
 Устанавливает каталог назначения для принимаемых файлов.
 
void setDirectory (const PIString &path)
 Устанавливает каталог назначения для принимаемых файлов по пути. Установить директорию по пути
 
PIDir directory () const
 Возвращает каталог назначения для принимаемых файлов.
 
bool isStarted () const
 Возвращает, активен ли общий процесс передачи файлов.
 
PIString curFile () const
 Возвращает путь текущего файла или строку состояния сканирования.
 
llong bytesFileAll () const
 Возвращает общий размер текущего обрабатываемого файла.
 
llong bytesFileCur () const
 Возвращает уже обработанный объем текущего файла.
 
const PIStringcurFile_ptr () const
 Получить указатель на имя текущего файла
 
const llong * bytesFileAll_ptr () const
 Получить указатель на общее количество байт текущего файла
 
const llong * bytesFileCur_ptr () const
 Получить указатель на текущие байты текущего файла
 
- Открытые члены унаследованные от PIBaseTransfer
 PIBaseTransfer ()
 Создает передачу с размером пакета, таймаутом и диагностикой по умолчанию.
 
 ~PIBaseTransfer ()
 Останавливает активное состояние передачи и встроенную диагностику.
 
void stopSend ()
 Запрашивает отмену текущей сессии отправки.
 
void stopReceive ()
 Запрашивает отмену текущей сессии приема.
 
bool isSending () const
 Возвращает, активна ли сессия отправки.
 
bool isReceiving () const
 Возвращает, активна ли сессия приема.
 
bool isPause () const
 Возвращает, находится ли передача сейчас на паузе.
 
void setPause (bool pause_)
 Переключает текущую сессию между состояниями паузы и продолжения.
 
void setPacketSize (int size)
 Устанавливает максимальный размер кодированного пакета в байтах.
 
int packetSize () const
 Возвращает максимальный размер кодированного пакета в байтах.
 
void setTimeout (double sec)
 Устанавливает таймаут сессии в секундах для согласования старта, подтверждений и восстановления после паузы.
 
double timeout () const
 Возвращает таймаут сессии в секундах.
 
void setCRCEnabled (bool en=true)
 Включает или выключает проверку CRC для пакетов данных.
 
bool isCRCEnabled () const
 Возвращает, включена ли проверка CRC.
 
PIString stateString () const
 Возвращает краткое текстовое состояние текущей сессии.
 
PIString packetMap () const
 Возвращает карту успешно принятых или переданных пакетов для текущей сессии.
 
llong bytesAll () const
 Возвращает общее число байтов, запланированных для текущей сессии.
 
llong bytesCur () const
 Возвращает число байтов, уже обработанных в текущей сессии.
 
const PIDiagnosticsdiagnostic ()
 Получить объект диагностики Подробнее...
 
void received (PIByteArray data)
 Обрабатывает один закодированный пакет, полученный от внешнего транспорта. Подробнее...
 
void stop ()
 Останавливает и отправку, и прием текущей сессии. Подробнее...
 
void pause ()
 Переводит текущую сессию в состояние паузы. Подробнее...
 
void resume ()
 Продолжает текущую приостановленную сессию. Подробнее...
 
void receiveStarted ()
 Генерируется, когда сессия приема принята и инициализирована. Подробнее...
 
void paused ()
 Генерируется, когда передача переходит в состояние паузы. Подробнее...
 
void resumed ()
 Генерируется, когда передача выходит из состояния паузы. Подробнее...
 
void receiveFinished (bool ok)
 Генерируется, когда сессия приема завершается с результатом "ok". Подробнее...
 
void sendStarted ()
 Генерируется при запуске подготовленной сессии отправки. Подробнее...
 
void sendFinished (bool ok)
 Генерируется, когда сессия отправки завершается с результатом "ok". Подробнее...
 
void sendRequest (PIByteArray &data)
 Генерируется для каждого закодированного пакета, который нужно записать во внешний транспорт. Подробнее...
 
- Открытые члены унаследованные от PIObject
 PIObject (const PIString &name=PIString())
 Создает объект и инициализирует его свойство name.
 
virtual ~PIObject ()
 Уничтожает объект, вызывает deleted() и отключает его от событийного графа.
 
PIString name () const
 Возвращает свойство name этого объекта.
 
virtual const char * className () const
 Возвращает зарегистрированное имя класса этого объекта.
 
virtual uint classNameID () const
 Возвращает хэш от className().
 
virtual const char * parentClassName () const
 Возвращает зарегистрированное имя родительского класса, либо пустую строку для корня.
 
bool debug () const
 Возвращает, включен ли вывод piCoutObj для этого объекта.
 
void setName (const PIString &name)
 Устанавливает свойство name этого объекта.
 
void setDebug (bool debug)
 Включает или отключает вывод piCoutObj для этого объекта.
 
PIVariant property (const char *name) const
 Возвращает свойство объекта по имени "name".
 
void setProperty (const char *name, const PIVariant &value)
 Устанавливает свойство "name" в значение "value" и создаёт его при необходимости. Подробнее...
 
bool isPropertyExists (const char *name) const
 Возвращает, существует ли свойство "name".
 
void setThreadSafe (bool yes)
 Включает или отключает внутренний мьютекс объекта во время выполнения обработчиков. Подробнее...
 
bool isThreadSafe () const
 Возвращает, включен ли внутренний мьютекс объекта для выполнения обработчиков.
 
bool execute (const PIString &method, const PIVector< PIVariantSimple > &vl)
 Выполняет зарегистрированный метод или метод-обработчик по имени с переданными аргументами. Подробнее...
 
bool execute (const PIString &method)
 Перегрузка execute() для метода без аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0)
 Перегрузка execute() для одного аргумента.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка execute() для двух аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка execute() для трёх аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка execute() для четырёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Ставит выполнение зарегистрированного метода в очередь объекта-исполнителя. Подробнее...
 
bool executeQueued (PIObject *performer, const PIString &method)
 Перегрузка executeQueued() для метода без аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Перегрузка executeQueued() для одного аргумента.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка executeQueued() для двух аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка executeQueued() для трёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка executeQueued() для четырёх аргументов.
 
void dump (const PIString &line_prefix=PIString()) const
 Выводит диагностическую информацию об объекте в проектный поток вывода.
 
PIStringList scopeList () const
 Возвращает зарегистрированную цепочку наследования объекта, включая его собственный класс.
 
PIStringList methodsEH () const
 Возвращает полные сигнатуры всех зарегистрированных событий и обработчиков для области этого класса.
 
bool isMethodEHContains (const PIString &name) const
 Возвращает, существует ли зарегистрированное событие или обработчик с таким именем.
 
PIString methodEHArguments (const PIString &name) const
 Возвращает список типов аргументов зарегистрированного метода через запятую.
 
PIString methodEHFullFormat (const PIString &name) const
 Возвращает полную зарегистрированную сигнатуру метода.
 
PIString methodEHFromAddr (const void *addr) const
 Возвращает имя зарегистрированного метода для указанного адреса точки входа.
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения этого объекта-источника с конкретным обработчиком объекта-приемника для события "sig".
 
void piDisconnect (const PIString &sig, PIObject *dest)
 Разрывает все соединения этого объекта-источника от события "sig" к объекту-приемнику "dest".
 
void piDisconnect (const PIString &sig)
 Разрывает все соединения этого объекта-источника от события "sig".
 
bool isPIObject () const
 Возвращает, указывает ли этот указатель на ещё существующий экземпляр PIObject.
 
template<typename T >
bool isTypeOf () const
 Возвращает, принадлежит ли этот объект классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
T * cast () const
 Возвращает этот объект, приведённый к типу "T", если isTypeOf<T>() успешно, иначе nullptr.
 
void callQueuedEvents ()
 Выполняет все отложенные доставки, поставленные в очередь этому объекту-исполнителю.
 
bool maybeCallQueuedEvents ()
 Выполняет отложенные доставки только если этот объект использовался как исполнитель. Подробнее...
 
void deleteLater ()
 Планирует отложенное удаление объекта. Подробнее...
 
void deleted (PIObject *o)
 Вызывается непосредственно перед уничтожением объекта. Подробнее...
 

Events

void receiveFilesStarted ()
 Генерируется при запуске нового входящего процесса передачи файлов.
 
void receiveFilesFinished (bool ok)
 Генерируется, когда прием файлов завершается с результатом "ok".
 
void sendFilesStarted ()
 Генерируется при начале подготовки и отправки файлов.
 
void sendFilesFinished (bool ok)
 Генерируется, когда отправка файлов завершается с результатом "ok".
 
void receiveFilesRequest (PIStringList files, llong total_bytes, bool *ok)
 Генерируется после фазы описания, чтобы пользовательский код мог принять или отклонить входящий набор файлов.
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от PIBaseTransfer
static uint packetSignature ()
 Возвращает константу сигнатуры пакета, используемую протоколом.
 
- Открытые статические члены унаследованные от PIObject
static bool execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над execute().
 
static bool execute (PIObject *o, const PIString &method)
 Статическая перегрузка execute() без аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка execute() для одного аргумента.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка execute() для двух аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка execute() для трёх аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка execute() для четырёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над executeQueued().
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method)
 Статическая перегрузка executeQueued() без аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка executeQueued() для одного аргумента.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка executeQueued() для двух аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка executeQueued() для трёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка executeQueued() для четырёх аргументов.
 
static PIObject::Connection piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc)
 Низкоуровневый помощник прямого соединения, лежащий под устаревшими макросами CONNECT*.
 
static PIObject::Connection piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0)
 Низкоуровневый помощник соединения по имени, лежащий под CONNECTU() и CONNECTU_QUEUED().
 
static PIObject::Connection piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc)
 Низкоуровневый помощник, который соединяет событие с лямбдой или обёрткой функтора.
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения объекта-источника "src" с конкретным обработчиком объекта-приемника для события "sig".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Разрывает все соединения объекта-источника "src" от события "sig" к объекту-приемнику "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Разрывает все соединения объекта-источника "src" от события "sig".
 
static void raiseEvent (PIObject *sender, const uint eventID)
 Внутренний помощник доставки для зарегистрированных событий без аргументов.
 
template<typename T0 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0())
 Внутренний помощник доставки для зарегистрированных событий с одним аргументом.
 
template<typename T0 , typename T1 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1())
 Внутренний помощник доставки для зарегистрированных событий с двумя аргументами.
 
template<typename T0 , typename T1 , typename T2 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2())
 Внутренний помощник доставки для зарегистрированных событий с тремя аргументами.
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3())
 Внутренний помощник доставки для зарегистрированных событий с четырьмя аргументами.
 
static PIObjectfindByName (const PIString &name)
 Возвращает первый живой объект с именем "name", либо nullptr.
 
static bool isPIObject (const PIObject *o)
 Возвращает, указывает ли "o" на ещё существующий экземпляр PIObject.
 
static bool isPIObject (const void *o)
 Перегрузка isPIObject() для нетипизированного указателя.
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Возвращает, принадлежит ли "o" классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
static bool isTypeOf (const void *o)
 Перегрузка isTypeOf() для нетипизированного указателя.
 
static PIString simplifyType (const char *a, bool readable=true)
 Упрощает запись типа C++ для метаданных зарегистрированных методов.
 
- Защищенные члены унаследованные от PIBaseTransfer
void buildSession (PIVector< Part > parts)
 
virtual PIByteArray buildPacket (Part fi)=0
 Возвращает байты полезной нагрузки для одного запрошенного логического фрагмента.
 
virtual void receivePart (Part fi, PIByteArray ba, PIByteArray pheader)=0
 Обрабатывает один принятый логический фрагмент и необязательный пользовательский заголовок пакета.
 
virtual void beginReceive ()
 Вызывается после принятия и инициализации новой сессии приема.
 
virtual PIByteArray customHeader ()
 Пользовательский заголовок
 
bool send_process ()
 Выполняет подготовленную сессию отправки до успеха, ошибки или отмены.
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает объект-источник, который вызвал текущее событие. Подробнее...
 
virtual void propertyChanged (const char *name)
 Виртуальный метод, вызываемый после изменения свойства "name" через setProperty().
 

Подробное описание

Класс для отправки и приема файлов и папок с помощью PIBaseTransfer.

Перечисления

◆ StepType

Этап протокола передачи файлов.

Элементы перечислений
pft_None 

Активный этап отсутствует

pft_Description 

Обмен списком файлов и метаданными

pft_Data 

Обмен блоками данных файлов