int main(int argc, char **argv) { char buffer[255]; if (argc != 2) { strcpy (buffer, "Error: Cantidad de parametros invalida\n"); write (fileno(stderr),buffer, strlen(buffer)); exit(1); } int cantProcesos = 0; sscanf(argv[1] , "%d", &cantProcesos); // Obteniendo semaforo de control de acceso a la memoria compartida Semaphore semControl = Semaphore(); semControl.getSemaphore((char *)DIRECTORY, ID_SEMCONTROL, 1); semControl.destroy(); // Obteniendo semaforos de control de los procesos Semaphore semProductores = Semaphore(); semProductores.getSemaphore((char *)DIRECTORY, ID_SEMPRODUCTORES, cantProcesos); semProductores.destroy(); // Obteniendo la memoria compartida CountingSharedMemory shMem = CountingSharedMemory(); shMem.getSharedMemory((char *)DIRECTORY, ID_SHMEM); shMem.destroy(); return 0; }
int main(int argc, char **argv) { Semaphore semControl = Semaphore(); semControl.getSemaphore((char *)DIRECTORY, ID_SEMCONTROL, 1); semControl.destroy(); // Obteniendo memoria compartida TicketsInfoSharedMemory shMem = TicketsInfoSharedMemory(); shMem.getSharedMemory((char *)DIRECTORY, ID_SHMEM); shMem.destroy(); // Obteniendo colas de mensajes GetVendedorMessageQueue getVendedorQueue1 = GetVendedorMessageQueue(); getVendedorQueue1.getMessageQueue((char*)DIRECTORY, ID_GET_VENDEDOR_1); getVendedorQueue1.destroy(); ComprarMessageQueue comprarQueue1 = ComprarMessageQueue(); comprarQueue1.getMessageQueue((char*)DIRECTORY, ID_COMPRAR_1); comprarQueue1.destroy(); VenderMessageQueue venderQueue1 = VenderMessageQueue(); venderQueue1.getMessageQueue((char*)DIRECTORY, ID_VENDER_1); venderQueue1.destroy(); GetVendedorMessageQueue getVendedorQueue2 = GetVendedorMessageQueue(); getVendedorQueue2.getMessageQueue((char*)DIRECTORY, ID_GET_VENDEDOR_2); getVendedorQueue2.destroy(); ComprarMessageQueue comprarQueue2 = ComprarMessageQueue(); comprarQueue2.getMessageQueue((char*)DIRECTORY, ID_COMPRAR_2); comprarQueue2.destroy(); VenderMessageQueue venderQueue2 = VenderMessageQueue(); venderQueue2.getMessageQueue((char*)DIRECTORY, ID_VENDER_2); venderQueue2.destroy(); // Obteniendo memoria compartida de numerador NumeradorSharedMemory shMemNum = NumeradorSharedMemory(); shMemNum.getSharedMemory((char *)DIRECTORY_NUM, ID_SHMEM_NUMERADOR); shMemNum.destroy(); Semaphore semControlNum = Semaphore(); semControlNum.getSemaphore((char *)DIRECTORY_NUM, ID_SEMCONTROL_NUMERADOR, 1); semControlNum.destroy(); return 0; }
void testIsInitialized () { sem = new Semaphore (0); CPPUNIT_ASSERT (sem->isInitialized ()); sem->destroy (); CPPUNIT_ASSERT_EQUAL (sem->isInitialized (), 0); delete sem; }
int main(int argc, char **argv) { // Obtengo los semaforos que controlan el avance de productores y analizadores Semaphore semProductores = Semaphore(); semProductores.getSemaphore((char *)DIRECTORY,ID_SEMPRODUCTORES, CANT_PRODUCTORES); semProductores.destroy(); Semaphore semAnalizadores = Semaphore(); semAnalizadores.getSemaphore((char *)DIRECTORY,ID_SEMANALIZADORES, CANT_ANALIZADORES); semAnalizadores.destroy(); // Obtengo el semaforo que controla el acceso a la memoria compartida Semaphore semControl = Semaphore(); semControl.getSemaphore((char *)DIRECTORY, ID_SEMCONTROL, 1); semControl.destroy(); // Obtengo la memoria compartida SamplesTableSharedMemory table = SamplesTableSharedMemory(); table.getSharedMemory((char *)DIRECTORY, ID_SHMEM); table.destroy(); return 0; }
int main(int argc, char** argv) { char buffer[TAM_BUFFER]; try { /* Obtengo la cola de comunicacion con el robot 5 con los dos procesos del controlador */ ComunicacionRobot5MessageQueue colaComunicacionRobot5 = ComunicacionRobot5MessageQueue(); colaComunicacionRobot5.getMessageQueue(DIRECTORY,ID_COLA_API_ROBOT_5); colaComunicacionRobot5.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } try { /* Obtengo la cola de pedidos del robot 5 */ PedidosProduccionMessageQueue colaPedidos = PedidosProduccionMessageQueue(); colaPedidos.getMessageQueue(DIRECTORY,ID_COLA_PEDIDOS_PRODUCCION); colaPedidos.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } /* * ROBOT 5 - AGV */ try { /* Obtengo los buffer para depositar los canastos */ BufferCanastoSharedMemory bufferCanasto[3]; bufferCanasto[0].getSharedMemory(DIRECTORY, ID_BUFFER_CANASTOS_0); bufferCanasto[0].destroy(); bufferCanasto[1].getSharedMemory(DIRECTORY, ID_BUFFER_CANASTOS_1); bufferCanasto[1].destroy(); bufferCanasto[2].getSharedMemory(DIRECTORY, ID_BUFFER_CANASTOS_2); bufferCanasto[2].destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } try { /* Obtengo los semaforos de acceso a los buffer de los canastos */ Semaphore semaforoAccesoBufferAgv; semaforoAccesoBufferAgv.getSemaphore(DIRECTORY, ID_SEM_ACCESO_BUFFER_AGV, 3); semaforoAccesoBufferAgv.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } try { /* Obtengo los semaforos de bloqueo de los Agv */ Semaphore semaforoBloqueoAgv; semaforoBloqueoAgv.getSemaphore(DIRECTORY, ID_SEM_BLOQUEO_AGV, 3); semaforoBloqueoAgv.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } try { /* Obtengo la cola de pedidos de los AGV */ PedidosAgvMessageQueue colaPedidosAgv; colaPedidosAgv.getMessageQueue(DIRECTORY,ID_COLA_PEDIDOS_AGV_5); colaPedidosAgv.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } /* * Robot 5 - Cinta */ try { /* Obtengo las memorias compartidas y los semaforos de las cintas transportadoras */ Semaphore semCinta0 = Semaphore(); semCinta0.getSemaphore(DIRECTORY, ID_CINTA_6_0, 1); semCinta0.destroy(); CintaTransportadoraSharedMemory memCinta0 = CintaTransportadoraSharedMemory(); memCinta0.getSharedMemory(DIRECTORY, ID_CINTA_6_0); memCinta0.destroy(); Semaphore semCinta1 = Semaphore(); semCinta1.getSemaphore(DIRECTORY, ID_CINTA_6_1, 1); semCinta1.destroy(); CintaTransportadoraSharedMemory memCinta1 = CintaTransportadoraSharedMemory(); memCinta1.getSharedMemory(DIRECTORY, ID_CINTA_6_1); memCinta1.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } try { /* Obtengo el semaforo de bloqueo del robot 5 */ Semaphore semBloqueo5 = Semaphore(); semBloqueo5.getSemaphore(DIRECTORY, ID_SEM_BLOQUEO_ROBOT_5, 1); semBloqueo5.destroy(); /* Obtengo la memoria de estado del robot 5 y el semaforo de acceso */ EstadoRobot5SharedMemory estadoRobot5 = EstadoRobot5SharedMemory(); estadoRobot5.getSharedMemory(DIRECTORY, ID_MEM_ESTADO_ROBOT_5); estadoRobot5.destroy(); Semaphore semaforoAccesoEstadoRobot5 = Semaphore(); semaforoAccesoEstadoRobot5.getSemaphore(DIRECTORY, ID_SEM_ACCESO_ESTADO_ROBOT_5, 1); semaforoAccesoEstadoRobot5.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } try { /* Obtengo la memoria de estado de los robot 11 y los semaforos de acceso */ EstadoRobot11SharedMemory estadoRobot11[2]; estadoRobot11[0].getSharedMemory(DIRECTORY, ID_MEM_ESTADO_ROBOT_11_0); estadoRobot11[0].destroy(); estadoRobot11[1].getSharedMemory(DIRECTORY, ID_MEM_ESTADO_ROBOT_11_1); estadoRobot11[1].destroy(); Semaphore semaforoAccesoEstadoRobot11 = Semaphore(); semaforoAccesoEstadoRobot11.getSemaphore(DIRECTORY, ID_SEM_ACCESO_ESTADO_ROBOT_11, 2); semaforoAccesoEstadoRobot11.destroy(); /* Obtengo los semaforos de bloqueo del robot 11 */ Semaphore semaforoBloqueoRobot11 = Semaphore(); semaforoBloqueoRobot11.getSemaphore(DIRECTORY, ID_SEM_BLOQUEO_ROBOT_11, 2); semaforoBloqueoRobot11.destroy(); } catch (IPCException const& ex) { sprintf(buffer, "Terminator Robot 5:Error: %s\n", ex.what()); write(fileno(stderr), buffer, strlen(buffer)); exit(-1); } return 0; }
int main(int argc, char **argv) { try { // Obteniendo semaforo de control de acceso a la memoria compartida Sala Semaphore semControlSala = Semaphore(); semControlSala.getSemaphore((char *)DIRECTORY, ID_SEM_CONTROL_SALA, 1); semControlSala.destroy(); } catch (IPCException &ex) { char buffer[TAM_BUFFER]; sprintf (buffer, "Terminator Error: %s\n", ex.getDescription()); write (fileno(stderr),buffer, strlen(buffer)); } try{ // Obteniendo semaforo de bloqueo de la puerta Semaphore semPuerta = Semaphore(); semPuerta.getSemaphore((char *)DIRECTORY, ID_SEM_PUERTA, 1); semPuerta.destroy(); } catch (IPCException &ex) { char buffer[TAM_BUFFER]; sprintf (buffer, "Terminator Error: %s\n", ex.getDescription()); write (fileno(stderr),buffer, strlen(buffer)); } try{ // Obteniendo semaforo de bloqueo de buses Semaphore semBuses = Semaphore(); semBuses.getSemaphore((char *)DIRECTORY, ID_SEM_BUSES, 1); semBuses.destroy(); } catch (IPCException &ex) { char buffer[TAM_BUFFER]; sprintf (buffer, "Terminator Error: %s\n", ex.getDescription()); write (fileno(stderr),buffer, strlen(buffer)); } try{ // Obteniendo la cola de mensajes de intercambio IntercambioMessageQueue intercambioMessageQueue = IntercambioMessageQueue(); intercambioMessageQueue.getMessageQueue((char*)DIRECTORY, ID_COLA_PERSONAS); intercambioMessageQueue.destroy(); } catch (IPCException &ex) { char buffer[TAM_BUFFER]; sprintf (buffer, "Terminator Error: %s\n", ex.getDescription()); write (fileno(stderr),buffer, strlen(buffer)); } try{ // Obteniendo memoria compartida Sala InfoSalaSharedMemory shMemSala = InfoSalaSharedMemory(); shMemSala.getSharedMemory((char *)DIRECTORY, ID_SHMEM_SALA); shMemSala.destroy(); } catch (IPCException &ex) { char buffer[TAM_BUFFER]; sprintf (buffer, "Terminator Error: %s\n", ex.getDescription()); write (fileno(stderr),buffer, strlen(buffer)); } return 0; }