Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/FileManagement/flm_dtc_impl.h
T
torsten 851d47e114 BUILD_RTI=OFF: 1902/1902 Targets erfolgreich, DDS-Stubs vervollständigt
Neue Stub-Header für BUILD_RTI=OFF Konfiguration:
- include/DDS/Generic/generic_base.h: Topic-Name-Templates, Helper-Funktionen
- include/DDS/Generic/generic_logger.h: Logger-Wrapper mit DataType-Enum
- include/DDS/Generic/ddsgen_export.h: Export-Makros (leer für OFF)
- include/DDS/Generic/generic_data_reader.h: Data Reader Template-Stub
- include/DDS/DTC/generic_dtc.h: Minimale DDS-Typen für DTC
- include/LtsUtils/LtsUtilsCore/data_modification_enum.h: DataModification Enum
- include/FileManagement/flm_dtc_impl.h: Virtuelle Methoden für Name-Helper
- include/OperatorManagement/opm_dtc_impl.h: DtcImpl ohne Q_OBJECT

Wichtige Änderungen:
- QObject-Basisklasse entfernt für DatabaseInterfaceImpl und DtcImpl (BUILD_RTI=OFF)
- Logger-Stub verwendet Qt-Logging (qDebug/qWarning/qCritical)
- FileStatus als int-Alias statt enum class für BUILD_RTI=OFF
- CMake: DDS-Bibliotheken als leere INTERFACE-Targets für BUILD_RTI=OFF
- std::optional: is_set() → has_value(), get() → value()
- QList → std::vector Konversionen korrigiert
- qAsConst-Fehler mit rvalue expressions behoben

Build-Status: 1902/1902 Targets erfolgreich (BUILD_RTI=OFF)
Tests: Nicht ausführbar ohne RTI Connext DDS (BUILD_RTI=ON erforderlich)
2026-08-30 10:36:47 +02:00

86 lines
3.1 KiB
C++

/**
* @RDE_HEADER@
* FileManagement DTC Implementation
* $Id$
* $HeadURL$
* $Author$
* Stub-Header für Qt6-Migration - ersetzt DDS-generierten Header
*/
#pragma once
#include <FileManagement/flm_db_impl.h>
#include <DDS/DTC/generic_dtc.h>
#include <memory>
// Forward declarations für DDS
namespace DDSConnector
{
class DdsConnector;
}
// Stub für DDS DataReader - wird normalerweise von DDS generiert
template<typename T>
class DdsDataReaderStub
{
public:
struct LoanedSamplesWrapper
{
auto begin() { return m_samples.begin(); }
auto end() { return m_samples.end(); }
std::vector<T> m_samples;
};
LoanedSamplesWrapper readAlive() { return LoanedSamplesWrapper{}; }
};
//-------------------------------------------------------------------------------------------------------------
namespace FileManagement
{
namespace Interface
{
/**
* @brief DtcImpl - Basisklasse für FileManagement DTC
*
* Stellt Logger und DDS-DataReader für Custom-Implementierungen bereit
* Erbt von DatabaseInterfaceImpl für Datenbank-Zugriff
*/
class DtcImpl : public DatabaseInterfaceImpl
{
public:
explicit DtcImpl(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector)
: DatabaseInterfaceImpl()
, m_ddsConnector(ddsConnector)
, m_dtcFileContent(std::make_unique<DdsDataReaderStub<FileContent>>())
, m_dtcFolder(std::make_unique<DdsDataReaderStub<Folder>>())
{
// Logger wird von DatabaseInterfaceImpl bereitgestellt
// m_logger ist in DatabaseInterfaceImpl definiert
}
~DtcImpl() override = default;
// Virtuelle Methoden für Custom-Implementierung
virtual bool getAllTemplates(QList<FileContent> &allTemplates) = 0;
virtual bool getAllFiles(const FileType &fileType, int folderId, QStringList &allFiles, bool showHidden = false) = 0;
virtual bool getFilesOperator(const FileType &fileType, int folderId, int operatorId, QStringList &allFiles) = 0;
virtual bool getFile(const FileType &fileType, int folderId, const QString &fileName, FileContent &fileMetadata) = 0;
virtual int getExerciseId(int folderId) = 0;
virtual int getFileId(const FileType &fileType, const QString &fileName, int exerciseId, int phaseId) = 0;
virtual int findFolder(int parentId, const QString &name) const = 0;
virtual int getExerciseFolderId(int exerciseId) const = 0;
virtual int getPhaseFolderId(int exerciseId, int phaseId) const = 0;
virtual int getPartyFolderId(int exerciseId, int partyId) const = 0;
// Default-Implementierungen für Namen-Helper
virtual QString getExerciseFolderName(int exerciseId) const { return QLatin1String("$EX_") + QString::number(exerciseId); }
virtual QString getPartyFolderName(int partyId) const { return QLatin1String("$PY_") + QString::number(partyId); }
virtual QString getPhaseFolderName(int phaseId) const { return QLatin1String("$PH_") + QString::number(phaseId); }
protected:
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
std::unique_ptr<DdsDataReaderStub<FileContent>> m_dtcFileContent;
std::unique_ptr<DdsDataReaderStub<Folder>> m_dtcFolder;
};
} // namespace Interface
} // namespace FileManagement