Package jmri.jmrix.bidib.tcpserver
Class ServerMessageReceiver
java.lang.Object
jmri.jmrix.bidib.tcpserver.ServerMessageReceiver
- All Implemented Interfaces:
ServerBidibMessageProcessor,org.bidib.jbidibc.core.BidibMessageProcessor,org.bidib.jbidibc.messages.MessageProcessor,org.bidib.jbidibc.messages.MessageReceiver
public abstract class ServerMessageReceiver
extends Object
implements ServerBidibMessageProcessor, org.bidib.jbidibc.messages.MessageReceiver
This is the server message receiver. Message from the network client will
be received and then forwarded to the JMRI BiDiB connection via the
traffic controler.
-
Field Summary
FieldsFields inherited from interface org.bidib.jbidibc.core.BidibMessageProcessor
IGNORE_WRONG_MESSAGE_NUMBER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMessageListener(org.bidib.jbidibc.core.MessageListener messageListener) voidaddNodeListener(org.bidib.jbidibc.core.NodeListener nodeListener) voidcleanup()voiddisable()voidenable()voidprocessMessages(ByteArrayOutputStream output) abstract voidpublishResponse(ByteArrayOutputStream output) Publish the response in the provided byte array output stream.voidreceive(ByteArrayOutputStream output) Process data received from network.voidremoveMessageListener(org.bidib.jbidibc.core.MessageListener messageListener) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.bidib.jbidibc.core.BidibMessageProcessor
removeNodeListener
-
Field Details
-
running
-
escapeHot
boolean escapeHot
-
-
Constructor Details
-
ServerMessageReceiver
-
-
Method Details
-
enable
- Specified by:
enablein interfaceServerBidibMessageProcessor
-
disable
- Specified by:
disablein interfaceServerBidibMessageProcessor
-
receive
Process data received from network. Forward to BiDiB connection Currently we split possible multi-message packets into a sequence of single messages. TODO: forward multi-message packets, this would require that the BiDiB traffic controller supports this- Specified by:
receivein interfaceorg.bidib.jbidibc.messages.MessageReceiver- Parameters:
output- data received
-
publishResponse
public abstract void publishResponse(ByteArrayOutputStream output) throws org.bidib.jbidibc.messages.exception.ProtocolException Description copied from interface:ServerBidibMessageProcessorPublish the response in the provided byte array output stream.- Specified by:
publishResponsein interfaceServerBidibMessageProcessor- Parameters:
output- the output stream that contains the responses- Throws:
org.bidib.jbidibc.messages.exception.ProtocolException- when can't provide sequence
-
processMessages
public void processMessages(ByteArrayOutputStream output) throws org.bidib.jbidibc.messages.exception.ProtocolException - Specified by:
processMessagesin interfaceorg.bidib.jbidibc.messages.MessageProcessor- Throws:
org.bidib.jbidibc.messages.exception.ProtocolException
-
getErrorInformation
- Specified by:
getErrorInformationin interfaceorg.bidib.jbidibc.core.BidibMessageProcessor
-
addMessageListener
- Specified by:
addMessageListenerin interfaceorg.bidib.jbidibc.core.BidibMessageProcessor
-
removeMessageListener
- Specified by:
removeMessageListenerin interfaceorg.bidib.jbidibc.core.BidibMessageProcessor
-
addNodeListener
- Specified by:
addNodeListenerin interfaceorg.bidib.jbidibc.core.BidibMessageProcessor
-
cleanup
- Specified by:
cleanupin interfaceorg.bidib.jbidibc.messages.MessageReceiver
-