Ananas Library 0.9.5
Класс aContainer

Класс предназначен для работы с контейнерами данных. Наследует QObject. Подробнее...

#include <acontainer.h>

Граф наследования:aContainer:

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

 aContainer ()
 Класс для работы с новым форматом обновлений
 
 aContainer (const QString &name)
 
virtual ~aContainer ()
 
virtual bool open ()
 
virtual bool open (const QString &name)
 
virtual void create ()
 
virtual void close ()
 
virtual bool save ()
 
virtual bool save (const QString &name)
 
virtual bool addFile (const QString &filename, const QString &newname, int type)
 
virtual QString realPath (const QString &fname) const
 
virtual QString lastError () const
 
void setLastError (const QString &errorText)
 
QString getFileContent (const QString &fileName) const
 

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

void generateName4TmpDir ()
 
bool createTmpDir ()
 
bool extractManifest (const QString &archName, aCManifest *mf)
 
bool extractData (const QString &archName)
 
bool compressFile (const QString &fileName)
 
void cleanupTmpFiles ()
 

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

Класс предназначен для работы с контейнерами данных. Наследует QObject.

Конструктор(ы)

◆ aContainer() [1/2]

aContainer::aContainer ( )

Класс для работы с новым форматом обновлений

Конструктор

◆ aContainer() [2/2]

aContainer::aContainer ( const QString & name)

Конструктор с именем

◆ ~aContainer()

aContainer::~aContainer ( )
virtual

Деструктор

Методы

◆ addFile()

bool aContainer::addFile ( const QString & filename,
const QString & newname,
int type )
virtual

Добавляет указанный файл в контейнер.

Аргументы
filename- полное имя файла
newname- относительное имя файла в контейнере. Должно указываться относительно корня контейнера, напр. "forms/form111.ui"
type- тип добавляемого файла. См. описание класса aCManifest для получения дополнительных сведений.
Возвращает
true в случае успеха

Перекрестные ссылки aCManifest::addEntry() и aLog::print().

◆ cleanupTmpFiles()

void aContainer::cleanupTmpFiles ( )
protected

Удаляет все временные файлы.

Перекрестные ссылки aCManifest::first(), aCManifest::next() и aLog::print().

Используется в close() и open().

◆ close()

void aContainer::close ( )
virtual

Закрывает контейнер. Не производит сохранение файлов перед закрытием. Удаляет все временные файлы.

Перекрестные ссылки cleanupTmpFiles().

Используется в open().

◆ compressFile()

bool aContainer::compressFile ( const QString & fileName)
protected

Физически добавляет в контейнер один файл. Т.е эта функция производит сжатие файлов, находящихся во временной директории в zip архив.

Аргументы
archName- имя файла в контейнере. ФУНКЦИЯ НЕ РАБОТАЕТ!
Возвращает
true в случае успеха

Перекрестные ссылки aLog::print() и setLastError().

Используется в save().

◆ create()

void aContainer::create ( )
virtual

Создает новый пустой контейнер.

Перекрестные ссылки aCManifest::create(), createTmpDir() и generateName4TmpDir().

◆ createTmpDir()

bool aContainer::createTmpDir ( )
protected

Создает временную директорию для распаковки.

Возвращает
true в случае успеха

Перекрестные ссылки aLog::print() и setLastError().

Используется в create() и open().

◆ extractData()

bool aContainer::extractData ( const QString & archName)
protected

Извлекает все файлы во временную директорию.

Аргументы
archName- имя контейнера
Возвращает
true в случае успеха

Перекрестные ссылки aLog::print() и setLastError().

Используется в open().

◆ extractManifest()

bool aContainer::extractManifest ( const QString & archName,
aCManifest * mf )
protected

Извлекает файл манифеста из контейнера. Этот файл называется всегда META-INF/manifest.xml

Аргументы
archName- имя контейнера
mf(out) - указатель на манифест.
Возвращает
true в случае успеха

Перекрестные ссылки aLog::print(), aCManifest::read() и setLastError().

Используется в open().

◆ generateName4TmpDir()

void aContainer::generateName4TmpDir ( )
protected

Генерирует новои имя для временной директории.

Используется в create() и open().

◆ lastError()

QString aContainer::lastError ( ) const
virtual

Получает текст последней ошибки.

Возвращает
errorText - текст ошибки
См. также
aContainer::setLastError(const QString& errorText)

◆ open() [1/2]

bool aContainer::open ( )
virtual

Открывает контейнер. Вы должны установить имя файла до вызова этой функции (в конструкторе) или использовать aContainer::open(const QString& name)

Возвращает
true в случае успеха, false в любом другом

Перекрестные ссылки open().

Используется в open().

◆ open() [2/2]

bool aContainer::open ( const QString & name)
virtual

Открывает контейнер. Вы должны установить имя файла до вызова этой функции (в конструкторе) или использовать aContainer::open(const QString& name) Под открытием подразумевается распаковка файлов во временный каталог.

Аргументы
name- имя файла
Возвращает
true в случае успеха, false в любом другом

Перекрестные ссылки cleanupTmpFiles(), close(), createTmpDir(), extractData(), extractManifest(), generateName4TmpDir() и aLog::print().

◆ realPath()

QString aContainer::realPath ( const QString & fname) const
virtual

Возвращает реальный путь к файлы, т.е. где он физически расположен на диске.

Аргументы
fname- относительный путь файла в контейнере
Возвращает
реальный путь к файлу.

◆ save() [1/2]

bool aContainer::save ( )
virtual

Функция сохранения контейнера и его содержимого. Имя файла должно быть установлено до вызова этой функции в конструкторе или aContainer::open(const QString& name)

Возвращает
true в случае успеха
См. также
aContainer::save(const QString& name)

Перекрестные ссылки save().

Используется в save().

◆ save() [2/2]

bool aContainer::save ( const QString & name)
virtual

Сохраняет контейнер. Будут сохранены только файлы, которые описаны в манифесте.

Аргументы
name- имя файла
Возвращает
true в случае успеха

Перекрестные ссылки compressFile(), aCManifest::first(), aCManifest::next(), aLog::print() и setLastError().

◆ setLastError()

void aContainer::setLastError ( const QString & errorText)

Устанавливает текст последней ошибки.

Аргументы
errorText- текст ошибки
См. также
aContainer::lastError()

Используется в compressFile(), createTmpDir(), extractData(), extractManifest() и save().


Объявления и описания членов классов находятся в файлах: