QLibrary oder QPluginLoader best Practices?

Alles rund um die Programmierung mit Qt
Antworten
Netzschleicher
Beiträge: 11
Registriert: 24. Juli 2013 12:59

QLibrary oder QPluginLoader best Practices?

Beitrag von Netzschleicher »

Hallo an alle,

ich habe hier einmal eine Frage in die Runde wie Ihr mit Shared Librarys umgeht.

Ich habe eine Hauptapplikation welche über Qt-Plugins mit verschiedenen Datenbanken funktionieren soll. Die verschiedenen Datenbankverbindungen werden wie angedeutet über Plugins gelöst. Da die einzelnen Plugins ihre Konfigurationsdaten selbstständig laden bzw. speichern habe ich die gesamten
Konfigurationsvariablen nebst load und save Funktion in eine shared Library ausgelagert welche von der Hauptapplikation bzw. von den Plugins dann geladen werden können.
Gibt es da nun eine 'best practice' wie diese 'Settings-Library' verwendet werden sollte?

Als Möglichkeit wären ja gegeben,

1. als hart verlinkte shread Libraray über die .pro Datei.

Code: Alles auswählen

LIBS += -L$$OUT_PWD/../build/ -ltpoSettings
Dieses wäre recht einfach, man müsste nur die Header-Datei einbinden und könnte die Klasse dann ganz normal nutzen.

2. als QPlugin jedesmal wenn die Settingsdaten gebraucht werden zu laden.

Code: Alles auswählen

QPluginLoader SettingsPlugin("tpoSettings");
SettingsInterface *settings = qobject_cast<SettingsInterface *>(SettingsPlugin.instance());
Das würde die Möglichkeit eröffnen beim Fehlen der Library eine eindeutige Fehlermeldung an den User zu geben.

oder

3. mittels QLibrary zu laden und jede einzelne Methode per 'resolve' zugreifbar zu machen.
Auch hier wäre die Möglichkeit beim Fehlen der Library eine eindeutige Fehlermeldung zu generieren. Jedoch ist diese Art
des Handlings doch sehr aufwendig.

Wie macht Ihr das bei euch?
Wäre schön wenn Ihr dazu ein paar Meinungen schreiben könntet.

Grüße Netzschleicher
Antworten