[Qt 4.4.3] QByteArray - QDataStream; utiliser << ou >> avec un type quelconque
Bonjour,
j'ai un petit problème :
Je suis en train de tenter de faire un peu de communication reseau sur mon programme (TCP).
Dans le protocole déjà défini (puisque je reprends le programme), au début de chaque trame, je dois envoyer un en-tête qui est une structure.
Ce que j'aurais voulu faire, c'est utiliser l'opérateur << comme je le fais déjà lorsque je veux faire transiter des types connus (quint8, QString ...).
Par exemple :
Code:
1 2 3 4 5
|
QByteArray data;
QDataStream out(&data, QIODevice::WriteOnly);
out << (quint16) 0; // Fonctionne
out << header; // Ne fonctionne pas, header ne fait pas partie de la arguments list de QDataStream &operator |
sachant que header est une structure qui ressemble à ça :
(Note cmdType est de type enum)
Code:
1 2 3 4 5 6 7 8 9
|
// format d entete des commandes
typedef struct _cmdHeader
{
cmdType m_stCmd; // valeur de la commande
quint32 m_dwSize; // taille de la structure de commande
quint32 m_dwNextCmdOffset; // position de la prochaine commande dans le cas
// des protocoles
} cmdHeader; |
Comment je pourrais faire sachant que de l'autre côté (côté serveur) j'aimerai aussi récupérer cette structure avec l'opérateur réciproque ?