|
Beschreibung
Die Funktion t_getinfo() liefert dem Benutzer Informationen über die aktuelle Charakteristik des darunter liegenden Transportprotokolls, das mit dem Transportendpunkt (Dateideskriptor) fd verbundenen ist. In der t_info-Struktur, auf die der Parameter info zeigt, liefert t_getinfo() die gleichen Informationen zurück, die bereits von t_open() beim Einrichten des Transportendpunkts fd zurückgeliefert wurden. Somit kann der Transportbenutzer mit t_getinfo() jederzeit auf die bei t_open() bereitgestellten Informationen zugreifen.
Die Struktur t_info, auf die der Parameter info zeigt, ist in <xti.h> wie folgt deklariert:
struct t_info { long addr; /* max. Länge der Transportprotokolladresse */ long options; /* max. Anzahl Bytes der protokollspez. Optionen */ long tsdu; /* max. Größe eines Datenpakets (TSDU) */ long etsdu; /* max. Größe eines Pakets für Vorrangdaten (ETSDU) */ long connect; /* max. erlaubte Datenmenge bei Verbindungsaufbau-Funkt. */ long discon; /* max. erlaubte Datenmenge bei t_snddis() und t_rcvdis() */ long servtype; /* von dem Transportanbieter angebotener Diensttyp */ long flags; /* andere Information des Transportanbieters /* };
Die Werte der t_info-Komponenten haben folgende Bedeutung:
addr
Ein Wert ≥ 0 gibt die maximale Länge einer Transportprotokoll-Adresse an. Der Wert -1 zeigt an, dass die Adresslänge nicht begrenzt ist. Der Wert -2 zeigt an, dass der Transportanbieter Benutzerzugriffe auf die Transportprotokolladresse nicht unterstützt.
options
Ein Wert ≥ 0 gibt die maximale Länge (in Bytes) an, die der Transportanbieter für protokollspezifische Optionen unterstützt. Der Wert -1 zeigt an, dass die Länge der Optionen nicht begrenzt ist. Der Wert -2 zeigt an, dass der Transportanbieter Optionen, die vom Benutzer beeinflusst werden können, nicht unterstützt.
tsdu
Ein Wert > 0 gibt die maximale Länge einer Transportdienst-Dateneinheit (TSDU) an. Der Wert 0 zeigt an, dass der Transportanbieter das Konzept der TSDU nicht unterstützt, obwohl er das Senden eines Datenstroms ohne Einhaltung logischer Blockgrenzen über die Verbindung anbietet. Der Wert -1 zeigt an, dass die Länge einer TSDU nicht begrenzt ist. Der Wert -2 zeigt an, dass der Transportanbieter die Übertragung normaler Daten nicht unterstützt.
etsdu
Ein Wert > 0 gibt die maximale Länge einer vorrangigen Transportdienst-Dateneinheit (ETSDU) an. Der Wert 0 zeigt an, dass der Transportanbieter das Konzept der ETSDU nicht unterstützt, obwohl er das Senden eines Datenstroms ohne Einhaltung logischer Blockgrenzen über die Verbindung anbietet. Der Wert -1 zeigt an, dass die Länge einer ETSDU nicht begrenzt ist. Der Wert -2 zeigt an, dass der Transportanbieter die Übertragung vorrangiger Daten nicht unterstützt.
connect
Ein Wert ≥ 0 gibt die maximale Anzahl Daten an, die mit Funktionen zum Verbindungsaufbau gesendet werden können. Der Wert -1 zeigt an, dass die Menge der Daten, die während des Verbindungsaufbaus gesendet werden können, unbegrenzt ist. Der Wert -2 zeigt an, dass der Transportanbieter das Senden von Daten mit Funktionen zum Verbindungsaufbau nicht unterstützt.
discon
Ein Wert ≥ 0 gibt die maximale Anzahl Daten an, die mit den Funktionen t_snddis() und t_rcvdis() gesendet werden können. Der Wert -1 zeigt an, dass die Menge der Daten, die mit Funktionen für den Verbindungsabbau gesendet werden können, unbegrenzt ist. Der Wert -2 zeigt an, dass der Transportanbieter das Senden von Daten mit Funktionen zum Verbindungsabbau nicht unterstützt.
servtype
Diese Komponente spezifiziert den Diensttyp, der vom Transportanbieter unterstützt wird (siehe folgende Seite).
flags
Dieses Feld spezifiziert andere Informationen des Transportanbieters (derzeit werden keine Informationen geliefert).
Wenn der Transportdienstbenutzer protokollunabhängig sein möchte, kann er anhand der oben genannten Werte ermitteln, wie groß die Puffer zur Speicherung der einzelnen Informationen sein müssen. Alternativ kann der Benutzer die Funktion t_alloc() verwenden, um Speicher für diese Puffer anzulegen. Ein Fehler tritt auf, wenn ein Benutzer die zulässigen Grenzwerte beim Aufruf einer XTI-Funktion überschreitet.
Die in den einzelnen t_info-Komponenten gespeicherten Werte können sich infolge einer Option-Aushandlung (mit t_optmgmt()) verändern. Mit der Funktion t_getinfo() kann sich der Benutzer über die jeweils aktuellen Charakteristiken informieren.
Die Komponente info->servtype enthält nach Ausführung von t_getinfo() einen der folgenden Werte:
T_COTS_ORD
Der Transportanbieter unterstützt einen verbindungsorientierten Dienst mit einem optionalen geordneten Verbindungsabbau. Für diesen Diensttyp liefert t_getinfo() den Wert -2 für etsdu, connect und discon zurück.
T_CLTS
Der Transportanbieter unterstützt einen verbindungslosen Dienst. Für diesen Diensttyp liefert t_getinfo() den Wert -2 für etsdu, connect und discon zurück.
Returnwert
0:
Bei Erfolg.
-1:
Bei Fehler. t_ errno wird gesetzt, um den Fehler anzuzeigen.
Fehler
TBADF
Der angegebene Dateideskriptor verweist nicht auf einen Transportendpunkt.
TSYSERR
Während der Ausführung dieser Funktion ist ein Systemfehler aufgetreten.