26enum class SqlLockFailureReason : uint8_t
60 std::optional<SqlErrorInfo>
info;
108 std::string_view lockName,
109 std::chrono::milliseconds timeout)
const = 0;
125 std::string_view lockName)
const = 0;
152[[nodiscard]] LIGHTWEIGHT_API SqlAdvisoryLockHandler
const& SqliteAdvisoryLockOps();
155[[nodiscard]] LIGHTWEIGHT_API SqlAdvisoryLockHandler
const& SqlServerAdvisoryLockOps();
158[[nodiscard]] LIGHTWEIGHT_API SqlAdvisoryLockHandler
const& PostgreSqlAdvisoryLockOps();
virtual std::expected< void, SqlLockError > Release(SqlConnection &connection, std::string_view lockName) const =0
virtual std::vector< std::string_view > BookkeepingTableNames() const noexcept
virtual std::expected< void, SqlLockError > TryAcquire(SqlConnection &connection, std::string_view lockName, std::chrono::milliseconds timeout) const =0
virtual ~SqlAdvisoryLockHandler()=default
Polymorphic destructor.
Represents a connection to a SQL database.
SqlLockFailureReason reason
What went wrong, at the granularity callers actually care about.
std::chrono::milliseconds timeout
Requested timeout (zero for Release).
std::optional< SqlErrorInfo > info
Set on DriverError; carries SQLSTATE / native error / driver text.