Class SocketProductSender

java.lang.Object
gov.usgs.util.DefaultConfigurable
gov.usgs.earthquake.distribution.SocketProductSender
All Implemented Interfaces:
ProductSender, Configurable

public class SocketProductSender extends DefaultConfigurable implements ProductSender
Send Products to SocketProductReceivers. The SocketProductSender implements the Configurable interface and uses the following configuration parameters:
host
(Required) The IP address or hostname of a SocketProductReceiver.
port
(Optional, default=11235) The port on host of a SocketProductReceiver
  • Field Details

    • SENDER_HOST_PROPERTY

      public static final String SENDER_HOST_PROPERTY
      property for sender host
      See Also:
    • SENDER_PORT_PROPERTY

      public static final String SENDER_PORT_PROPERTY
      property for sender port
      See Also:
    • DEFAULT_SENDER_PORT

      public static final String DEFAULT_SENDER_PORT
      The default port number for SocketProductReceivers.
      See Also:
    • CONNECT_TIMEOUT_PROPERTY

      public static final String CONNECT_TIMEOUT_PROPERTY
      property for connectTimeout
      See Also:
    • DEFAULT_CONNECT_TIMEOUT

      public static final String DEFAULT_CONNECT_TIMEOUT
      Default connection timeout
      See Also:
    • READ_TIMEOUT_PROPERTY

      public static final String READ_TIMEOUT_PROPERTY
      property for readTimeout
      See Also:
    • DEFAULT_READ_TIMEOUT

      public static final String DEFAULT_READ_TIMEOUT
      Default read timeout
      See Also:
    • WRITE_TIMEOUT_PROPERTY

      public static final String WRITE_TIMEOUT_PROPERTY
      property for writeTimeout
      See Also:
    • DEFAULT_WRITE_TIMEOUT

      public static final String DEFAULT_WRITE_TIMEOUT
      Default write timeout
      See Also:
    • BINARY_FORMAT_PROPERTY

      public static final String BINARY_FORMAT_PROPERTY
      Property name to configure binary or xml format.
      See Also:
    • BINARY_FORMAT_DEFAULT

      public static final String BINARY_FORMAT_DEFAULT
      Default value for whether to use binary format.
      See Also:
    • ENABLE_DEFLATE_PROPERTY

      public static final String ENABLE_DEFLATE_PROPERTY
      Property name to configure deflate compression.
      See Also:
    • ENABLE_DEFLATE_DEFAULT

      public static final String ENABLE_DEFLATE_DEFAULT
      Default value for whether to use deflate compression.
      See Also:
    • DEFLATE_LEVEL_PROPERTY

      public static final String DEFLATE_LEVEL_PROPERTY
      property for deflateLevel
      See Also:
    • DEFLATE_LEVEL_DEFAULT

      public static final String DEFLATE_LEVEL_DEFAULT
      Default deflate level
      See Also:
    • ENABLE_PDL_PROTOCOL_PROPERTY

      public static final String ENABLE_PDL_PROTOCOL_PROPERTY
      Property to enablePdlProtocol
      See Also:
    • DEFAULT_ENABLE_PDL_PROTOCOL

      public static final String DEFAULT_ENABLE_PDL_PROTOCOL
      Default for enable pdl protocol
      See Also:
    • PROTOCOL_HEADER

      public static final byte[] PROTOCOL_HEADER
      Byte array for protocl header
    • PROTOCOL_VERSION_0_1

      public static final String PROTOCOL_VERSION_0_1
      Static var for v0.1 protocol
      See Also:
    • UNKNOWN_PRODUCT

      public static final String UNKNOWN_PRODUCT
      Static var for unknown product
      See Also:
    • ALREADY_HAVE_PRODUCT

      public static final String ALREADY_HAVE_PRODUCT
      Static var for alreadying having the product
      See Also:
    • RECEIVE_ERROR

      public static final String RECEIVE_ERROR
      Static var for a receive error
      See Also:
  • Constructor Details

    • SocketProductSender

      public SocketProductSender(String host, int port)
      Construct a new ProductSender with default connection timeout.
      Parameters:
      host - Host of product sender
      port - Port of product sender
    • SocketProductSender

      public SocketProductSender(String host, int port, int connectTimeout)
      Construct a new ProductSender with default read and write timeouts
      Parameters:
      host - Host of product sender
      port - Port of product sender
      connectTimeout - Timeout in ms
    • SocketProductSender

      public SocketProductSender(String host, int port, int connectTimeout, int readTimeout, int writeTimeout)
      Construct a new ProductSender
      Parameters:
      host - Host of product sender
      port - Port of product sender
      connectTimeout - connect timeout in ms
      readTimeout - read timeout in ms
      writeTimeout - write timeout in ms
    • SocketProductSender

      public SocketProductSender()
      Empty constructor for configurable interface.
    • SocketProductSender

      public SocketProductSender(Config config) throws Exception
      Construct a new ProductSender using a Config object.
      Parameters:
      config - Config object
      Throws:
      Exception - if error occurs
  • Method Details

    • sendProduct

      public void sendProduct(Product product) throws Exception
      Implement the ProductSender interface. Connects to host:port and sends a Deflaterped xml encoded Product. There is no direct response over the socket at this time.
      Specified by:
      sendProduct in interface ProductSender
      Parameters:
      product - the product to send.
      Throws:
      Exception - if any errors occur while sending.
    • configure

      public void configure(Config config) throws Exception
      Reads the host and port from config.
      Specified by:
      configure in interface Configurable
      Overrides:
      configure in class DefaultConfigurable
      Parameters:
      config - a Config object with host and port properties.
      Throws:
      Exception - if configuration exceptions occur.
    • shutdown

      public void shutdown() throws Exception
      Makes sure the socket is closed.
      Specified by:
      shutdown in interface Configurable
      Overrides:
      shutdown in class DefaultConfigurable
      Throws:
      Exception - if exceptions occur while starting.
    • startup

      public void startup() throws Exception
      Does nothing, a socket is opened each time a product is sent.
      Specified by:
      startup in interface Configurable
      Overrides:
      startup in class DefaultConfigurable
      Throws:
      Exception - if exceptions occur while starting.
    • isBinaryFormat

      public boolean isBinaryFormat()
      Returns:
      the binaryFormat
    • setBinaryFormat

      public void setBinaryFormat(boolean binaryFormat)
      Parameters:
      binaryFormat - the binaryFormat to set
    • isEnableDeflate

      public boolean isEnableDeflate()
      Returns:
      the enableDeflate
    • setEnableDeflate

      public void setEnableDeflate(boolean enableDeflate)
      Parameters:
      enableDeflate - the enableDeflate to set
    • getDeflateLevel

      public int getDeflateLevel()
      Returns:
      the deflateLevel
    • setDeflateLevel

      public void setDeflateLevel(int deflateLevel)
      Parameters:
      deflateLevel - the deflateLevel to set
    • isEnablePdlProtocol

      public boolean isEnablePdlProtocol()
      Returns:
      the enablePdlProtocol
    • setEnablePdlProtocol

      public void setEnablePdlProtocol(boolean enablePdlProtocol)
      Parameters:
      enablePdlProtocol - the enablePdlProtocol to set
    • getConnectTimeout

      public int getConnectTimeout()
      Returns:
      the connectTimeout
    • setConnectTimeout

      public void setConnectTimeout(int connectTimeout)
      Parameters:
      connectTimeout - the connectTimeout to set
    • getReadTimeout

      public int getReadTimeout()
      Returns:
      the readTimeout
    • setReadTimeout

      public void setReadTimeout(int readTimeout)
      Parameters:
      readTimeout - the readTimeout to set
    • getWriteTimeout

      public int getWriteTimeout()
      Returns:
      the writeTimeout
    • setWriteTimeout

      public void setWriteTimeout(int writeTimeout)
      Parameters:
      writeTimeout - the writeTimeout to set
    • getHost

      public String getHost()
      Returns:
      the host
    • setHost

      public void setHost(String host)
      Parameters:
      host - the host to set
    • getPort

      public int getPort()
      Returns:
      the port
    • setPort

      public void setPort(int port)
      Parameters:
      port - the port to set