Bonjour !
Je souhaite pouvoir effectuer des lectures/écritures asynchrones de fichier standards (std::fstream), en rendant cela totalement transparent pour l'utilisateur. Je souhaiterais donc avoir une fonction SynchronousRead (qui utiliserait la fonction standard read), SynchronousWrite (qui utiliserait la fonction standard write) et deux fonctions AsynchronousRead et AsynchronousRead.
D'après mes recherches, il y a des fonctions sous Windows pour ceci (ReadFileEx et WriteFileEx) mais je recherche quelque chose de portable, et je ne trouve rien de satisfaisant.
J'aimerais pouvoir écrire du code qui ressemblerait à ceci :
Y a t-il un moyen portable d'effectuer de telles opérations ? J'ai regardé tout d'abord du côté de boost.Asio, mais Google ne donne absolument aucun résultat, et je ne trouve rien dans la doc qui me permette d'interfacer avec std::fstream.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SynchronousRead (buffer, sizeof (taille)); // Lecture synchrone AsynchronousRead (handleOperation, buffer, sizeof (taille), MonCallback); // Lecture asynchrone, avec appel du callback et récupération des données une fois l'opération terminée ou : AsynchronousRead (handleOperation, buffer, sizeof (taille), NULL); // Lecture asynchrone, récupération plus bas dans la fonction
Suis-je donc obligé de me créer une petite encapsulation de boost.Thread et de les utiliser pour effectuer des lectures/écritures asynchrones ? L'avantage de Boost.Asio étant qu'elle cache visiblement l'utilisation des threads...
Merci
Partager