mirror of
https://github.com/RGBCube/serenity
synced 2025-07-14 19:27:34 +00:00

In order to execute a prepared statement multiple times, and track each execution's results, clients will need to be provided an execution ID. This will create a monotonically increasing ID each time a prepared statement is executed for this purpose.
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2021, Jan de Visser <jan@de-visser.net>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/HashMap.h>
|
|
#include <AK/Vector.h>
|
|
#include <LibIPC/ConnectionFromClient.h>
|
|
#include <SQLServer/SQLClientEndpoint.h>
|
|
#include <SQLServer/SQLServerEndpoint.h>
|
|
|
|
namespace SQLServer {
|
|
|
|
class ConnectionFromClient final
|
|
: public IPC::ConnectionFromClient<SQLClientEndpoint, SQLServerEndpoint> {
|
|
C_OBJECT(ConnectionFromClient);
|
|
|
|
public:
|
|
virtual ~ConnectionFromClient() override = default;
|
|
|
|
virtual void die() override;
|
|
|
|
static RefPtr<ConnectionFromClient> client_connection_for(int client_id);
|
|
|
|
private:
|
|
explicit ConnectionFromClient(NonnullOwnPtr<Core::Stream::LocalSocket>, int client_id);
|
|
|
|
virtual Messages::SQLServer::ConnectResponse connect(DeprecatedString const&) override;
|
|
virtual Messages::SQLServer::PrepareStatementResponse prepare_statement(u64, DeprecatedString const&) override;
|
|
virtual Messages::SQLServer::ExecuteStatementResponse execute_statement(u64, Vector<SQL::Value> const& placeholder_values) override;
|
|
virtual void disconnect(u64) override;
|
|
};
|
|
|
|
}
|