Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: allow plugin identifier to add structs #692

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

Morg42
Copy link
Member

@Morg42 Morg42 commented Nov 27, 2024

Falls jemand probieren möchte - Demonstrator, wie man in einer Konfiguration

klaus:
  plugin_name: knx

structs einbinden kann:

item1:
  struct: knx.teststruct  # Standardvariante

item2:
  struct: klaus.teststruct  # identisch zu oben, geht aber nur mit diesem Patch

Ziel ist es, structs über den Plugin"bezeichner" einzubinden. Wenn das Plugin durch ein priv_foo ersetzt wird, können die struct-Referenzen unverändert benutzt werden.

Unschön ist, dass zur Vermeidung bzw. Auflösung von Kollisionen ein zusätzliches Attribut in die structs geschrieben wird, dass beim Einfügen in den Itembaum wieder entfernt werden muss.

Alternativ könnte man eine Liste von structs führen - da aber das Einlesen, Erstellen und Einbinden von struct in verschiedenen Libraries erfolgt, müsste man diese Liste zentral (zB direkt in shng) verfügbar machen. So ist nur ein zusätzliches (optionales) Argument beim Aufruf erforderlich. Aufrufe, API und Nutzung sind unverändert möglich.

@onkelandy
Copy link
Member

Scheint zu klappen. Hab struct: und struct: eingesetzt und die Structs werden jeweils korrekt geladen. Mit Instanzen hab ich's nicht getestet.

@Morg42 Morg42 added this to the Version 1.12 milestone Dec 8, 2024
@Morg42 Morg42 self-assigned this Dec 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants