Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.05.2020
Сообщений: 1

Как связать разные части приложения?

18.05.2020, 14:22. Показов 685. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день!

Я пишу приложение на C++.

При старте оно создает 2 потока:
-- в первом потоке (LoginScreen) идет основной цикл приложения, где есть форма авторизации. Когда пользователь вводит логин и пароль, они улетают к серверу через сокет соединение, при этом текстовые поля и кнопка становятся в состояние disabled.
-- во втором потоке идет работа с сетью -- в нем слушается сокет, и когда прилетают какие-то пакеты -- они обрабатываются.

Проблема -- я не знаю каким образом полученный во втором потоке пакет об успешной авторизации пробросить в класс LoginScreen.

Я знаю, что есть паттерн посредник ( https://refactoring.guru/ru/de... pp/example ), но не представляю как его использовать в двух абсолютно не связанных областях.
Знаю, что можно использовать LoginScreen как статичный класс (как singleton), но не уверен, что это норм для него, потому что там есть куча других вещей, которые я не представляю как использовать через getInstance()
C++
1
2
3
4
5
6
7
public:
    LoginScreen();
 
    virtual void onAttach() override;
    virtual void onDetach() override;
    void onUpdate() override;
    void onEvent(Event& event) override;
Что в таких случаях делают крупные проекты, чтобы решать такие задачи?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2020, 14:22
Ответы с готовыми решениями:

Как связать табличные части
Здраствуйте, есть документ в котором есть поле, в котором содержится 3 вида заявок на закупки, так вот дело в том что с документа я эти 3...

Как связать две разные страницы на локальных серверах?
То есть я имею ввиду: мы же делаем сайты сохраняя в виде html файлов, так как их связать в один проект? Чтобы не было <a href="...

Как связать две части кода?
Дорогие друзья, продолжаю мучения с моим кодом подсчета устойчивых словосочетаний в стихотворных строках. Я кажется понял, как это...

1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.05.2020, 20:45
Цитата Сообщение от qwofer Посмотреть сообщение
Что в таких случаях делают крупные проекты, чтобы решать такие задачи?
событийно-управляемая модель.

некоторый механизм выполняет некоторую работу.
и в какой то момент излучает событие:
сообщает всем заинтересованным лицам о статусе своей работы.

https://ideone.com/lmN3u0


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <functional>
#include <iostream>
#include <string>
 
struct net
{
    void work() 
    { 
        std::cout << "net: working...\n"; 
        if(this->onEvent)
            this->onEvent("access is allowed");
    }
    
    std::function<void(const std::string&)> 
        onEvent;
};
 
int main() 
{
    const auto reaction = [](const auto& answer){ 
        std::cout << "event: " << answer << '\n';  
    };
    
    net agent;
    agent.onEvent = reaction;
    agent.work();
}
здесь механизм net имитирует работу сетевого движка.
он запускает коллбек, что бы оповестить внешний мир о том,
что вернул сервер.

"внешний мир" в лице функции main, в качестве коллбека устанавливает лямбду.
в данном примере результат просто печатается в консоль.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2020, 20:45
Помогаю со студенческими работами здесь

Как связать две поля из форм, у полей разные типы
Здравствуйте, не могу понять как осуществить связь полей на форме, так что бы при нажатии на кнопу сохранить эти данные отобразились в...

Как связать кнопки клавиатуры и приложения...
У меня клавиатура с дополнительными клавишами(&quot;Поиск, Почта, Интернет&quot;). Как связать доп. клавиши с запуском приложений?

C++ модульная структура. Как разделить код на разные самостоятельные части и подключить их
1. У меня задача стоит в том чтоб разбить код на отдельные куски и подключить с помощью файла заголовка .h, а именно int Armin она ищет...

Как разным формам одного приложения назначить разные иконки?
собсна вопрос в голове

Web. связать 2 разные конфигурации
нужно связать между собой две РАЗНЫХ конфигурации ,одна на мобильном устройстве,другая центральная база,это можно сделать ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru