Class Socket

  • All Implemented Interfaces:
    AdditionalInformationHandler, ClassCrossReference, CleanUpHandler, CrossReference, Destroyable, GlobalInfoSupporter, EncodingSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, VariableChangeListener, Actor, ErrorHandler, OutputProducer, Serializable, Comparable

    public class Socket
    extends AbstractSimpleSource
    implements EncodingSupporter, ClassCrossReference
    Listens on the specified port for incoming data.
    Can either output raw byte arrays or strings (using the specified encoding).

    See also:
    adams.flow.sink.Socket

    Input/output:
    - generates:
       byte[]


    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: Socket
     
    -annotation <adams.core.base.BaseAnnotation> (property: annotations)
        The annotations to attach to this actor.
        default: 
     
    -skip <boolean> (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded 
        as it is.
        default: false
     
    -stop-flow-on-error <boolean> (property: stopFlowOnError)
        If set to true, the flow execution at this level gets stopped in case this 
        actor encounters an error; the error gets propagated; useful for critical 
        actors.
        default: false
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing 
        actor handler must have this enabled as well.
        default: false
     
    -port <int> (property: port)
        The port to listen on.
        default: 8000
        minimum: 1
        maximum: 65535
     
    -timeout <int> (property: timeout)
        The timeout in milli-second for waiting on new client connections.
        default: 3000
        minimum: 100
     
    -output-string <boolean> (property: outputString)
        If enabled, a string with the specified encoding is generated from the incoming 
        byte array.
        default: false
     
    -encoding <adams.core.base.BaseCharset> (property: encoding)
        The type of encoding for sending the data.
        default: Default
     
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Port

        protected int m_Port
        the port to listen on.
      • m_Timeout

        protected int m_Timeout
        the timeout for the socket.
      • m_Encoding

        protected BaseCharset m_Encoding
        the encoding to use.
      • m_OutputString

        protected boolean m_OutputString
        whether to output a string.
      • m_Server

        protected transient ServerSocket m_Server
        the socket in use.
      • m_Client

        protected transient Socket m_Client
        the current client socket.
    • Constructor Detail

      • Socket

        public Socket()
    • Method Detail

      • setPort

        public void setPort​(int value)
        Sets the port to connect to.
        Parameters:
        value - the port
      • getPort

        public int getPort()
        Returns the port to connect to.
        Returns:
        the port
      • portTipText

        public String portTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setTimeout

        public void setTimeout​(int value)
        Sets the timeout in milli-second to wait for new connections.
        Parameters:
        value - the timeout in msec
      • getTimeout

        public int getTimeout()
        Returns the timeout in milli-second to wait for new connections.
        Returns:
        the timeout in msec
      • timeoutTipText

        public String timeoutTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the gui
      • setOutputString

        public void setOutputString​(boolean value)
        Sets whether to output a string.
        Parameters:
        value - true if to output a string
      • getOutputString

        public boolean getOutputString()
        Returns whether to output a string.
        Returns:
        true if to output a string
      • outputStringTipText

        public String outputStringTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setEncoding

        public void setEncoding​(BaseCharset value)
        Sets the encoding to use.
        Specified by:
        setEncoding in interface EncodingSupporter
        Parameters:
        value - the encoding, e.g. "UTF-8" or "UTF-16", empty string for default
      • getEncoding

        public BaseCharset getEncoding()
        Returns the encoding to use.
        Specified by:
        getEncoding in interface EncodingSupporter
        Returns:
        the encoding, e.g. "UTF-8" or "UTF-16", empty string for default
      • encodingTipText

        public String encodingTipText()
        Returns the tip text for this property.
        Specified by:
        encodingTipText in interface EncodingSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • generates

        public Class[] generates()
        Returns the class of objects that it generates.
        Specified by:
        generates in interface OutputProducer
        Returns:
        the Class of the generated tokens
      • isPaused

        protected boolean isPaused()
        Returns whether the flow is paused.
        Returns:
        true if flow paused
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class AbstractActor
        Returns:
        null if everything is fine, otherwise error message
      • wrapUp

        public void wrapUp()
        Cleans up after the execution has finished. Graphical output is left untouched.
        Specified by:
        wrapUp in interface Actor
        Overrides:
        wrapUp in class AbstractActor
      • isFinished

        public boolean isFinished()
        Returns whether the item has finished. The execute() will be called as long as the isFinished() method returns false.
        Specified by:
        isFinished in interface Actor
        Overrides:
        isFinished in class AbstractActor
        Returns:
        true if finished, false if further calls to execute() are necessary. Default implementation returns always true, i.e., fires only once.