La classe EventBufferEvent EventBufferEvent
&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; EventBufferEvent final EventBufferEvent Constants const int EventBufferEvent::READING 1 const int EventBufferEvent::WRITING 2 const int EventBufferEvent::EOF 16 const int EventBufferEvent::ERROR 32 const int EventBufferEvent::TIMEOUT 64 const int EventBufferEvent::CONNECTED 128 const int EventBufferEvent::OPT_CLOSE_ON_FREE 1 const int EventBufferEvent::OPT_THREADSAFE 2 const int EventBufferEvent::OPT_DEFER_CALLBACKS 4 const int EventBufferEvent::OPT_UNLOCK_CALLBACKS 8 const int EventBufferEvent::SSL_OPEN 0 const int EventBufferEvent::SSL_CONNECTING 1 const int EventBufferEvent::SSL_ACCEPTING 2 &Properties; public int fd public int priority public readonly EventBuffer input public readonly EventBuffer output &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::TIMEOUT EventBufferEvent::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;