FirebirdSQL logo

ITimerControl

L’interface ITimerControl est une implémentation très simple et peu précise du timer. Nous en sommes arrivés là parce que les minuteries existantes sont très dépendantes du système d’exploitation et peuvent être utilisées dans des programmes qui nécessitent une portabilité et ne nécessitent pas une minuterie de très haute précision. De plus, l’exécution d’une minuterie donnée peut être reportée si l’autre minuterie n’a pas été terminée au moment où cette minuterie devrait être signalée.

  1. start

    void start(StatusType* status, ITimer* timer, ISC_UINT64 microSeconds)

    Lancez ITimer après le signal (en microsecondes, 10-6 secondes). La minuterie ne se réveillera qu’une seule fois après cet appel.

  2. stop

    void stop(StatusType* status, ITimer* timer)

    stop ITimer. N’arrêtez pas un chronomètre qui n’est pas en cours d’exécution, ce qui évitera les problèmes de conflit entre le signal stop() et le signal du minuteur.

ITransaction

Interface ITransaction — Remplace isc_tr_handle.

  1. getInfo

    void getInfo(StatusType* status,
                 unsigned itemsLength,
                 const unsigned char* items,
                 unsigned bufferLength,
                 unsigned char* buffer)

    Remplace isc_transaction_info().

  2. prepare

    void prepare(StatusType* status,
                 unsigned msgLength,
                 const unsigned char* message)

    Remplace isc_prepare_transaction2().

  3. commit

    void commit(StatusType* status)

    Remplace isc_commit_transaction().

  4. commitRetaining

    void commitRetaining(StatusType* status)

    Remplace isc_commit_retaining().

  5. rollback

    void rollback(StatusType* status)

    Remplace isc_rollback_transaction().

  6. rollbackRetaining

    void rollbackRetaining(StatusType* status)

    Remplace isc_rollback_retaining().

  7. disconnect

    void disconnect(StatusType* status)

    Remplace fb_disconnect_transaction().

  8. join

    ITransaction* join(StatusType* status, ITransaction* transaction)

    connecte la transaction en cours et la transaction passée en paramètre en une seule transaction distribuée (à l’aide de Dtc). En cas de réussite, la transaction en cours et la transaction passée en paramètre sont libérées et ne doivent plus être utilisées.

  9. validate

    ITransaction* validate(StatusType* status, IAttachment* attachment)

    Cette méthode est utilisée pour soutenir le coordinateur des transactions distribuées.

  10. enterDtc

    ITransaction* enterDtc(StatusType* status)

    Cette méthode est utilisée pour prendre en charge le coordinateur des transactions distribuées.