J'ai une bibliothèque C++ qui devrait exposer certains appels system \ resource comme des rappels de l'application liée. Par exemple: l'application d'interfaçage (qui utilise cette bibliothèque) peut envoyer des fonctions de rappel de gestion de socket - envoyer, recevoir, ouvrir, fermer, etc., et la bibliothèque utilisera cette implémentation au lieu de l'implémentation de la bibliothèque. (Ceci permet à l'application de gérer les sockets elle-même, peut être utile). Cette bibliothèque doit exposer également plus de rappels, comme, par exemple, une validation de mot de passe, donc je me demande s'il existe une méthode préférée pour exposer l'option d'envoi de rappel dans une API. Quelque chose comme:Quelle est la meilleure façon d'exposer une API de rappel - C++
int AddCallbackFunc (int functionCallbackType, <generic function prototype>, <generic way to pass some additional arguments>)
Ensuite, au sein de ma bibliothèque je vais assigner le rappel au pointeur de fonction appropriée en fonction du paramètre de functionCallbackType.
Existe-t-il un moyen de l'implémenter de manière générique qui conviendra à TOUT prototype de fonction et à TOUT autre argument? Votre aide sera plus qu'appréciée ... Merci!
Qu'en est-il d'une interface? Mutateurs virtuels pour définir les "arguments" et les fonctions virtuelles pour les rappels. –