Example #1
0
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);
}
Example #2
0
// --------------------------------------------------- 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;
}