Russian Qt Forum

Qt => Работа с сетью => Тема начата: MontredoKing от Январь 23, 2015, 16:44



Название: Как правильно организовать работу класса в потоке
Отправлено: MontredoKing от Январь 23, 2015, 16:44
Здравствуйте, уважаемые форумчане!

Если вас не затруднит, хотел бы спросить у вас совета как правильно организовать класс в С++ (Qt). Сам класс будет отвечать за регистрацию аккаунта на определенном сайте (последовательность такова: регистрация аккаунта на основе временной почты, работа с сервисом временной почты для парсинга ссылки, подтверждение ссылки и некоторая работа с зарегистрированным аккаунтом).

Вопрос в основном состоит в том, как бы его (класс) использовать в потоке, так как QNetworkAccessManager по себе асинхронный, то работа в потоке отпадает, но мне это необходимо по простой причине - сайт не полюбит большое количество регистраций за раз и мне понадобится отслеживать работу класса. Решение как использовать QNetworkAccessManager синхронно я уже нашел. Но встал вопрос как правильно организовать саму работу класса - процедурно или через сигналы и слоты. Хотелось бы узнать как в данной ситуации поступить, как бы организовать. Желательно на словах.

Предполагается такая работа в коде потока:

Код:
    RegistrationClient client;
    client.execute();
    if (client.isSuccess) {
        emit registerNewUser(client.getLogin(), client.getPassword));
    }

Благодарю за внимание!


Название: Re: Как правильно организовать работу класса в потоке
Отправлено: gil9red от Январь 23, 2015, 19:36
Хотелось бы узнать подробнее о задачи :)


Название: Re: Как правильно организовать работу класс&#
Отправлено: MontredoKing от Январь 23, 2015, 20:02
Хотелось бы узнать подробнее о задачи :)

Последовательность в классе RegistrationClient для регистрации аккаунта:
1) Посылка POST-запроса с данными. Вместо электронной почты используется временная почта (сервис temp-mail.ru).
2) В композицию класса RegistrationClient входит класс TempMailClient (парсинг ссылки для активации зарегистрированного аккаунта).
3) В классе RegistrationClient создана функция bool httpGetMethodVerify(const QString &verifyUrl); для перехода по ссылке подтверждения активации.
4) Дальнейшие действия с подтвержденным аккаунтом.