Est-il possible de bloquer la suppression de certains emplacements d'un signal dans la bibliothèque boost.signals?
Si c'est le cas, à quoi ressemblera un code qui fait une telle chose? Ai-je besoin de créer une classe dérivée juste pour ce signal spécifique?Comment empêcher le retrait des emplacements d'un certain signal?
1
A
Répondre
1
Fournissez votre propre fonction de connexion d'emplacement qui ne parvient pas à rétablir la connexion. Sans la connexion, le client ne peut pas le rompre.
Edit: exemple de code:
struct my_class
{
boost::signals::connection listen_event1(boost::function<void (my_class const&)> const& f)
{
return signal1.connect(f);
}
void listen_event2(boost::function<void my_class const&)> const& f)
{
signal2.connect(f);
}
private:
typedef boost::signals::signal<void(my_class const&)> sig_t;
sig_t signal1;
sig_t signal2;
};
connexions Signal2 ne peuvent pas être déconnectés.
Questions connexes
- 1. Signal et emplacements pour l'application console Qt?
- 2. PyQt & unittest - Test du signal et des emplacements
- 3. Comment connecter le signal pressé() de 32 boutons à une seule fonction sans déclarer 32 emplacements?
- 4. Comment empêcher un événement routé de se déclencher sur des emplacements spécifiques dans XAML?
- 5. Qt cas d'utilisation pour le même signal à 2 emplacements sur le même objet?
- 6. Ordre des emplacements appelés sur QObject
- 7. Comment empêcher les appareils d'entrer en conflit avec le code de signal django post_save?
- 8. Android: obtenir des emplacements d'image
- 9. Signaux et emplacements avec Qtoolbutton
- 10. À propos des signaux et des emplacements en qt
- 11. Comment empêcher le démarrage des processus?
- 12. Comment le signal et les slots sont-ils implémentés sous le capot?
- 13. Obtention des emplacements des icônes de bureau?
- 14. comment déterminer le signal WiFi dans l'iPhone
- 15. Ajout de texte après le retrait des lignes
- 16. Comment contrôler le signal SIGTSTP pour les processus enfants?
- 17. Comment puis-je empêcher Flash de modifier le retrait lorsque l'utilisateur clique sur un lien hypertexte dans TextField?
- 18. Comment centrer un terrain R après axe Le retrait des étiquettes
- 19. Java: capturer le signal sonore
- 20. Programme reçu le signal SIGABRT
- 21. Qt - arguments dans les emplacements de signaux
- 22. Retrait de caractères avec le bouton
- 23. Comment puis-je empêcher un CWnd d'obtenir le focus?
- 24. Comment mettre en retrait des pages jsp en eclipse
- 25. Problème avec le retrait de l'enfant
- 26. Empêcher le processus enfant des appels système
- 27. Comment empêcher le flv hotlinking?
- 28. Comment mettre en retrait le code OCaml existant
- 29. Empêcher le chevauchement des fenêtres dans GTK
- 30. Le plus rapide C++ Signal/Slot Lib sans dépendance
Vous voulez dire que mon signal sera un signal spécial dérivé de l'original? Est-ce qu'il aura deux fonctions de connexion? Un qui accepte une connexion amovible et un qui accepte une connexion non amovible? Ou voulez-vous dire que je devrais fournir une fonction qui se connecte mais ne renvoie pas une connexion? Comment puis-je surcharger le type de retour? –
Non. J'espère que vous n'exposez pas votre objet signal publiquement, non? Vous avez des fonctions dans la classe qui génère des signaux qui vous permettent de vous connecter avec eux. Ne renvoyez simplement pas l'objet boost :: signals :: connection renvoyé par l'objet signal que vous utilisez pour implémenter ce signal. –
J'expose ces signaux à travers des getters. Je l'ai vu fait dans http://www.webtoolkit.eu (Wt) –