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

Локальный файл. Подробнее...

#include <pifile.h>

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

Классы

struct  FileInfo
 Информация о локальном файле или директории. Подробнее...
 

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

 PIFile ()
 Создает файл с пустым путём.
 
 PIFile (const PIString &path, DeviceMode mode=ReadWrite)
 Создает файл с путём "path" и режимом открытия "mode". Открывает если "path" не пустой.
 
bool openTemporary (PIIODevice::DeviceMode mode=PIIODevice::ReadWrite)
 Открывает временный файл с режимом открытия "mode".
 
void flush () override
 Немедленно записывает все буферизированные данные на диск.
 
void seek (llong position)
 Перемещает позицию чтения/записи на "position".
 
void seekToBegin ()
 Перемещает позицию чтения/записи на начало файла.
 
void seekToEnd ()
 Перемещает позицию чтения/записи на конец файла.
 
void seekToLine (llong line)
 Перемещает позицию чтения/записи на начало текстовой строки номер "line".
 
void skip (llong bytes)
 Пропускает "bytes" байт (перемещает позицию на "bytes" байт вперёд).
 
char readChar ()
 Читает один байт и возвращает его.
 
llong readAll (void *data)
 Читает всё содержимое файла в "data" и возвращает количество прочитанных байт. Позиция остаётся неизменной.
 
PIByteArray readAll ()
 Читает всё содержимое файла и возвращает его как массив байтов. Позиция остаётся неизменной.
 
void setPath (const PIString &path)
 Устанавливает путь файла на "path" и переоткрывает его при необходимости.
 
llong size () const
 Возвращает размер файла в байтах.
 
ssize_t bytesAvailable () const override
 Возвращает количество байт доступных для чтения. Подробнее...
 
llong pos () const
 Возвращает позицию чтения/записи.
 
bool isEnd () const
 Возвращает достигнут ли конец файла.
 
bool isEmpty () const
 Возвращает пустой ли файл.
 
FileInfo fileInfo () const
 Возвращает PIFile::FileInfo текущего файла.
 
PIFileput (const PIByteArray &v)
 Пишет в файл размер и содержимое "v" (сериализация).
 
PIByteArray get ()
 Читает из файла размер байтового массива и его содержимое (десериализация).
 
- Открытые члены унаследованные от PIIODevice
 PIIODevice ()
 Создает пустой PIIODevice.
 
 PIIODevice (const PIString &path, DeviceMode mode=ReadWrite)
 Создает PIIODevice с путём "path" и режимом открытия "mode".
 
virtual ~PIIODevice ()
 Уничтожает базовый объект устройства.
 
DeviceMode mode () const
 Возвращает текущий режим открытия.
 
void setMode (DeviceMode m)
 Устанавливает режим открытия без переоткрытия устройства.
 
DeviceOptions options () const
 Возвращает текущие опции устройства.
 
bool isOptionSet (DeviceOption o) const
 Возвращает, включена ли опция "o".
 
void setOptions (DeviceOptions o)
 Полностью заменяет текущие опции устройства на "o".
 
bool setOption (DeviceOption o, bool yes=true)
 Устанавливает опцию "o" в состояние "yes" и возвращает её предыдущее состояние.
 
DeviceInfoFlags infoFlags () const
 Возвращает характеристики канала устройства.
 
PIString path () const
 Возвращает текущий путь устройства.
 
void setPath (const PIString &path)
 Устанавливает путь устройства без его переоткрытия.
 
bool isReadable () const
 Возвращает, разрешает ли текущий режим чтение.
 
bool isWriteable () const
 Возвращает, разрешает ли текущий режим запись.
 
bool isOpened () const
 Возвращает, открыто ли сейчас устройство.
 
bool isClosed () const
 Возвращает, закрыто ли сейчас устройство.
 
virtual bool canRead () const
 Возвращает, возможно ли чтение прямо сейчас.
 
virtual bool canWrite () const
 Возвращает, возможна ли запись прямо сейчас.
 
void setReopenEnabled (bool yes=true)
 Включает или выключает автоматические попытки переоткрытия при потоковом чтении.
 
void setReopenTimeout (PISystemTime timeout)
 Устанавливает задержку между автоматическими попытками переоткрытия.
 
