La classe EventBufferEvent
(PECL event >= 1.2.6-beta)
Introduction
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.
Synopsis de la classe
$dns_base
,
string
$hostname
,
int
$port
[,
int
$family
= EventUtil::AF_UNSPEC
] ) : bool$base
[,
mixed
$socket
= NULL
[,
int
$options
= 0
[,
callable
$readcb
= NULL
[,
callable
$writecb
= NULL
[,
callable
$eventcb
= NULL
]]]]] )$readcb
,
callable
$writecb
,
callable
$eventcb
[,
string
$arg
] ) : void$base
,
EventBufferEvent
$underlying
,
EventSslContext
$ctx
,
int
$state
[,
int
$options
= 0
] ) : EventBufferEvent$base
,
mixed
$socket
,
EventSslContext
$ctx
,
int
$state
[,
int
$options
] ) : EventBufferEventPropriétés
- 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)
Constantes pré-définies
-
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
Sommaire
- EventBufferEvent::close — Ferme le descripteur de fichier associé avec le buffer d'événements courant
- EventBufferEvent::connect — Connecte le descripteur de fichier du tampon d'événement à l'adresse fournie, ou au socket UNIX
- EventBufferEvent::connectHost — Connexion à un hôte
- EventBufferEvent::__construct — Construit un objet EventBufferEvent
- EventBufferEvent::createPair — Crée deux événements de tampon connectés l'un à l'autre
- EventBufferEvent::disable — Désactive les événements de lecture, d'écriture ou des deux sur un événement de tampon
- EventBufferEvent::enable — Active les événements de lecture, d'écriture, ou des deux, sur un événement de tampon
- EventBufferEvent::free — Libère un événement de tampon
- EventBufferEvent::getDnsErrorString — Retourne une chaîne décrivant la dernière erreur DNS
- EventBufferEvent::getEnabled — Retourne un masque d'événements actuellement actifs sur le tampon d'événements
- EventBufferEvent::getInput — Retourne le tampon d'entrée associé avec le tampon d'événements courant
- EventBufferEvent::getOutput — Retourne le tampon de sortie associé avec le tampon d'événement courant
- EventBufferEvent::read — Lit les données du tampon
- EventBufferEvent::readBuffer — Vide le contenu entier du tampon d'entrée et le place dans le tampon
- EventBufferEvent::setCallbacks — Assigne les fonctions de rappel pour la lecture, l'écriture, et les statuts d'événements
- EventBufferEvent::setPriority — Assigne une priorité pour un tampon d'événements
- EventBufferEvent::setTimeouts — Défini le mode lecture et écriture pour le délai d'attente maximal d'un tampon d'événement
- EventBufferEvent::setWatermark — Active la lecture, et/ou l'écriture des filigranes
- EventBufferEvent::sslError — Retourne l'erreur OpenSSL la plus récente rapportée par le tampon d'événement
- EventBufferEvent::sslFilter — Crée un nouveau tampon d'événement SSL, dont les données seront envoyées via un autre tampon d'événement
- EventBufferEvent::sslGetCipherInfo — Retourne une description textuelle d'un cipher
- EventBufferEvent::sslGetCipherName — Retourne le nom du cipher courant pour la connexion SSL
- EventBufferEvent::sslGetCipherVersion — Retourne la version du cipher utilisé pour la connexion SSL courante
- EventBufferEvent::sslGetProtocol — Retourne le nom du protocole utilisé pour la connexion SSL courante
- EventBufferEvent::sslRenegotiate — Demande au tampon d'événement de commencer une renégociation SSL
- EventBufferEvent::sslSocket — Crée un nouveau tampon SSL dont ces données seront envoyées via un socket SSL
- EventBufferEvent::write — Ajoute des données dans un tampon d'événement de sortie
- EventBufferEvent::writeBuffer — Ajoute le contenu entier d'un tampon dans un tampon d'événement de sortie
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-class.eventbufferevent.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.