package model.osagaia; import util.Commands; import platform.servicesregister.ServicesRegisterManager; /** * Thread which connects the Input Unit to a connector<br> * Waits util the connector is available * * @author Dalmau */ public class InputUnitConnectionAfterRedirectionThread extends Thread { private InputUnit ue; private String connecteur; private String[] nomconnecteurEntree; private String[] nomconnecteurSortie; /** * Thread construction * * @param u Input Unit to connect * @param nom name of the connector to connect with * @param inputConnectors connectors used as inputs * @param outputConnectors connectors used as outputs */ public InputUnitConnectionAfterRedirectionThread(InputUnit u, String nom, String[] inputConnectors, String[] outputConnectors) { ue = u; connecteur = nom; nomconnecteurEntree = inputConnectors; nomconnecteurSortie = outputConnectors; } /** * Wait until the connector is available */ @Override public void run() { for (int i=0; i<nomconnecteurSortie.length; i++) { // attente des connecteurs en sortie if ((!nomconnecteurSortie[i].equals(Commands.ES_NOT_USED)) && (!nomconnecteurSortie[i].equals(Commands.ES_NULL))) { // attente du service de l'UE du connecteur en sortie ServicesRegisterManager.platformWaitForService(nomconnecteurSortie[i]); } } for (int i=0; i<nomconnecteurEntree.length; i++) { // attente des connecteurs en entree if ((!nomconnecteurEntree[i].equals(Commands.ES_NOT_USED)) && (!nomconnecteurEntree[i].equals(Commands.ES_NULL))) { // attente du service de l'US du connecteur en entree ServicesRegisterManager.platformWaitForService(nomconnecteurEntree[i]); } } ue.connection(connecteur); } }