LINUX.ORG.RU

Сообщения hell_wood

 

Qt вэб сокеты, пуш уведомления

Форум — Development

Добрый день, прошу помощь в указании направления куда копать, так скажем. В общем, есть вэб сервер на торнадо (стандартный набор для сервера пуш уведомления для работы с sockJs), с вэб браузером все работает, пуш уведомления и т.п Но появилась необходимость написать приложение на Qt чтобы оно могло принимать все эти пуш уведомления. В какую сторону копать? С чего начать? Заранее благодарен.

 ,

hell_wood
()

qt'ешные потоки и события over and over

Форум — Development

Доброго вечера. Наткнулся тут на статьи «вы делаете это не правильно». Интересно. Только осталось пара не понятных моментов. В общем: 1. Если я хочу чтобы один класс выполнялся в своем потоке могу ли я его переносить туда в контструкторе? Что-то на подобии этого:

SuperClass::SuperClass() {
  QThread *thread = new QThread();
  this->moveToThread(thread);
  thread->start();  
  QObject::connect(thread, SIGNAL(started()), this, SLOT(start()));
}
2. Есть у меня в классе структура, переменная etc которую могут менять в разных потоках. Можно ли в таком случае использовать слоты/сигналы без мютекса? Как-то так:
void SuperClass::changeStruct(int newValue) {
  // вызываем сигнал класса SuperClass
  emit changeValue(newValue);
}

void SuperClass::changeStructSlot(int newValue) {
  // Слот класса SuperClass который будет обрабатываться в своем потоке
  this._struct.val = newValue;
}
Оправданны ли такие решения?

 , , , ,

hell_wood
()

Вопрос по структуру приложения

Форум — Development

Добрый день, подскажите, пожалуйста, как лучше организовать общую структуру приложения. Что имеем: 1. Класс для работы с некой периферией (Class Periph) - занимается тем, что настраивает периферию и принимает с нее данные. 2. Класс для работы с данными полученными от периферии (Class DataParser). 3. Класс для логирования (Class Loging).

Принцип работы такой: пришли данные от периферии - мы их должны положить в очередь класса (DataParser). Потом в этом классе эти данные разбираются и т.д. Вопрос как лучше организовать передачу этих данных? Как-то находил пример подобного приложения, там было сделано так: каждый экземпляр класса был объявлен глобально, но по плюсам обычно крайне не рекомендуют использовать вообще глобальные переменные. Ну и опять же доступ к классу логирования, когда потребность записать лог может возникнуть в любом методе любого класса.

 ,

hell_wood
()

c++ boosts::signals(2)

Форум — Development

Доброго вечера. Прошу у опытных товарищей не большого разъяснения по сабжу. Если мы ловим сигналы в одном потоке все понятно. А если в разных? Грубо говоря, первый поток вызывает сигнал, этот сигнал должен ловиться во втором потоке. Но если у нас во втором потоке крутится бесконечный цикл, то как тогда он отработает этот сигнал?

 , ,

hell_wood
()

Слушать несколько портов.

Форум — Development

Всем привет, есть потребность слушать одновременно несколько TCP портов (кол-во может быть от 20 до 100). Естественно на каждый порт будут стучаться клиенты, слать сообщений и т.п В качестве обработчика планирую использовать LibEvent, ранее делал с ним приложение, но слушал только один порт. Поэтому вопрос как лучше смоделировать приложение в моем случае? Сделать одно приложение, но создавать для каждого порта свой поток (pthread) или под каждый тсп порт создавать свое отдельное приложение?

 ,

hell_wood
()

Си + libevent

Форум — Development

Уважаемые! Прошу подсказать мне вот в каком вопросе: У меня есть сервер один на сишечке с либевент и второй на пайтоне с twisted'ом. Сишечный сервер подключется в отдельном потоке к пайтоновскому серверу. На сишечный сервер сыпятся всякие данные, которые он обрабатывает и передает пайтоновскому серверу. Могу ли я эти данные передавать пайтону прям в коллбеке входящего сообщения либевента? Если нужно дождаться ответа от пайтоновского сервера (а пайтоновский сервер в свою очередь с этим запросом работает с базой данных), ну и конечно одновременных подключений к сишному серверу может быть МНОГО!

 , ,

hell_wood
()

RSS подписка на новые темы