Hallo zusammen,
mir ist nicht ganz klar, welche der folgenden Methoden die vernünftigste bzw. einzig richtige ist, ein Interface für eine RCP-Anwendung aufzubauen.
Es gibt folgende Aufgabenstellung:
Zwei Bundles sollen miteinander agieren, und zwar eines, das Verbindungen verwaltet und eines, welches Daten über eine Schnittstelle versenden und empfangen kann.
Das Bundle für die Verbindungsverwaltung definiert einen Extension Point mit dem Interface für die Methoden connect() disconnect() sowie sendPacket(String), worüber ein Schnittstellen-Plugin z.B. die Verbindung zur seriellen Schnittstelle öffnen, schließen, sowie Daten versenden kann.
Nun kommen aber auch Daten von aussen über die Schnittstelle rein, die irgendwo behandelt werden müssen, des weiteren kann die Verbindung plötzlich beendet werden (wenn man z.B. statt einer seriellen Schnittstelle TCP/IP verwendet) - und jetzt kommen die Möglichkeiten:
a) Erweitere ich das Interface der Verbindungsverwaltung um die Methoden addPacketListener(IPacketListener), removePacketListener(IPacketListener), addStateListener(IConnectionStateListener) sowie removeStateListener(...)
oder ist folgendes besser:
b) Ich definiere einen zweiten Extension Point im Schnittstellen-Bundle, über das sich andere Bundles einklinken können, wenn sie Pakete empfangen oder über Änderungen am Verbindungszustand informiert werden möchten?
Funktioniert Fall b) überhaupt, wenn das Verbindungs-Verwaltungs-Plugin auch Änderungen am Verbindungszustand mitbekommen soll? Denn eigentlich ist Plugin 1 ja dann von Plugin 2 abhängig und umgekehrt...
Oder gibt es eine noch elegantere Lösung als die beschriebenen?
Vielen Dank schon mal!
mir ist nicht ganz klar, welche der folgenden Methoden die vernünftigste bzw. einzig richtige ist, ein Interface für eine RCP-Anwendung aufzubauen.
Es gibt folgende Aufgabenstellung:
Zwei Bundles sollen miteinander agieren, und zwar eines, das Verbindungen verwaltet und eines, welches Daten über eine Schnittstelle versenden und empfangen kann.
Das Bundle für die Verbindungsverwaltung definiert einen Extension Point mit dem Interface für die Methoden connect() disconnect() sowie sendPacket(String), worüber ein Schnittstellen-Plugin z.B. die Verbindung zur seriellen Schnittstelle öffnen, schließen, sowie Daten versenden kann.
Nun kommen aber auch Daten von aussen über die Schnittstelle rein, die irgendwo behandelt werden müssen, des weiteren kann die Verbindung plötzlich beendet werden (wenn man z.B. statt einer seriellen Schnittstelle TCP/IP verwendet) - und jetzt kommen die Möglichkeiten:
a) Erweitere ich das Interface der Verbindungsverwaltung um die Methoden addPacketListener(IPacketListener), removePacketListener(IPacketListener), addStateListener(IConnectionStateListener) sowie removeStateListener(...)
oder ist folgendes besser:
b) Ich definiere einen zweiten Extension Point im Schnittstellen-Bundle, über das sich andere Bundles einklinken können, wenn sie Pakete empfangen oder über Änderungen am Verbindungszustand informiert werden möchten?
Funktioniert Fall b) überhaupt, wenn das Verbindungs-Verwaltungs-Plugin auch Änderungen am Verbindungszustand mitbekommen soll? Denn eigentlich ist Plugin 1 ja dann von Plugin 2 abhängig und umgekehrt...
Oder gibt es eine noch elegantere Lösung als die beschriebenen?
Vielen Dank schon mal!