include('wintools') func init() if(pos("network", QT_MOD) == 0) QT_MOD += " network" end fvar(old, e, i, es_signal, serv_slot, pt) var(s) old = block.select(BLK_INC) println('#include ') block.select(BLK_BODY) lng.decl_priv_var(tcpServ, 'QTcpServer*') println(tcpServ, ' = new QTcpServer();') println('connect(' + tcpServ + ', SIGNAL(newConnection()), this, SLOT(' + onNewConnection + '()));') e = cgt.el_get_child_id(0) UNITS &= e sys.selectElement(e) sys.initall() sys.selectElement(cgt.el_get_parent_id()) s = code(cgt.el_get_class_name(e) + cgt.el_get_code_name(e)) lng.decl_priv_var(obj_arr, 'QList<' + s + '*>*') block.select(BLK_INIT) println(obj_arr, ' = new QList<' + s + '*>();') block.select(BLK_SLOT) println('void ' + onNewConnection + '();') block.select(BLK_MTD) println('void ' + CUR_CLASS + '::' + onNewConnection + '() {') block.inclvl() println(s + ' *se = new ' + s + '(this, ' + obj_arr + ', ' + tcpServ + '->nextPendingConnection());') println('se->onConnected();') block.declvl() println('}') block.select(old) end func doListen(_data) if(isndef(Port)) println(tcpServ, '->listen(QHostAddress::Any, ', Port, ');') else println(tcpServ + '->listen();') end end func doClose(_data) println(tcpServ + '->close();') end func doWait(_data) if(isdef(TimeOut)) println(tcpServ + '->waitForNewConnection();') else println(tcpServ + '->waitForNewConnection(', TimeOut, ');') end end func doWork(_data, index) fvar(nm) nm = code(cgt.pt_get_name_byid(cgt.pt_arr_work(index))) switch(nm) case "##doListen": doListen(_data) return(0) case "##doClose": doClose(_data) return(0) case "##doWait": doWait(_data) return(0) end fvar(dt) dt = _data println('for(QList<' + s + '*>::iterator i = ' + obj_arr + '->begin(); i != ' + obj_arr + '->end(); ++i) {') block.inclvl() println('(*i)->' + nm + '(', dt, ');') block.declvl() println('}') sys.event(cgt.el_get_child_id(0), 'parent_work', nm, dt) end func children_work(name, _data) fvar(td, tn, body, dt) td = lng.get_type(_data) tn = code(lng.get_type_name(td)) body = name + code(_id_) + '(' if(tn) body += tn + ' data' dt = 'data' sub(dt, td) else dt = '' end body += ')' lng.begin_func(body) event(name, dt) lng.end_func(BLK_PUB) end