public void stopClients() {
   if (outputClient != null) {
     try {
       outputClient.stop();
     } catch (Exception e) {
     }
   }
   if (inputClient != null) {
     try {
       inputClient.stop();
     } catch (Exception e) {
     }
   }
 }
  public SimulationParameters(int simNum, LaBoGridConfiguration laboConf, DistributedAgent da)
      throws LBException {

    this.simNum = simNum;
    this.laboConf = laboConf;

    simDesc = laboConf.getExperienceDescription().getSimulationDescription(simNum);

    LBConfiguration lbConf = laboConf.getLBConfiguration(simDesc.getLBConfigurationId());
    latticeClass = lbConf.getLatticeDescription().getClassName();
    solidClass = lbConf.getSolidDescription().getClassName();

    String chainId = simDesc.getProcessingChainId();
    ProcessingChainDescription pcd = laboConf.getProcessingChain(chainId);
    powerDesc = SimulationDescription.getPowerDescriptor(latticeClass, pcd);
    procChain = ProcessingChain.getOperatorsChain(pcd, false);

    // Set output client.
    IODescription outDesc = simDesc.getOutput();
    if (outDesc != null) {

      try {
        outputClient = outDesc.getOutputClient();
        outputClient.setDistributedAgent(da);
      } catch (Exception e) {
        throw new LBException("Could not start output client", e);
      }
    }

    // Set input client.
    IODescription inDesc = simDesc.getInput();
    if (inDesc != null) {

      try {
        inputClient = inDesc.getInputClient();
        inputClient.setDistributedAgent(da);
      } catch (Exception e) {
        throw new LBException("Could not start input client", e);
      }
    }
  }
 public void submitMessageToOutputClient(OutputClientMessage o) {
   if (outputClient != null) {
     outputClient.submitOutputClientMessage(o);
   }
 }
 public void stopOutputClient() throws Exception {
   if (outputClient != null) {
     outputClient.stop();
     outputClient.join();
   }
 }
 public void startOutputClient() throws Exception {
   if (outputClient != null) {
     outputClient.start();
   }
 }