Господа, посоветуйте! :-)Пару лет назад была задача написать кроссплатформенный многопоточный сервер (Linux, Win, Bsd), слушающий порт.. т.д. жующий базу данных, грубо говоря.
Использовал для этого stl, pthreads.. там препроцессорных директив не мало нужно было описывать для совместимости с виндой, еще кой-какие приблуды.
Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам БД).
Решил в этот раз пойти другим путем - использовать Qt, но для демонизации нужен класс QService, а он платный - это не вариант. Собственно толку тогда от Qt.Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же самое нормальное - изначальный вариант?
>Использовал для этого stl, pthreads.. там препроцессорных директив не мало нужно было
>описывать для совместимости с виндой, еще кой-какие приблуды."там препроцессорных директив не мало нужно" - bad design
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.Ну напишите две функции выполняющие демонизацию, одну для никсов, вторую для винды. Или погуглите, использовать Qt совсем не означает что нельзя пользоваться и другими либами.
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?гугл тут очень адекватен :)
задача описана в общих чертах - хочу все, по всякому и везде. еще никто не смог написать такую либу ;)
>Ну напишите две функции выполняющие демонизацию, одну для никсов, вторую для винды.ага, так и делал, вот что Вы же сами по этому поводу думаете:
>"там препроцессорных директив не мало нужно" - bad designне мало - это пара файлов, занимающихся этим.
>Или погуглите, использовать Qt совсем не означает что нельзя пользоваться и
>другими либами.гуглил, в итоге все сводится к тому что бы сделать "пару функций". а зачем мне тогда использовать Qt? Она заявляет о шикарной кроссплатформенности.
>задача описана в общих чертах - хочу все, по всякому и везде.
>еще никто не смог написать такую либу ;)причем именно такой..
> гугл тут очень адекватен :)
гугл гуглом - им всегда пользуюсь, а здесь хотел услышать высказывания, основанные на опыте. После прочтения одно из таких, например, использование Qt для демона мне стало казаться полнейшим абсурдом, хотя там класс для БД вроде не плохой.. якобы.
>гуглил, в итоге все сводится к тому что бы сделать "пару функций".
>а зачем мне тогда использовать Qt? Она заявляет о шикарной кроссплатформенности.Qt это прежде всего либа для создания графических приложений, а не всего чего угодно, и в ней при всем желании не будет вообще всего.
абсолютно верно, приоритет на гуевые приложения, но создание приложений без гуя там вполне приветствуется, описано и документировано. почему бы нет.
>[оверквотинг удален]
>описывать для совместимости с виндой, еще кой-какие приблуды.
>
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.
>
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?а почему не хотите написать posix-совместимый код и собрать это чудище под виндой спосредством mingw или cygwin???
никаких плясок с бубном и директивами препроцессора делать не прийдётся
судя по всему это единственный вариант нормальный, только посредством gcc.
посмотрите на ACE
http://www.cs.wustl.edu/~schmidt/ACE.html
посмотрел, вполне даже, как вариант. спасибо
>[оверквотинг удален]
>описывать для совместимости с виндой, еще кой-какие приблуды.
>
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.
>
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?POCO еще может для этого подойти http://pocoproject.org/
>[оверквотинг удален]
>описывать для совместимости с виндой, еще кой-какие приблуды.
>
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.
>
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?Boost C++ Libraries (nothing like QService, but has portable threads etc)