Надо организовать очередь команд для отправки. Команда будет иметь 4 поля 1.

Тип команды
2. Статус команды(Ожидает отправки, Ожидает ответа, Получила ответ)
3. Время отправки
4. Значение передаваемое с командой
5. ID команды


Требования:

1. Что бы команда дожидалась ответа, а когда придёт ответ, тогда отправить следующую.
2. Если команда ждёт ответа больше 3 секунд, то удаляем эту команду.
3. Если при добавлении в список команд, там есть команда такого же типа, то мы не будем добавлять эту команду, а просто заменим значение передаваемое с командой на новое. Нечто похожее на это:

commandList[старая команда такого же типа].value = commandList[новая команда такого же типа].value

4. Если в списке комманд каким то образом окажется что 1 команда уже получила ответ, но не удалилась, то нужно её удалить и отправить следующую


В принципе QList меня устраивает за исключением того что иногда нужно удалить команду из списка не зная какую позицию она занимает в списке.
Вы скажите: "Перегрузи оператор == у структуры команды, и ищи её в списке по ID". Но для выполнения 4 го пунтка в списке требований, мне нужно перегрузить оператор == что бы он сравнивал типы команд, а не id.

Что делать?

Использовать использовать QMap где у каждой команды будет ещё один id?

2 ответов

6 просмотров
Дмитрий-Воронин Автор вопроса

Вот если бы ла функция contains но только туда разные виды сравнения передавать

Можно использовать std::find_if, и искать по какому угодно параметру

Похожие вопросы

Обсуждают сегодня

Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Вы когда из вики.... копировали, не обратили внимание на года(ы)? 😉 ==== если до 1917 года в Москве было около 15 000 легковых извозчиков, то к 1920 году их осталось 5 000, а ...
Igor Mitin
4
коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
На счёт замены разрабов нейронами: Вряд-ли заказчик сможет нормально пояснить нейросети, чё он хочет. Они то человеку нормально пояснить не могут, не то что нейросети. Так что...
Alex Kom
1
Что я могу сказать? Погуглите получше - чтобы узнать: 1. Что будет стоить содержание машины 2. Что будет стоить содержании лошади. P.S. Моя мысль о том, повторюсь еще раз,...
Igor Mitin
1
Слушайте, а при создании навигации на Tailor рили нельзя определять активный пункт навигации, как в Static Pages?
Pavel Lautsevich
11
Как Яндекс помог извозчику из 1914? ))) Более того, Яндекс условный уничтожил сверхдоходы уксусов в свое время Мне как пассажиру - каеф. Оодскульным ленивым и наглым таксиста...
Sergej R
1
Карта сайта