/* * Copyright (c) 2021, Jan de Visser * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace SQLServer { class DatabaseConnection final : public Core::Object { C_OBJECT(DatabaseConnection) public: ~DatabaseConnection() override = default; static RefPtr connection_for(int connection_id); int connection_id() const { return m_connection_id; } int client_id() const { return m_client_id; } RefPtr database() { return m_database; } void disconnect(); int sql_statement(String const& sql); private: DatabaseConnection(String database_name, int client_id); RefPtr m_database { nullptr }; String m_database_name; int m_connection_id; int m_client_id; bool m_accept_statements { false }; }; }