/**
   * Callback for replication pause state changed.
   *
   * @param pauseReason Pause reason or {@code null} if replication is not paused.
   */
  public void onPauseStateChanged(@Nullable GridDrPauseReason pauseReason) {
    drSndMetrics.onPauseStateChanged(pauseReason);

    if (delegate != null) delegate.onPauseStateChanged(pauseReason);
  }
  /**
   * Callback for backup queue size changed.
   *
   * @param newSize New size of sender cache backup queue.
   */
  public void onSenderCacheBackupQueueSizeChanged(int newSize) {
    drSndMetrics.onBackupQueueSizeChanged(newSize);

    if (delegate != null) delegate.onSenderCacheBackupQueueSizeChanged(newSize);
  }
  /**
   * Callback for sent batch on sender cache side.
   *
   * @param entriesCnt Number of sent entries.
   */
  public void onSenderCacheBatchSent(int entriesCnt) {
    drSndMetrics.onBatchSent(entriesCnt);

    if (delegate != null) delegate.onSenderCacheBatchSent(entriesCnt);
  }
  /** Callback for filtered entries on sender cache side. */
  public void onSenderCacheEntryFiltered() {
    drSndMetrics.onEntryFiltered();

    if (delegate != null) delegate.onSenderCacheEntryFiltered();
  }
  /**
   * Callback for received acknowledgement by sender hub.
   *
   * @param entriesCnt Number of entries in batch.
   */
  public void onSenderCacheBatchAcknowledged(int entriesCnt) {
    drSndMetrics.onBatchAcked(entriesCnt);

    if (delegate != null) delegate.onSenderCacheBatchAcknowledged(entriesCnt);
  }