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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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 Detail

    - #### 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`

Copyright © 2021 The Apache Software Foundation. All rights reserved.