13#include "StripeKit/WebhookDedupStore.h"
79 std::chrono::system_clock::time_point processed_at)
override;
83 std::chrono::system_clock::time_point claimed_at)
override;
93 std::chrono::hours retention)
override;
96 sqlite3* db =
nullptr;
void erase_expired(std::chrono::system_clock::time_point now, std::chrono::hours retention) override
Deletes records older than the retention period.
~SqliteWebhookDedupStore() override
Closes the database and destroys the store.
SqliteWebhookDedupStore(std::string database_path)
Opens or creates the database.
bool release_claim(std::string_view event_id, std::chrono::system_clock::time_point claimed_at) override
Releases an unfinished claim after its handler has stopped.
ClaimResult claim(const ClaimRequest &request) override
Tries to reserve an event id for processing.
bool mark_processed(std::string_view event_id, std::chrono::system_clock::time_point processed_at) override
Records that an event has been fully handled.
Remembers which webhook events have been handled.
bool sqlite_dedup_store_is_available()
Reports whether this build can use SqliteWebhookDedupStore.
Asks the store to reserve an event id.
The store's answer to a ClaimRequest.