Function (Apache Geode 1.12.4)
Date: 2021-07-21

org.apache.geode.experimental.driver

## Interface Function<T>

- Type Parameters:
    `T` - Type of result returned from the function. May differ from the key and value types of any involved regions.
  All Known Implementing Classes:
    ProtobufFunction

      public interface Function<T>

  This interface represents from the client-side the execution of a function on the server-side.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `List<T>` | `executeOnGroup(Object arguments, String... groups)` Executes this function with the specified arguments on the specified groups.
    `List<T>` | `executeOnMember(Object arguments, String... members)` Executes this function with the specified arguments on the specified members.
    `List<T>` | `executeOnRegion(Object arguments, String regionName, Object... keyFilters)` Executes this function with the specified arguments on the specified region.

- - ### Method Detail

    - #### executeOnRegion

          List<T> executeOnRegion(Object arguments,
                                  String regionName,
                                  Object... keyFilters)
                           throws IOException

      Executes this function with the specified arguments on the specified region. Keys may be optionally filtered.
      Parameters:
        `arguments` - Object encapsulating all the arguments to this execution of the function.
        `regionName` - Name of the region.
        `keyFilters` - Optional list of keys.
      Returns:
        Possibly empty list of results from the function.
      Throws:
        `IOException` - If an error occurred communicating with the distributed system.

    - #### executeOnMember

          List<T> executeOnMember(Object arguments,
                                  String... members)
                           throws IOException

      Executes this function with the specified arguments on the specified members.
      Parameters:
        `arguments` - Object encapsulating all the arguments to this execution of the function.
        `members` - Optional list of member names.
      Returns:
        Possibly empty list of results from the function.
      Throws:
        `IOException` - If an error occurred communicating with the distributed system.

    - #### executeOnGroup

          List<T> executeOnGroup(Object arguments,
                                 String... groups)
                          throws IOException

      Executes this function with the specified arguments on the specified groups.
      Parameters:
        `arguments` - Object encapsulating all the arguments to this execution of the function.
        `groups` - Optional list of group names.
      Returns:
        Possibly empty list of results from the function.
      Throws:
        `IOException` - If an error occurred communicating with the distributed system.