bool isReopenEnabled () const
 Возвращает, включено ли автоматическое переоткрытие.
 
PISystemTime reopenTimeout ()
 Возвращает задержку между автоматическими попытками переоткрытия.
 
void setThreadedReadSlot (ReadRetFunc func)
 Устанавливает callback, вызываемый после успешного потокового чтения. Подробнее...
 
void setThreadedReadData (void *d)
 Устанавливает пользовательские данные, передаваемые в callback потокового чтения.
 
void setThreadedReadBufferSize (int new_size)
 Устанавливает размер буфера фонового чтения в байтах. Подробнее...
 
int threadedReadBufferSize () const
 Возвращает размер буфера фонового чтения в байтах.
 
const uchar * threadedReadBuffer () const
 Возвращает указатель на внутренний буфер потокового чтения.
 
void * threadedReadData () const
 Возвращает пользовательские данные, передаваемые в callback потокового чтения.
 
bool isThreadedRead () const
 Возвращает, запущено ли потоковое чтение.
 
bool isThreadedReadStopping () const
 Возвращает, находится ли потоковое чтение в процессе остановки.
 
void startThreadedRead ()
 Запускает потоковое чтение.
 
void startThreadedRead (ReadRetFunc func)
 Устанавливает callback потокового чтения в "func" и запускает потоковое чтение.
 
void stopThreadedRead ()
 Запрашивает остановку потокового чтения.
 
void terminateThreadedRead ()
 Прерывает потоковое чтение. Подробнее...
 
bool waitThreadedReadFinished (PISystemTime timeout={})
 Ожидает завершения потокового чтения, но не дольше "timeout".
 
uint threadedReadTimeout () const
 Возвращает задержку между безуспешными попытками потокового чтения в миллисекундах.
 
void setThreadedReadTimeout (uint ms)
 Устанавливает задержку между безуспешными попытками потокового чтения в миллисекундах.
 
bool isThreadedWrite () const
 Возвращает, запущена ли потоковая запись.
 
void startThreadedWrite ()
 Запускает потоковую запись.
 
void stopThreadedWrite ()
 Запрашивает остановку потоковой записи.
 
void terminateThreadedWrite ()
 Прерывает потоковую запись. Подробнее...
 
bool waitThreadedWriteFinished (PISystemTime timeout={})
 Ожидает завершения потоковой записи, но не дольше "timeout".
 
void clearThreadedWriteQueue ()
 Очищает очередь заданий потоковой записи.
 
void start ()
 Запускает потоковое чтение и потоковую запись.
 
void stop ()
 Запрашивает остановку потокового чтения и потоковой записи.
 
void stopAndWait (PISystemTime timeout={})
 Останавливает оба фоновых потока и ожидает их завершения.
 
virtual void interrupt ()
 Прерывает блокирующую операцию устройства.
 
ssize_t read (void *read_to, ssize_t max_size)
 Читает в "read_to" не более "max_size" байт.
 
ssize_t read (PIMemoryBlock mb)
 Читает данные в блок памяти "mb".
 
PIByteArray read (ssize_t max_size)
 Читает не более "max_size" байт и возвращает их как PIByteArray.
 
virtual ssize_t bytesAvailable () const
 Возвращает количество байт доступных для чтения. Подробнее...
 
ssize_t write (const void *data, ssize_t max_size)
 Записывает из "data" не более "max_size" байт.
 
PIByteArray readForTime (PISystemTime timeout)
 Читает данные в течение "timeout" и возвращает накопленные байты.
 
ullong writeThreaded (const void *data, ssize_t max_size)
 Помещает "data" в очередь потоковой записи и возвращает ID задания.
 
ullong writeThreaded (const PIByteArray &data)
 Помещает массив байт "data" в очередь потоковой записи и возвращает ID задания.
 
bool configure (const PIString &config_file, const PIString &section, bool parent_section=false)
 Настраивает устройство из секции "section" файла "config_file". Подробнее...
 
virtual PIConstChars fullPathPrefix () const
 Возвращает префикс устройства, используемый в полной строке пути. Creating devices by unambiguous string.
 
