Vanaema2 TODO *) tegu suhteliselt täieliku rewriteiga *) vanast koodist saab üle võtta vist ainult connecti osa *) asi tuleb threadidega, esialgse plaani kohaselt igale serverile oma thread *) asi tuleb C++'sis *) järgnevalt väike list esialgsetest objektidest ja nende meetoditest toodod nimekiri pole kuskilt otsast lõpplik ega välistav Server private int con_desc; [ antud ühenduse descriptor ] public long unsigned int last_answer; [ aeg viimasest kontaktist serveriga, sekundites ] |---> int connect(void) [ err: -1 normal: 0, väärtustab Server->con_desc'i ] |---> int quit(char*) [ err: -1 normal: 0, suleb ühenduse serveriga ] |---> int login(void) [ err: -1 normal: 0, saadab serverile kõik loginniks vajaliku ] |---> int ping(char*) [ err: -1 normal: 0, vastab serveri PINGile ] |---> int queue(void) [ err: -1 normal: 0, serveri peamine queue, kontrollib kanalite queuesid ] |---> int read(void) [err: -1 normal: 0, read line from con_desc ] |---> int err_log(char*) [err: -1 normal: 0, kirjutab välja antud serveri spetsiifilisi erroreid ] |---> int log(char*) [err: -1 normal: 0, kirjutab välja serveri spetsiifilist logi ] Channel public int user_total; [ kasutajate arv kanalil ] private bool silent; [ kas antud kanalil reageerida käskudel või mitte ] publi Queue; |---> int join(void) [ err: -1 normal: 0, liitu kanaliga ] |---> int part(char*) [ err: -1 normal: 0, lahku kanalilt ] |---> int protect(void) [ err: -1 normal: 0, asu kaitsele, kõigile trusted useritele +o ja kanalile +i ] |---> int log(char*) [ err: -1 normal: 0, kirjutab välja vastava kanali spetsiifilist logi ] |---> int err_log(char*) [ err: -1 normal: 0, kirjutab kanali spetsiifilist logi ] Queue /* queue peaks sisaldama miskeid muutujaid mille põhjal saaks serveri queue f. */ /* välja arvutada kui palju kirjeid tohib siit võtta */ unsigned int limit; [ maksimaalne kirjete arv queues ] |---> int add_queue() [ err: -1 normal: 0, lisa queuesse ] |---> int flush_queue() [ err: -1 normal: 0, tühjenda queue ] |---> int get_queue() [ annab queuest esimese rea ] Database /* suhteliselt lihtsustatud andmebaasi mudel, baas == tabel */ /* igas tabelis ainult 3 rowd: id, võti ja kirje, sisestamisel */ /* hoolitsetakse ka selle eest et asi oleks võtme järgi tähestiku järjekorras */ |---> create(char*) [err: -1 normal: 0, loo uus andmebaas ] |---> drop(char*) [ err: -1 normal: 0, kustuta andmebaas ] |---> insert(char*) [ err: -1 normal: 0, lisa baasi kirje ] |---> delete(char*) [ err: -1 normal: 0, kustuta baasist kirje ] |---> update(char*) [ err: -1 normal: 0, uuenda kirjet ]