J'ai un protocole d'échange de données de base nommé P-Protocole.
Ce porotocole peut être encapsuler ou pas dans un autre protocole S-Protocole.
S-Protocole ne peut exister sans P-Protocole.
Les deux protocoles dispose de leur propre commande aux-quelle ils doivent répondre.
Comment pourrait-je faire (Proposition d'autre solution)?
Ma solution :
Utilisation du design pattern décorateur.
ProtocolMng est le composant du design pattern.
La classe TransportProtocol est composé d'un support de communication et d'un ProtocolMng.
P-Protocole est un protocole concret. S-Protocole un décorateur.
Lors de la réception de trame je fait HandleFrame() sur le ProtocolMng. Le S-Protocole désencapsule les données et les fait traiter par P-Protocole.
Mais c'est ici que j'ai un problème.
Lorsque le P-Protocole doit envoyer des données (répondre à une commande) il faut qu'elle soit encapsuler par le S-Protocole.
Tout en sachant que le S-Protocole peut également envoyer des données qui ne doivent pas être encapsuler.
J'ai penser informer le TransportProtocol qu'il y a des données à envoyer. En-suite, le TransportProtocol récupérer les données à envoyer. De cette manière les données peuvent être encapsulée, mais cela fait beaucoup de copie.
PS: Le développement est en C++.
Partager