crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> правильная ли реализация, консольная утилита по обработке сетевого файла
rich
  опции профиля:
сообщение 6.8.2015, 23:31
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


Задача:
Написать консольную утилиту которая получает файл по сети, обрабатывает его неким образом и завершается.
Реализация:
main.cpp:
Раскрывающийся текст

#include <QCoreApplication>
#include <check.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    check *cck = new check();
    if (cck->can_check){
        cck->do_check();
    }
    QObject::connect(cck, SIGNAL(done()), &a, SLOT(quit()));
    return a.exec();
}



check.cpp:

Раскрывающийся текст

#include "check.h"

check::check(QObject *parent) :
    QObject(parent)
    db = QSqlDatabase::addDatabase("AVAILABLE_DRIVER");
    // Далее коннект к базе
    can_check = db.open();
    if (!can_check) emit done();
}

void check::do_check(){
    fd = new FileDownloader(QUrl("URL_TO_FILE"));
    connect(fd, SIGNAL(downloaded()), SLOT(pars_file()));
}

void check::pars_file(){
    QString file_content = QString(fd->downloadedData());
    //  Анализ файла. Пишем результат в базу, не зря ж коннектились
}



нашёл где-то
filedownloader.cpp:
Раскрывающийся текст

#include "filedownloader.h"

#include "filedownloader.h"

FileDownloader::FileDownloader(QUrl fileUrl, QObject *parent) :
    QObject(parent)
{
    connect(&m_WebCtrl, SIGNAL(finished(QNetworkReply*)),
                SLOT(fileDownloaded(QNetworkReply*)));
    //
    QNetworkRequest request(fileUrl);
    m_WebCtrl.get(request);
    //
}

void FileDownloader::fileDownloaded(QNetworkReply* pReply)
{
    m_DownloadedData = pReply->readAll();
    //emit a signal
    pReply->deleteLater();
    emit downloaded();
}

QByteArray FileDownloader::downloadedData() const
{
    return m_DownloadedData;
}



Так работает.
Не знаю что, но что-то мне не нравится.
А вам?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.12.2024, 5:26