Skip to content

Instantly share code, notes, and snippets.

View oppahero's full-sized avatar

María López oppahero

View GitHub Profile
void Server::on_client_privateTextSend(QString uname,QString receiverName,QString text){
QString currentTime = QTime::currentTime().toString("H:mm A/");
QString messagePm = "/pm:"+currentTime+uname+" : "+text+"\n";
foreach(ClientThread* client,clientThreadList){
if(client->getUsername() == receiverName){
sendTextToOne(messagePm,client);
return;
}
}
}
void Server::on_client_textSend(QString uname,QString text){
//client that send the signal to this slot
ClientThread* sender_client = (ClientThread*)sender();
QString currentTime = QTime::currentTime().toString("H:m A/");
QString message = "/text:"+currentTime + uname + " : " + text + "\n";
sendTextToAll(message,sender_client);
}
void Server::sendTextToAll(QString text,ClientThread* except){
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_8);
out << (quint32)0 << text;
out.device()->seek(0);
out << (quint32)(block.size() - sizeof(quint32));
qDebug() << "block.size() = " << block.size();
void Server::sendTextToOne(QString text,ClientThread* target){
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_8);
out << (quint32)0 << text;
out.device()->seek(0);
out << (quint32)(block.size() - sizeof(quint32));
qDebug() << "block.size() = " << block.size();
void Dialog::sendTextToServer(QString text){
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_3);
qDebug() << "texto: " + text;
out << (quint32)0 << text;
out.device()->seek(0);
out << (quint32)(block.size() - sizeof(quint32));
@oppahero
oppahero / .cpp
Last active November 8, 2018 22:29
//El chat grupal
void Dialog::on_lineEdit_ChatInput_returnPressed()
{
//Obtenemos el msj del line edit
QString text = ui->lineEdit_ChatInput->text().trimmed();
//Si es esta vacio
if(text.isEmpty())
return;
//El proceso sale del cpu
void *gestionarPlanificador(void* threadid) {
struct Planificador value = *((struct Planificador *)threadid);
value.Procesador.setEstado("Terminado");
cout << "Proceso ID (" << value.Procesador.getId()<< ") ESTADO: "<< value.Procesador.getEstado() << endl;
cout << "Proceso ID (" << value.Procesador.getId()<< ") HA TERMINADO SU EJECUCION TOTAL. LIBERADO RECURSOS" << endl;
value.getProcesador().setEstado("Terminado");
value.getProcesador().setId();
pthread_exit(NULL);
}
void *gestionarCola1(void* threadid) {
struct Planificador &value = *((struct Planificador *)threadid);
Proceso n = value.getPopCola1(); //El proceso pasa al procesador
cout<<" ATENDIENDO NUEVO PROCESO EN CPU. ID: "<<value.getPopCola1().getId() <<endl;
n.setEstado("Ejecutandose"); //Cambia su estado
n.imprimirDatos(); //Imprimimis datos del proceso en CPU
cout<<endl;
value.cola1.pop(); //Ya no esta en cola
value.setProceso(n);
pthread_exit(NULL);
cout<<endl<<"ESTADOS ACTUALES"<<endl<<endl;
AdministradorColas.imprimirCola1();
AdministradorColas.imprimirCola2();
AdministradorColas.imprimirCola3();
AdministradorColas.imprimirCola4();
tiempoEjecucion++;
//Cambios de cola
for(int i = 0; i < NUM_QUEUES ; i++){
//Si el tiempo de Quantum de la cola es igual al tiempo en ejecucion por el proceso en cpu
//Y si el T que ha estado ejecutandose es distinto al tiempo de ejecución asignado en un inicio
if ( AdministradorColas.getProcesador().getCola() == (i+1) &&
tiempoEjecucion == queues[i] && AdministradorColas.getProcesador().getTEjecucion() != tiempoEjecucion){
tiempoEjecucion=0;
AdministradorColas.gestionarEvento(); //Pasara a la cola inferior
AdministradorColas.setIdProcesador();
continue;