File indexing completed on 2025-01-05 04:47:01

0001 /***************************************************************************
0002  *   SPDX-FileCopyrightText: 2013 Volker Krause <vkrause@kde.org>          *
0003  *                                                                         *
0004  *   SPDX-License-Identifier: LGPL-2.0-or-later                            *
0005  ***************************************************************************/
0006 
0007 #pragma once
0008 
0009 #include "schematypes.h"
0010 
0011 namespace Akonadi
0012 {
0013 namespace Server
0014 {
0015 /** Methods to access the desired database schema (@see DbInspector for accessing
0016     the actual database schema).
0017  */
0018 class Schema
0019 {
0020 public:
0021     inline virtual ~Schema() = default;
0022 
0023     /** List of tables in the schema. */
0024     virtual QList<TableDescription> tables() = 0;
0025 
0026     /** List of relations (N:M helper tables) in the schema. */
0027     virtual QList<RelationDescription> relations() = 0;
0028 
0029 protected:
0030     explicit Schema() = default;
0031 
0032 private:
0033     Q_DISABLE_COPY_MOVE(Schema)
0034 };
0035 
0036 } // namespace Server
0037 } // namespace Akonadi