Netzgesteuerte RSI-Schnittstelle

Das Protokoll xmquery definiert drei Typen von Datenpaketen, die vom Datenlieferanten des xmtopas -Dämons gesendet werden, ohne von einem Anforderungspaket angefordert zu werden.

Die Anforderungspakettypen sind still_alive, data_feedund except_rec . Die still_alive -Pakete werden intern in der RSI-Schnittstelle verarbeitet und erfordern keine Programmierung im Datenkonsumentenprogramm.

Die data_feed -Pakete werden asynchron mit allen Paketen empfangen, die von den Subroutinen des Typs 'request-response' generiert werden. Wenn ein data_feed -Paket bei der Verarbeitung einer Request-Response-Funktion empfangen wird, wird die Steuerung an eine Callback-Funktion übergeben, die benannt werden muss, wenn die RSI-Kennung mit der Subroutine RSiOpenx initialisiert wird.

Wenn das Datenkonsumentenprogramm die Request-Response-Funktionen nicht verwendet, muss es weiterhin data_feed -Pakete empfangen und verarbeiten können. Dies geschieht mit der Funktion RSiMainLoopx , die die Callback-Funktion aufruft, sobald ein Paket empfangen wird.

Tatsächlich wird die Callback-Funktion für Datenfeeds für alle empfangenen Pakete aufgerufen, die nicht als Antwort auf die zuletzt gesendete Anforderung identifiziert werden können, es sei denn, solche Pakete haben den Typ i_am_back, still_aliveoder except_rec. Beachten Sie, dass Antworten auf "request-response" -Pakete, die nach einer Zeitlimitüberschreitung eingehen, an die Callback-Funktion gesendet werden. Es liegt in der Verantwortung Ihrer Callback-Funktion, den empfangenen Pakettyp zu testen.

Die except_rec -Pakete werden asynchron mit allen Paketen empfangen, die von den Subroutinen des Typs 'request-response' generiert werden. Wenn ein except_rec -Paket bei der Verarbeitung einer Anforderung/Antwort-Funktion empfangen wird, wird die Steuerung an eine Callback-Funktion übergeben, die benannt werden muss, wenn die RSI-Kennung mit der Subroutine RSiOpenx initialisiert wird.

Wenn das Datenkonsumentenprogramm die Request-Response-Funktionen nicht verwendet, muss es weiterhin except_rec -Pakete empfangen und verarbeiten können. Dies geschieht mit der Funktion RSiMainLoopx , die die Callback-Funktion aufruft, wenn ein Paket empfangen wird.

Hinweis: Die API löscht except_rec -Nachrichten von einem fernen Host, sofern keine Callback-Funktion zur Verarbeitung des Nachrichtentyps im Aufruf der Subroutine RSiOpenx für diesen Host angegeben wurde.