SQLClient.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * Copyright (c) 2021, Jan de Visser <jan@de-visser.net>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibIPC/ServerConnection.h>
  8. #include <SQLServer/SQLClientEndpoint.h>
  9. #include <SQLServer/SQLServerEndpoint.h>
  10. namespace SQL {
  11. class SQLClient
  12. : public IPC::ServerConnection<SQLClientEndpoint, SQLServerEndpoint>
  13. , public SQLClientEndpoint {
  14. C_OBJECT(SQLClient);
  15. virtual ~SQLClient();
  16. Function<void(int)> on_connected;
  17. Function<void(int)> on_disconnected;
  18. Function<void(int, int, String const&)> on_connection_error;
  19. Function<void(int, int, String const&)> on_execution_error;
  20. Function<void(int, bool, int, int, int)> on_execution_success;
  21. Function<void(int, Vector<String> const&)> on_next_result;
  22. Function<void(int, int)> on_results_exhausted;
  23. private:
  24. SQLClient()
  25. : IPC::ServerConnection<SQLClientEndpoint, SQLServerEndpoint>(*this, "/tmp/portal/sql")
  26. {
  27. }
  28. virtual void connected(int connection_id) override;
  29. virtual void connection_error(int connection_id, int code, String const& message) override;
  30. virtual void execution_success(int statement_id, bool has_results, int created, int updated, int deleted) override;
  31. virtual void next_result(int statement_id, Vector<String> const&) override;
  32. virtual void results_exhausted(int statement_id, int total_rows) override;
  33. virtual void execution_error(int statement_id, int code, String const& message) override;
  34. virtual void disconnected(int connection_id) override;
  35. };
  36. }