/**
   * Writes a versioned value to swap.
   *
   * @param key Key.
   * @param val Value.
   * @param ver Version.
   * @param metrics Metrics.
   * @param ttl Entry time to live.
   * @param expireTime Swap entry expiration time.
   * @param clsLdrId Class loader id for entry value.
   * @throws GridException If failed.
   */
  void write(
      byte[] key,
      byte[] val,
      GridCacheVersion ver,
      long ttl,
      long expireTime,
      GridCacheMetricsAdapter metrics,
      UUID clsLdrId)
      throws GridException {
    if (!enabled) return;

    GridCacheSwapEntry<V> entry =
        new GridCacheSwapEntry<V>(val, ver, ttl, expireTime, metrics, clsLdrId);

    swapMgr.write(spaceName, new GridSwapByteArray(key), new GridSwapByteArray(marshal(entry)));
  }