<?php
namespace nur\mapper\base\capacitor;

use ArrayAccess;

/**
 * Class SqliteCapacitor: un {@link Capacitor} qui stocke les données
 * sérialisées dans une base de données sqlite temporaire. L'avantage est de
 * pouvoir faire des traitements supplémentaires sur la base de données avant
 * de décharger les données
 */
class SqliteCapacitor implements ICapacitor, ArrayAccess {
  use TCapacitor;

  /**
   * spécifier les clés à traquer lors du chargement d'une donnée.
   *
   * la table destination contiendra une colonne pour chaque clé spécifiée
   */
  function setKeys(array $keys, ?string $channel=null): void {
  }

  /**
   * spécifier l'ordre de tri pour la restitution avec {@link discharge()}.
   * cette méthode se contente simplement de sauvegarder l'information de tri.
   * ce n'est que lors de la restitution que le tri est effectivement effectué
   */
  function sort(?array $keys=null, ?string $channel=null): void {
  }
}