PIString constructFullPath () const
 Возвращает полную строку описания этого устройства, fullPathPrefix() + "://" + ...
 
void configureFromFullPath (const PIString &full_path)
 Настраивает устройство из параметров полной строки описания.
 
PIVariantTypes::IODevice constructVariant () const
 Создает описание PIVariantTypes::IODevice для этого устройства.
 
void configureFromVariant (const PIVariantTypes::IODevice &d)
 Настраивает устройство из PIVariantTypes::IODevice.
 
ssize_t write (const PIMemoryBlock &mb)
 Записывает в устройство блок памяти "mb".
 
bool open ()
 Открывает устройство с текущими путём и режимом.
 
bool open (const PIString &_path)
 Открывает устройство с путём "path".
 
bool open (DeviceMode _mode)
 Открывает устройство с режимом "mode".
 
bool open (const PIString &_path, DeviceMode _mode)
 Открывает устройство с путём "path" и режимом "mode".
 
bool close ()
 Закрывает устройство.
 
ssize_t write (PIByteArray data)
 Записывает "data" в устройство.
 
void opened ()
 Вызывается после успешного открытия.
 
void closed ()
 Вызывается после успешного закрытия.
 
void threadedReadEvent (const uchar *readed, ssize_t size)
 Вызывается после того, как потоковое чтение получило данные.
 
void threadedWriteEvent (ullong id, ssize_t written_size)
 Вызывается после того, как потоковая запись обработала задание с ID "id".
 
- Открытые члены унаследованные от 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)
 Вызывается непосредственно перед уничтожением объекта. Подробнее...
 

Открытые статические члены

static bool isExists (const PIString &path)
 Возвращает существует ли файл с путём "path".
 
static bool remove (const PIString &path)
 Удаляет файл с путём "path" и возвращает успешность операции.
 
static bool rename (const PIString &from, const PIString &to)
 Переименовывает файл с путём "from" на "to" и возвращает успешность операции.
 
static FileInfo fileInfo (const PIString &path)
 Возвращает PIFile::FileInfo файла или директории с путём "path".
 
static bool applyFileInfo (const PIString &path, const FileInfo &info)
 Применяет параметры "info" к файлу или директории с путём "path".
 
static bool applyFileInfo (const FileInfo &info)
 Применяет параметры "info" к файлу или директории с путём "info".path.
 
static PIByteArray readAll (const PIString &path)
 Читает всё содержимое файла по пути "path" и возвращает его как массив байтов.
 
static int writeAll (const PIString &path, const PIByteArray &data)
 Очищает файл по пути "path", пишет туда "data" и возвращает количество записанных байт.
 
- Открытые статические члены унаследованные от PIIODevice
static PIIODevicecreateFromFullPath (const PIString &full_path)
 Пытается создать новое устройство по префиксу, настраивает с помощью configureFromFullPath() и возвращает его. Подробнее...
 
static PIIODevicecreateFromVariant (const PIVariantTypes::IODevice &d)
 Пытается создать новое устройство по префиксу, настраивает с помощью configureFromVariant() и возвращает его.
 
static PIString normalizeFullPath (const PIString &full_path)
 Возвращает нормализованную полную строку пути для "full_path".
 
static void splitFullPath (PIString fpwm, PIString *full_path, DeviceMode *mode=0, DeviceOptions *opts=0)
 Разбирает полную строку пути на путь, режим и опции.
 
static PIStringList availablePrefixes ()
 Возвращает префиксы всех зарегистрированных устройств
 
static PIStringList availableClasses ()
 Возвращает имена классов всех зарегистрированных устройств.
 
- Открытые статические члены унаследованные от 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++ для метаданных зарегистрированных методов.
 

Защищенные члены

PIString constructFullPathDevice () const override
 Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path().
 
void configureFromFullPathDevice (const PIString &full_path) override
 Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath().
 
PIPropertyStorage constructVariantDevice () const override
 Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path".
 
void configureFromVariantDevice (const PIPropertyStorage &d) override
 Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path".
 
ssize_t readDevice (void *read_to, ssize_t max_size) override
 Переопределите для чтения данных из устройства
 
ssize_t writeDevice (const void *data, ssize_t max_size) override
 Переопределите для записи данных в устройство
 
