OtpTransportFactory (Java-Erlang Interface Library)

Package com.ericsson.otp.erlang

## Interface OtpTransportFactory

- All Known Implementing Classes:
    `AbstractNode`, `OtpLocalNode`, `OtpNode`, `OtpPeer`, `OtpSelf`, `OtpServer`, `OtpSocketTransportFactory`

      public interface OtpTransportFactory

  Factory class used to create client- and server-side transport instances. One static instance of class implementing this interface is created when program loaded. Default implementation used is `OtpSocketTransportFactory`. JInterface user can specify custom transport factory implementing this interface in the following ways:
  defining static class as internal to class holding main() method
    In the systems, where main class can be retrieved with `System.getProperty("sun.java.command")`, user can define static class OtpErlangSystemTuner internal to the main class, providing at least one static method with the name getOtpTransportFactory, with no parameters, returning object of class implementing OtpTransportFactory, for example:

         public class MyMainClass {

             public static class OtpErlangSystemTuner {
                 ...
                 public static OtpTransportFactory getOtpTransportFactory() {
                     return new MyTransportFactory();
                 }
             }

             public static class MyTransportFactory implements OtpTransportFactory {
                 ...
             }

             public static void main(String[] args) {
                 ...
             }
         }

  specifying factory class in the system properties
    User-defined transport factory class may be specified via system property OtpTransportFactory, for example:

         package com.my.company;

         public static class MyTransportFactory implements OtpTransportFactory {
             ...
         }

    In such case program may be run with -DOtpTransportFactory=com.my.company.MyTransportFactory, or other way of setting system property before execution of static initializers may be used.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `OtpServerTransport` | `createServerTransport​(int port)` | Create instance of `OtpServerTransport`
    `OtpTransport` | `createTransport​(java.lang.String addr, int port)` | Create instance of `OtpTransport`
    `OtpTransport` | `createTransport​(java.net.InetAddress addr, int port)` | Create instance of `OtpTransport`

- - ### Method Detail

    - #### createTransport

          OtpTransport createTransport​(java.lang.String addr,
                                       int port)
                                throws java.io.IOException

      Create instance of `OtpTransport`
      Parameters:
        `addr` - host name or IP address string
        `port` - port number
      Returns:
        new socket object
      Throws:
        `java.io.IOException`

    - #### createTransport

          OtpTransport createTransport​(java.net.InetAddress addr,
                                       int port)
                                throws java.io.IOException

      Create instance of `OtpTransport`
      Parameters:
        `addr` - peer address
        `port` - port number
      Returns:
        new socket object
      Throws:
        `java.io.IOException`

    - #### createServerTransport

          OtpServerTransport createServerTransport​(int port)
                                            throws java.io.IOException

      Create instance of `OtpServerTransport`
      Parameters:
        `port` - port number to listen on
      Returns:
        new socket object
      Throws:
        `java.io.IOException`