Package org.apache.storm.multilang

# Interface ISerializer

All Superinterfaces:
  `Serializable`

All Known Implementing Classes:
  `JsonSerializer`

public interface ISerializer extends Serializable
The ISerializer interface describes the methods that an object should implement to provide serialization and de-serialization capabilities to non-JVM language components.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Number`
  `connect(Map<String,Object> conf, TopologyContext context)`
  This method transmits the Storm config to the non-JVM process and receives its pid.
  `void`
  `initialize(OutputStream processIn, InputStream processOut)`
  This method sets the input and output streams of the serializer.
  `ShellMsg`
  `readShellMsg()`
  This method receives a shell message from the non-JVM process.
  `void`
  `writeBoltMsg(BoltMsg msg)`
  This method sends a bolt message to a non-JVM bolt process.
  `void`
  `writeSpoutMsg(SpoutMsg msg)`
  This method sends a spout message to a non-JVM spout process.
  `void`
  `writeTaskIds(List<Integer> taskIds)`
  This method sends a list of task IDs to a non-JVM bolt process.

- ## Method Details

  - ### initialize

    void initialize(OutputStream processIn, InputStream processOut)
    This method sets the input and output streams of the serializer.
    Parameters:
      `processIn` - output stream to non-JVM component
      `processOut` - input stream from non-JVM component

  - ### connect

    Number connect(Map<String,Object> conf, TopologyContext context) throws IOException, NoOutputException
    This method transmits the Storm config to the non-JVM process and receives its pid.
    Parameters:
      `conf` - storm configuration
      `context` - topology context
    Returns:
      process pid
    Throws:
      `IOException`
      `NoOutputException`

  - ### readShellMsg

    ShellMsg readShellMsg() throws IOException, NoOutputException
    This method receives a shell message from the non-JVM process.
    Returns:
      shell message
    Throws:
      `IOException`
      `NoOutputException`

  - ### writeBoltMsg

    void writeBoltMsg(BoltMsg msg) throws IOException
    This method sends a bolt message to a non-JVM bolt process.
    Parameters:
      `msg` - bolt message
    Throws:
      `IOException`

  - ### writeSpoutMsg

    void writeSpoutMsg(SpoutMsg msg) throws IOException
    This method sends a spout message to a non-JVM spout process.
    Parameters:
      `msg` - spout message
    Throws:
      `IOException`

  - ### writeTaskIds

    void writeTaskIds(List<Integer> taskIds) throws IOException
    This method sends a list of task IDs to a non-JVM bolt process.
    Parameters:
      `taskIds` - list of task IDs
    Throws:
      `IOException`