2011-07-08 9 views
2

Je crée un système de messagerie de jeu et utilise boost :: serialize pour convertir les données de message en flux et les envoyer. Cela fonctionne bien pour transmettre des messages instantanément que je peux envoyer la référence au flux.Meilleure façon de stocker des données de flux

Cependant, je souhaite également mettre en file d'attente des messages dans certaines circonstances. Je ne suis pas sûr de savoir quelle serait la meilleure façon de stocker les données.

J'ai essayé std::queue<std::stringstream> mais cela ne fait qu'errer beaucoup. Std :: bitset semble semi-prometteur, mais je ne suis pas sûr.

Ou est-ce complètement dingue?

+0

Qu'est-ce qui ne va pas avec std :: vector ou std :: queue? –

+0

Je reçois beaucoup d'erreurs quand je fais std :: queue

+0

L'utilisation de stream pour le passage de message en cours n'est pas une bonne idée. L'écriture et la lecture du flux est un surcoût inutile qui peut être évité en introduisant les types de message et les groupes de messages. – Sasha

Répondre

1

Essayez std::queue<std::vector<char> >. La chaîne de caractères que vous avez essayée auparavant n'est pas copiable, il suffit donc de copier les octets. Vous pouvez également utiliser une chaîne comme type de valeur dans la file d'attente, car c'est probablement ce que vous allez sortir de la chaîne de caractères.

Questions connexes