Projekt | io_fkts |
---|---|
Library | - |
Includedatei | io.h |
Jeder Treiber muß eine Initfunktion haben, die die IoFktStruct mit den Funktionspointern füllt. Die einzelnen Felder der Struktur sind dabei wie folgt zu benutzen:
#define IOFKT_INVALID_FD -1 typedef struct { void *private; int (*GetFd)(void *private); BOOL (*Open)(void *private); void (*Close)(void *private); BOOL (*Read)(void *private, int fd, BOOL PendingData, MrCs2CanDataType *CanMsg); BOOL (*Write)(void *private, int ReceiverSocket, MrCs2CanDataType *CanMsg); } IoFktStruct;
Feld | Beschreibung | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Open() | Die Open Funktion wird als erste Funktion aufgerufen, um den Treiber zu öffnen. Hier kann die Verbindung zu einem Server aufgebaut werden. Oder selbst einen Socket für einen Dienst geöffnet werden. | ||||||||||||
Close() | Die Close Funktion wird zum Ende aufgerufen und kann die Sockets wieder schließen. | ||||||||||||
GetFd() | Diese Funktion liefert der Reihe nach jeden Socket, den der Treiber benutzt. Nach dem letzten Socket liefet der nächste Aufruf den Wer IOFKT_INVALID_FD als Indikator, daß der letzte Socket geliefert wurde. Der danach nächste Aufruf fängt wieder mit dem ersten Socket an. Damit kann z.B. der allgemeine Teil alle Sockets für den Aufruf von select() ermitteln. | ||||||||||||
Read() | Diese Funktion wird aufgerufen, wenn auf einem Socket
Daten gelesen werden können. Die Funktion hat folgende Parameter:
| ||||||||||||
Write() | Diese Funktion wird aufgerufen, wenn aus dem System
verschickt werden sollen. Die Funktion hat folgende Parameter:
| ||||||||||||
private | Dies ist der Zeiger auf private Daten, der von der Initfunktion des Treibers angelegt wurde. |