public void registerClientInterest(final @NotNull String regionName,
      final @NotNull List<?> keysOfInterest,
      final @NotNull ClientProxyMembershipID membershipID,
      final boolean isDurable,
      final boolean sendUpdatesAsInvalidates,
      final boolean manageEmptyRegions,
      final @NotNull DataPolicy regionDataPolicy,
      final boolean flushState)
      throws IOException, RegionDestroyedException {
    CacheClientProxy proxy = getClientProxy(membershipID, true);

    if (logger.isDebugEnabled()) {
      logger.debug("CacheClientNotifier: Client {} registering interest in: {} -> {}", proxy,
          regionName, keysOfInterest);
    }

    if (proxy == null) {
      throw new IOException(
          "CacheClientProxy for this client is no longer on the server , so registerInterest operation is unsuccessful");
    }

    proxy.registerClientInterestList(regionName, keysOfInterest, isDurable,
        sendUpdatesAsInvalidates, flushState);

    if (manageEmptyRegions) {
      updateMapOfEmptyRegions(proxy.getRegionsWithEmptyDataPolicy(), regionName, regionDataPolicy);
    }
  }
Registers client interest in the input region and list of keys.

@param regionName The name of the region of interest
@param keysOfInterest The list of keys of interest
@param membershipID The {@code ClientProxyMembershipID} of the client no longer interested
       in this {@code Region} and key
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifier.java