void KMThreadJob::createJob(int ID, const TQString& printer, const TQString& name, const TQString& owner, int size) { KMThreadJob mth(0); KMJob *job = new KMJob(); job->setId(ID); job->setPrinter(printer); job->setName(name); job->setOwner(owner); job->setSize(size); job->setType(KMJob::Threaded); mth.createJob(job); }
// --------------------------------------------------- MacroEnsamZ::compNMMth() void MacroEnsamZ::compNMMth() { Zero::IdsPorObjeto * ids; if ( estado == ENOBJETO ) { // Obtener el nombre del méodo, // y sus argumentos std::string acceso; std::string nombre; std::string ref; estado = ENCUERPOMETODO; lex->pasaEsp(); acceso = lex->getLiteral(' '); if (acceso != Zero::NMMth::PRIVADO && acceso != Zero::NMMth::PUBLICO) { throw Zero::ESintxIdNoValido("Se esperaba marca de acceso"); } lex->pasaEsp(); nombre = lex->getToken(); if (nombre.empty()) { throw Zero::ESintxIdNoValido("Se esperaba id: " "nombre de mth") ; } if (!Zero::NombreIdentificador::compruebaId(nombre)) { throw Zero::ESintxIdNoValido(nombre.c_str()); } metodoActual = nombre; Zero::NMMth mth(acceso, nombre); // Llegar hasta el '(' lex->pasaEsp(); if ( lex->getCaracterActual() == '(' ) { lex->avanza(); lex->pasaEsp(); } else throw Zero::ESintaxis("Se esperaba '('"); // Coger los argumentos ref = lex->getToken(); while(!(ref.empty())) { if (!Zero::NombreReferencia::compruebaRef(ref)) throw Zero::ESintxIdNoValido(ref.c_str()); mth.masArgumentos( ref ); lex->pasaEsp(); ref = lex->getToken(); } ids = idsProg.buscaObjeto( objetoActual ); if ( !( ids->insertaMetodo( nombre, ( acceso == Zero::NMMth::PUBLICO ), *mth.getArgs() ) ) ) { throw Zero::ESintxIdNoValido("Nombre de método duplicado"); } // mth.escribe( sal ); (*log)( '\t' + mth.listar() ); mnemosMetActual = new(std::nothrow) Metodo( objetoActual, nombre, ids, sal ); if ( mnemosMetActual == NULL ) { throw Zero::ENoHayMemoria( std::string( "creando método" + objetoActual + '.' + nombre + '(' + ')' ).c_str() ); } } else throw Zero::ESintxMthNoPermitido(""); return; }