org.apache.geode.cache.wan

## Interface GatewaySenderFactory

-     public interface GatewaySenderFactory

  Factory to create SerialGatewaySender
  Since:
    GemFire 7.0
  See Also:
    `GatewaySender`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `GatewaySenderFactory` | `addGatewayEventFilter(GatewayEventFilter filter)` Adds a `GatewayEventFilter`
    `GatewaySenderFactory` | `addGatewayTransportFilter(GatewayTransportFilter filter)` Adds a `GatewayTransportFilter`
    `GatewaySender` | `create(java.lang.String id, int remoteDSId)` Creates a `GatewaySender` to communicate with remote distributed system
    `GatewaySenderFactory` | `removeGatewayEventFilter(GatewayEventFilter filter)` Removes the provided `GatewayEventFilter` from this GatewaySender.
    `GatewaySenderFactory` | `removeGatewayTransportFilter(GatewayTransportFilter filter)` Removes the provided `GatewayTransportFilter` from this GatewaySender.
    `GatewaySenderFactory` | `setAlertThreshold(int threshold)` Sets the alert threshold in milliseconds for entries in a `GatewaySender` 's queue.
    `GatewaySenderFactory` | `setBatchConflationEnabled(boolean isConflation)` Sets whether to enable batch conflation for a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setBatchSize(int size)` Sets the batch size to be picked at the time of dispatching from a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setBatchTimeInterval(int interval)` Sets a time interval in milliseconds to wait to form a batch to be dispatched from a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setDiskStoreName(java.lang.String name)` Sets the disk store name for overflow or persistence
    `GatewaySenderFactory` | `setDiskSynchronous(boolean isSynchronous)` Sets whether or not the writing to the disk is synchronous.
    `GatewaySenderFactory` | `setDispatcherThreads(int numThreads)` Sets the number of dispatcher thread.
    `GatewaySenderFactory` | `setGatewayEventSubstitutionFilter(GatewayEventSubstitutionFilter filter)` Sets the provided `GatewayEventSubstitutionFilter` in this GatewaySenderFactory.
    `GatewaySenderFactory` | `setManualStart(boolean start)` Deprecated. - Manual start of senders is deprecated and will be removed in a later release.
    `GatewaySenderFactory` | `setMaximumQueueMemory(int maxQueueMemory)` Sets the maximum amount of memory (in MB) for a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setOrderPolicy(GatewaySender.OrderPolicy policy)` Sets `OrderPolicy` for this GatewaySender.
    `GatewaySenderFactory` | `setParallel(boolean isParallel)` Indicates whether all VMs need to distribute events to remote site.
    `GatewaySenderFactory` | `setParallelFactorForReplicatedRegion(int parallel)`
    `GatewaySenderFactory` | `setPersistenceEnabled(boolean isPersistence)` Sets whether to enable persistence for a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setSocketBufferSize(int size)` Sets the buffer size in bytes of the socket connection for this `GatewaySender`.
    `GatewaySenderFactory` | `setSocketReadTimeout(int timeout)` Sets the number of milliseconds to wait for a response from a `GatewayReceiver` before timing out the operation and trying another `GatewayReceiver` (if any are available).

- - ### Method Detail

    - #### setParallel

          GatewaySenderFactory setParallel(boolean isParallel)

      Indicates whether all VMs need to distribute events to remote site. In this case only the events originating in a particular VM will be in dispatched in order.
      Parameters:
        `isParallel` - boolean to indicate whether distribution policy is parallel

    - #### addGatewayEventFilter

          GatewaySenderFactory addGatewayEventFilter(GatewayEventFilter filter)

      Adds a `GatewayEventFilter`
      Parameters:
        `filter` - GatewayEventFilter

    - #### addGatewayTransportFilter

          GatewaySenderFactory addGatewayTransportFilter(GatewayTransportFilter filter)

      Adds a `GatewayTransportFilter`
      Parameters:
        `filter` - GatewayTransportFilter

    - #### setSocketBufferSize

          GatewaySenderFactory setSocketBufferSize(int size)

      Sets the buffer size in bytes of the socket connection for this `GatewaySender`. The default is 32768 bytes.
      Parameters:
        `size` - The size in bytes of the socket buffer

    - #### setSocketReadTimeout

          GatewaySenderFactory setSocketReadTimeout(int timeout)

      Sets the number of milliseconds to wait for a response from a `GatewayReceiver` before timing out the operation and trying another `GatewayReceiver` (if any are available). Default is 0 which means infinite timeout.
      Parameters:
        `timeout` - number of milliseconds to wait for a response from a GatewayReceiver
      Throws:
        `java.lang.IllegalArgumentException` - if `timeout` is less than `0`.

    - #### setDiskStoreName

          GatewaySenderFactory setDiskStoreName(java.lang.String name)

      Sets the disk store name for overflow or persistence

    - #### setDispatcherThreads

          GatewaySenderFactory setDispatcherThreads(int numThreads)

      Sets the number of dispatcher thread. Default number of dispatcher threads is 5.

    - #### setOrderPolicy

          GatewaySenderFactory setOrderPolicy(GatewaySender.OrderPolicy policy)

      Sets `OrderPolicy` for this GatewaySender. Default order policy is KEY.

    - #### setMaximumQueueMemory

          GatewaySenderFactory setMaximumQueueMemory(int maxQueueMemory)

      Sets the maximum amount of memory (in MB) for a `GatewaySender`'s queue. Default is 100.
      Parameters:
        `maxQueueMemory` - The maximum amount of memory (in MB) for a `GatewaySender`'s queue.

    - #### setBatchSize

          GatewaySenderFactory setBatchSize(int size)

      Sets the batch size to be picked at the time of dispatching from a `GatewaySender`'s queue. Default batchSize is 100.
      Parameters:
        `size` - The size of batches sent from a `GatewaySender` to its corresponding `GatewayReceiver`.

    - #### setBatchTimeInterval

          GatewaySenderFactory setBatchTimeInterval(int interval)

      Sets a time interval in milliseconds to wait to form a batch to be dispatched from a `GatewaySender`'s queue. Default is 1000.
      Parameters:
        `interval` - The maximum time interval (in milliseconds) that can elapse before a partial batch is sent from a `GatewaySender` to its corresponding `GatewayReceiver`.

    - #### setBatchConflationEnabled

          GatewaySenderFactory setBatchConflationEnabled(boolean isConflation)

      Sets whether to enable batch conflation for a `GatewaySender`'s queue. Default is false.
      Parameters:
        `isConflation` - Whether or not to enable batch conflation for batches sent from a `GatewaySender` to its corresponding `GatewayReceiver`.

    - #### setPersistenceEnabled

          GatewaySenderFactory setPersistenceEnabled(boolean isPersistence)

      Sets whether to enable persistence for a `GatewaySender`'s queue. Default is false.
      Parameters:
        `isPersistence` - Whether to enable persistence for a `GatewaySender`'s queue

    - #### setAlertThreshold

          GatewaySenderFactory setAlertThreshold(int threshold)

      Sets the alert threshold in milliseconds for entries in a `GatewaySender` 's queue. Default value is 0.
      Parameters:
        `threshold` - the alert threshold for entries in a `GatewaySender`'s queue

    - #### setManualStart

          @Deprecated
          GatewaySenderFactory setManualStart(boolean start)

      Deprecated. - Manual start of senders is deprecated and will be removed in a later release.
      Sets the manual start boolean property for this `GatewaySender`. Default is false i.e. the `GatewaySender` will automatically start once created.
      Parameters:
        `start` - the manual start boolean property for this `GatewaySender`

    - #### setDiskSynchronous

          GatewaySenderFactory setDiskSynchronous(boolean isSynchronous)

      Sets whether or not the writing to the disk is synchronous. Default is true.
      Parameters:
        `isSynchronous` - boolean if true indicates synchronous writes

    - #### removeGatewayEventFilter

          GatewaySenderFactory removeGatewayEventFilter(GatewayEventFilter filter)

      Removes the provided `GatewayEventFilter` from this GatewaySender.

    - #### removeGatewayTransportFilter

          GatewaySenderFactory removeGatewayTransportFilter(GatewayTransportFilter filter)

      Removes the provided `GatewayTransportFilter` from this GatewaySender.

    - #### setParallelFactorForReplicatedRegion

          GatewaySenderFactory setParallelFactorForReplicatedRegion(int parallel)

    - #### setGatewayEventSubstitutionFilter

          GatewaySenderFactory setGatewayEventSubstitutionFilter(GatewayEventSubstitutionFilter filter)

      Sets the provided `GatewayEventSubstitutionFilter` in this GatewaySenderFactory.
      Parameters:
        `filter` - The `GatewayEventSubstitutionFilter`

    - #### create

          GatewaySender create(java.lang.String id,
                               int remoteDSId)

      Creates a `GatewaySender` to communicate with remote distributed system
      Parameters:
        `id` - unique id for this SerialGatewaySender
        `remoteDSId` - unique id representing the remote distributed system
      Returns:
        instance of SerialGatewaySender
      Throws:
        `java.lang.IllegalStateException` - If the GatewaySender creation fails during validation due to mismatch of attributes of GatewaySender created on other nodes with same id