az alapelképzelés, hogy a felület flash lesz (http://www.libming.org), ami xmlsocket-el kommunikál a szerverrel. az xmlsocket miatt nem volt nagyon más választásom, mint a socket szerveroldalon.
http://beej.us/guide/bgnet/output/html/multipage/index.html
az itt található példa nagyon jó, de úgy tudom, hogy a pthread nagyságrendekkel gyórsabb, mint a fork.
úgyhogy a pthread is bejött a játékba.
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
https://computing.llnl.gov/tutorials/pthreads/
ugyanakkor a szokásos sok thread-es megoldások mindig csak egy sima tömböt használnak, gondoltam mennyivel okosabb lenne egy list vagy ilyesmi. jelenleg azzal van, seggfaultolni nem seggel, de nemtudom valójában működik -e. az egyetlen, ami kicsit zavar, hogy a remove elvileg lefuttatja az elem destruktorát, de nem tudom mi a destruktora egy listába rakott pointernek. nem szeretném sizeof(pthread_t) darabonként elfoglalni a teljes memóriát :)
a thread-ek adatbázison keresztül gondoltam, hogy kommunikáljanak, de akkor már úgy lett volna jó, ha nem bedrótozva mysql, hanem cserélhető modulok lennének az adatbázis kezelő cuccok (ahogy lehetnének, még a klienstől jövő parancsok értelmezői is).
http://tldp.org/HOWTO/C++-dlopen/thesolution.html
a dlopen és a LoadLibrary elvetve, mivelugye eléggé platform függőek. mennyivel szebb lenne, ha win-en is futna. jó megoldásnak tűnt a libtool ltdl megoldása.
http://www.gnu.org/software/libtool/manual/html_node/Using-libltdl.html
http://linux.duke.edu/~mstenner/free-docs/autobook-1.3/autobook_171.html
sikerült is belinkelni a projektbe, de nem sikerült a mysql modulomat úgy leforgatni, hogy be is töltse. mindig undefined symbol-ra panaszkodott.
másik apró probléma volt, hogy a mysql egyetlen értelmes api-ja a c-s, de igen gyatrán van dokumentálva.
http://dev.mysql.com/doc/refman/5.1/en/c.html
de az apache-ban egész jól kommentezett modul van. hogy nem szeretek kommentezni és mégis milyen hálás tudok lenni érte... :)
http://svn.apache.org/repos/asf/apr/apr-util/trunk/dbd/apr_dbd_mysql.c
elég elkeserítő a helyzet. ha az ember nem php-ban vagy java-ban akar dolgozni, akkor a legegyszerűbb dolgokról sem talál doksit.
bár a ltdl doksija említi a c++-al való használatot, de nincs róla részletes leírás, sem egyetlen opensource projekt, ami használná. pthread-et sem használta nem előre meghatározott mennyiségű thread-el?
update:
http://libdbi.sourceforge.net/
- BaliHB blogja
- A hozzászóláshoz be kell jelentkezni
- 725 megtekintés