Hi,
ich brauch mal wieder etwas Brainstorming
Ich möchte von einem NamedPipe Server neben einem StatusCode am liebsten typvariable offene Array-Parameter (array of const) übertragen. Die verschiedenen Variablen sollen erst im NamedPipe Client zu einer Meldung für den Benutzer zusammengesetzt werden, da dies sprachabhängig in der
GUI geschieht. Für den
IPC habe ich entsprechenden Stream-Zugriff.
Beim Server laufen jetzt StatusInformationen auf wie z.B.
Zitat:
Kategorie: SmallInt 0..5
ID: Integer
Argumente: array of const
In einem Record geht das so natürlich nicht, hier muß ein array of TVarRec verwendet werden.
Ich überlege, wie ich das möglichst geschickt mache und welche Möglichkeiten es gibt:
1) Statt offene, typvariable Parameter werden nur Strings übertragen und die "array of const" werden durch dynm. String-Arrays ersetzt. Vorteil: Einfach zu übertragen (z.B. per StringList). Nachteil: Die Parameter müssen vorher immer auf Str konvertiert werden.
2) Ich bleibe bei offenen Parametern und muß eine VarRecArrayToStrings()- und StringsToVarRecArray()-Fkt schreiben.
Technisch ist das alles realisierbar, man kann ja die VTypen des VarRec ermitteln und die Daten kopieren. Pointer und Objekte bleiben außen vor. Irgendwie fehlt mir hierbei jedoch eine Abstraktionsschicht.
Was würdet Ihr machen, um diese typoffenen Variablen per Stream in einer NamedPipe zu übertragen?
Gruß Assertor