Ich möchte eine Basisklasse wie diese serialise:Wie könnte ich ein Objekt serialisieren, ohne dass die Gefahr besteht, dass Daten beschädigt werden?
class ProcessData
{
public:
ProcessData();
ProcessData(int processNumber, int threadStatus);
~ProcessData();
int getProcessNumber() const;
void setProcessNumber(int processNumber);
int getThreadStatus() const;
void setThreadStatus(int threadStatus);
private:
int _processNumber;
int _threadStatus;
};
und schreiben Sie es auf eine Named Pipe. Ich benutze Named Pipe, weil ich meinen Child-Prozess brauche, um Daten an meinen Hauptprozess zu senden.
Mein Hauptprozess wird diese Named Pipe lesen und mein Objekt zurückbekommen.
Problem ist, dass viele Prozesse in die Named Pipe schreiben könnten, was zu Problemen führen kann. Um diese Klasse serialise Ich dachte, ich, so etwas zu können:
write(namePipeFileDesriptor, &processDataClass, sizeof(processDataClass)));
Glauben Sie, dass könnte funktionieren, oder gibt es noch andere Alternativen, außer boost::serialization
?
Es gibt viele Möglichkeiten zur Kommunikation zwischen Kind- und Elternprozessen außer Named Pipes. Sie haben die schlechteste Lösung gewählt, und fast die einzige, die Ihnen das Problem gibt, das Sie erwähnen. Warum? – EJP
Fragen Sie nach Transport oder nach Format? Im Moment kann ich nicht sagen, was deine eigentliche Frage ist.Welche Probleme versuchen Sie zu lösen? –