La classe EventBufferEventEventBufferEvent
&reftitle.intro;
Représente un buffer d'événement Libevent.
Habituellement, une application veut mettre en buffer des données en plus
de juste répondre à des événements. Lorsque nous voulons écrire des données,
par exemple, le mécanisme habituel ressemble à :
On décide que l'on veut écrire des données dans une connexion ; placez
ces données dans un buffer.
On attend que la connexion devienne accessible en écriture
On écrit autant de données que l'on peut
On se souvient de la quantité écrite, et si on a encore plus de données
à écrire, on attend que la connexion redevienne accessible en écriture.
Ce mécanisme de mise en buffer I/O est suffisament commune pour que
Libevent fournisse un mécanisme générique pour cela. Un buffer d'événement
consiste en un transport sous-jacent (comme un socket), un buffer de
lecture, et un buffer d'écriture. Au lieu d'un événement classique,
qui fournit des fonctions de rappel lorsque le transport sous-jacent
est prêt à être lu ou écrit, un buffer d'événement appelle ses fonctions
de rappel fournis par l'utilisateur lorsqu'il a lu ou écrit suffisament
de données.
&reftitle.classsynopsis;
EventBufferEventfinalEventBufferEventConstantsconstintEventBufferEvent::READING1constintEventBufferEvent::WRITING2constintEventBufferEvent::EOF16constintEventBufferEvent::ERROR32constintEventBufferEvent::TIMEOUT64constintEventBufferEvent::CONNECTED128constintEventBufferEvent::OPT_CLOSE_ON_FREE1constintEventBufferEvent::OPT_THREADSAFE2constintEventBufferEvent::OPT_DEFER_CALLBACKS4constintEventBufferEvent::OPT_UNLOCK_CALLBACKS8constintEventBufferEvent::SSL_OPEN0constintEventBufferEvent::SSL_CONNECTING1constintEventBufferEvent::SSL_ACCEPTING2&Properties;publicintfdpublicintprioritypublicreadonlyEventBufferinputpublicreadonlyEventBufferoutput&Methods;
&reftitle.properties;
fd
Descripteur de fichier numérique associé avec le buffer d'événement.
Normalement, représent un socket lié. Vaut &null; s'il n'y a aucun
descripteur de fichier (socket) associé avec le buffer d'événement.
priority
La priorité de l'événement, utilisée pour implémenter le buffer
d'événement.
input
Objet de buffer d'entrée sous-jacent (EventBuffer)
output
Objet de buffer de sortie sous-jacent (EventBuffer)
&reftitle.constants;
EventBufferEvent::READING
Un événement survient pendant l'opération de lecture sur le
bufferevent. Voir les autres drapeaux pour connaître le type d'événement.
EventBufferEvent::WRITING
Un événement survient pendant une opération d'écriture sur le
bufferevent. Voir les autres drapeaux pour connaître le type d'événement.
EventBufferEvent::EOF
On récupère une indication de fin de fichier sur le buffer d'événement.
EventBufferEvent::ERROR
Une erreur survient pendant une opération bufferevent. Pour plus
d'informations sur l'erreur, appelez la méthode
EventUtil::getLastSocketErrno et/ou
EventUtil::getLastSocketError.
EventBufferEvent::TIMEOUTEventBufferEvent::CONNECTED
Termine une connexion demandée sur le bufferevent.
EventBufferEvent::OPT_CLOSE_ON_FREE
Lorsque le buffer d'événement est libéré, ferme le transport
sous-jacent. Ceci va clôre le socket sous-jacent, libérer le buffer
d'événement sous-jacent, etc.
EventBufferEvent::OPT_THREADSAFE
Alloue automatiquement des verrous pour le bufferevent, afin
de rendre sécurisé l'utilisation de plusieurs threads.
EventBufferEvent::OPT_DEFER_CALLBACKS
Lorsque ce drapeau est défini, le bufferevent reporte toutes ses
fonctions de rappel. Voir
la documentation sur la programmation réseau rapide, portable, non bloquante avec Libevent,
le report des fonctions de rappel.
EventBufferEvent::OPT_UNLOCK_CALLBACKS
Par défaut, lorsque le bufferevent est défini pour être sécurisé au niveau
des threads, le verrou du buffer d'événement est maintenu, y compris si
une fonction de rappel utilisateur est appelée. La définition de cette option
permet à Libevent de libérer le verrou du buffer d'événement lorsque la fonction
de rappel est appelée.
EventBufferEvent::SSL_OPEN
La négociation SSL se fait
EventBufferEvent::SSL_CONNECTING
SSL effectue actuellement la négociation comme client
EventBufferEvent::SSL_ACCEPTING
SSL effectue actuellement la négociation comme serveur
&reference.event.entities.eventbufferevent;