bool openDevice () override
 Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()!
 
bool closeDevice () override
 Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_".
 
DeviceInfoFlags deviceInfoFlags () const override
 Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0.
 
- Защищенные члены унаследованные от PIIODevice
virtual bool configureDevice (const void *e_main, const void *e_parent=0)
 Переопределите для настройки устройства из записей "e_main" и необязательной "e_parent", приведённых к PIConfig::Entry*.
 
virtual bool openDevice ()=0
 Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()!
 
virtual bool closeDevice ()
 Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_".
 
virtual ssize_t readDevice (void *read_to, ssize_t max_size)
 Переопределите для чтения данных из устройства
 
virtual ssize_t writeDevice (const void *data, ssize_t max_size)
 Переопределите для записи данных в устройство
 
virtual bool threadedRead (const uchar *readed, ssize_t size)
 Вызывается после успешного потокового чтения; по умолчанию вызывает внешний callback, заданный через setThreadedReadSlot().
 
virtual PIString constructFullPathDevice () const
 Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path().
 
virtual void configureFromFullPathDevice (const PIString &full_path)
 Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath().
 
virtual PIPropertyStorage constructVariantDevice () const
 Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path".
 
virtual void configureFromVariantDevice (const PIPropertyStorage &d)
 Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path".
 
virtual void optionsChanged ()
 Переопределите для реакции на изменение опций устройства.
 
virtual DeviceInfoFlags deviceInfoFlags () const
 Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0.
 
virtual void threadedReadBufferSizeChanged ()
 Переопределите для реакции на новое значение threadedReadBufferSize().
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает объект-источник, который вызвал текущее событие. Подробнее...
 
virtual void propertyChanged (const char *name)
 Виртуальный метод, вызываемый после изменения свойства "name" через setProperty().
 

Handlers

void clear ()
 Очищает содержимое файла.
 
void remove ()
 Удаляет файл.
 
void resize (llong new_size)
 Изменяет размер файла на "new_size" с заполнением нулевыми байтами.
 
void resize (llong new_size, uchar fill)
 Изменяет размер файла на "new_size" с заполнением байтами "fill".
 

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

- Открытые типы унаследованные от PIIODevice
enum  DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 }
 Режимы открытия PIIODevice. Подробнее...
 
enum  DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 }
 Общие опции, поддерживаемые некоторыми устройствами. Подробнее...
 
enum  DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 }
 Характеристики канала устройства. Подробнее...
 
typedef PIFlags< DeviceOptionDeviceOptions
 Битовая маска значений DeviceOption.
 
typedef PIFlags< DeviceInfoFlagDeviceInfoFlags
 Битовая маска значений DeviceInfoFlag.
 
- Открытые атрибуты унаследованные от PIIODevice
bool reopenEnabled
 setReopenEnabled, по умолчанию "true".
 
int reopenTimeout
 setReopenTimeout, по умолчанию 1_s.
 
int threadedReadBufferSize
 setThreadedReadBufferSize в байтах, по умолчанию 4096.
 

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

Локальный файл.

PIFile предоставляет интерфейс для операций с локальными файлами, включая чтение, запись, позиционирование и управление файлами.

Краткий обзор

Этот класс предоставляет доступ к локальному файлу. Можно работать на байтовом уровне, либо использовать его как текстовый поток. Для байтового доступа используются методы read(), write(), и много writeBinary() методов. Для записи и чтения переменных в текстовом представлении используются операторы "<<" и ">>".

Позиция

Каждый файл имеет позицию чтения/записи - логическое положение в содержимом файла, откуда производится чтение или запись. Узнать текущую позицию можно с помощью метода pos(). Метод seek(llong position) перемещает позицию на указанную, seekToBegin() перемещает её в начало файла, а seekToEnd() - в конец.

Методы

◆ bytesAvailable()

ssize_t PIFile::bytesAvailable ( ) const
inlineoverridevirtual

Возвращает количество байт доступных для чтения.

Эта функция как правило используется чтобы знать какой размер буфера нужен в памяти для чтения. Если функция возвращает -1 это значит что количество байт для чтения не известно.

Переопределяет метод предка PIIODevice.