@Override protected void stopReceiverAndQueues(final BidibMessageProcessor serialMessageReceiver) { if (serialMessageReceiver instanceof SerialMessageReceiver) { // no longer process received messages ((SerialMessageReceiver) serialMessageReceiver).disable(); } else { LOGGER.warn("No message receiver to disable available."); } super.stopReceiverAndQueues(serialMessageReceiver); }
@Override public void releaseRootNode() { LOGGER.info("Release the root node."); if (getNodeRegistry() != null) { // remove all stored nodes from the node factory getNodeRegistry().reset(false); } }
final BidibMessageProcessor messageReceiver = getMessageReceiver(); fireReceiveStarted(); fireReceiveStopped();
/** * Initialize the instance. This must only be called from this class */ protected void initialize() { LOGGER.info("Initialize AbstractBidib, create a NodeRegistry."); nodeRegistry = new NodeRegistry(); LOGGER.info("Created nodeRegistry: {}", nodeRegistry); nodeRegistry.setBidib(this); // create the request factory requestFactory = new RequestFactory(); nodeRegistry.setRequestFactory(requestFactory); requestFactory.initialize(); // warmup for (int i = 0; i < 100; i++) { ByteArrayOutputStream item = new ByteArrayOutputStream(64); freeBufferQueue.add(item); } // create the message receiver messageReceiver = createMessageReceiver(nodeRegistry); }
super.cleanupAfterClose(bidibMessageProcessor);
@Override public void close() { LOGGER.info("Close the serial simulation."); isOpened = false; if (getConnectionListener() != null) { getConnectionListener().closed(requestedPortName); } requestedPortName = null; // if (simulationInterface != null) { // simulationInterface.stop(); // } releaseRootNode(); // release the simulation message receiver simulationMessageReceiver = null; cleanupAfterClose(null); // remove all simulators from the simulation registry SimulatorRegistry.getInstance().removeAll(); super.stopReceiverAndQueues(simulationMessageReceiver); }