nope/lib/pubSub
Martin Karkowski d785f72667 Merge branch 'dev' of https://github.com/anti-held-333/nope-backend into lib
# Conflicts:
#	lib/cli/runNopeBackend.ts
#	lib/dispatcher/nopeDispatcher.ts
#	lib/types/nope/nopeDispatcher.interface.ts
#	modules/wamo/src/wamo.basemodule.module.ts
#	modules/wamo/src/wamo.converter.module.ts
#	modules/wamo/src/wamo.lineManager.module.ts
#	modules/wamo/src/wamo.transportManager.simple.module.ts
2022-01-16 20:38:45 +01:00
..
index.ts Updating Interfaces, and rpc manager and writing nope-core 2022-01-07 18:12:08 +01:00
nopeDataPubSubSystem.ts Merge branch 'dev' of https://github.com/anti-held-333/nope-backend into lib 2022-01-16 20:38:45 +01:00
nopePubSubSystem.spec.ts zwischen stand 2022-01-10 07:52:05 +01:00
nopePubSubSystem.ts Merge branch 'dev' of https://github.com/anti-held-333/nope-backend into lib 2022-01-16 20:38:45 +01:00
README.MD running formater 2021-12-04 08:25:26 +01:00

Todo

  • Beschreibung aktualisieren
  • Tests für extractPatternForSubscriptions = false

PubSubSystem

Das Speicher System ist in der Lage, Dict-Nested-Objects zu Speicher (also Objekte die von einem JSON-Format abstammen) Jedes Element dieses Objektes ist einzel abrufbar über Pointer beispielsweise sei folgendes Objekt gebeben:

Variablen-Name = "Beispiel"

Variablen-Inhalt (Darstellung in JSON):

{
  "a": 1337,
  "b": [1, 3, 3, 7],
  "c": "1337",
  "d": {
    "a_1": "Diesen Wert will ich haben",
    "a_2": "Diesen Wert will ich auch haben"
  }
}

Verwendetes Trennzeichen für die Pointer: "/"

Um nun auf die Variablen Felder a_1 und a_2 zuzugreifen gibt es nun folgende möglichkeiten:

  1. Die Elemente jeweils einzeln abrufen, dabei entstehen folgende Pointer
  • Beispiel/d/a_1
  • Beispiel/d/a_2
  1. Alternativ kann auch sofort das Objekt abgerufen werden => einzelner Aufruf:
  • Beispiel/d

Ferner bietet das Speicher-System ein Publish-and-Subscribe Pattern => Subscriber können über Variableänderungen informiert werden. Dazu geben sie bei der Regristierung ihre benötigte Callback-Funktion an, sodass ein Aufruf erfolgen kann. Die Benachrichtigungen KÖNNEN asynchron erfolgen, jedoch werden Kernel intern nur synchrone Subscriptionen verwendet.