Age | Commit message (Collapse) | Author |
|
in some rare case
|
|
only the pattern [callback, arg ...] was allowed, but another
pattern is allowed : [obj, method, arg]
|
|
* New upstream version: * verify validity callback arg in bindRegexp
instead of verifiying it whell actually calling the callback
-- Alexandre Bustico <bustico@cena.fr> Wed, 14 Fev 2008 16:43:00 +0200
|
|
|
|
|
|
|
|
revert to ip adress
* when etablishing tcp connection as an answer
to bonjour msg, use directly adress of udp
socket instead of doing 2 useless name resolution
|
|
|
|
a read on a socket fails
|
|
|
|
* force socket on raw mode
* when read or write returns error, examine errno before closing connexion
|
|
|
|
|
|
|
|
inmplementations (uuid and appName were swapped)
|
|
because of
wrong generation of uuid on 32 bits system (64 bits was ok).
b/ bad filtering of non printable char in appname argument in callback statusFunc
|
|
|
|
message,
le desabonnement devenant donc automatique.
|
|
precedemment fait avec bindRegexp de manière atomique.
|
|
de la forme A=((?I10#20))
l'api ne change pas.
|
|
|
|
° bindRegexp : 3eme argument optionnel : si sa valeur est 0 ou undef, fonctionnement inchangé,
si sa valeur est 1 le premier argument fourni à la callback est une liste
[nom, adresse, n° port] au lieu juste du nom de l'agent qui envoie le message
° la callback statusFunc : est appelée avec 7 arguments au lieu de 6 : arg 1 à 5 inchangé,
arg 6 $host_or_regexp changé par $host, $regexp, si il n'y a pas de regexp $regexp vaut undef
|
|
non blocking
mode was requested
° Optimisation : remove buffer copy when it's possible
|
|
une modification du message UDP Hello afin d'y intégrer un
identificateur unique d'application et le nom de l'application
Ceci afin de corriger les problèmes de connexion multiples en cas
d'utilisation de plusieurs réseau ( il arrive que l'on reçoive plusieurs
fois le paquet ) L'identifiant permettra d'identifier à coup sur
l'application et donc de rejeter les paquets multiples
Le protocole reste compatible avec les anciennes versions d'ivy.
2/ notification des congestions :
on spécifier une callback qui sera appelée si un client ne consomme pas ses
messages assez vite : la callback n'est appelée que lors d'un changement
d'état : congestion ou decongestion.
my $bus = Ivy->new (-slowAgentFunc=> \&congestionFunc )
sub congestionFunc ($$$)
{
my ($name, $addr, $state) = @_;
if ($state == 1) {
printf ("$name [$addr] %s will stop at N=%d\n", $state ? "CONGESTION" :
"OK", $numberOfSentMsg+100);
$numberOfSentMsgWhenCongestion = $numberOfSentMsg;
} else {
printf ("$name [$addr] %s\n", $state ? "CONGESTION" : "OK");
}
}
3/ possibilité de rendre Ivy non bloquant : si un client ne consomme pas
ses messages assez vite les messages seront accumulés en local et le
sendMsgs non bloquant rendra la main.
my $bus = Ivy->new (-blockOnSlowAgent => 0)
4/ optimisation en terme de vitesse et de conso mémoire.
|
|
instead of 0.
---------------------------------------------------------------
|
|
|
|
|
|
the CPAN world-wide used Time::HiRes module
|
|
|
|
|
|
when an agent is running on an unknown host, we are now using the ip
address in replacement of the hostname in the callback associated to
the -statusFunc attribute.
|
|
|
|
|
|
sinon Segmentation fault
- Amélioration mineures des commentaires
|
|
|
|
as for example 'zaza (' or '*'
- ivy-perl is now tolerant to illformed regular expressions subscribed
by other agent on the bus
- ivy-perl warn you when a message containing a \n is send.
This is because the \n is currently the message separator
- with the statusfunc, it is now possible to know every regexp
subscribed / unsubscribed by other agents
- the ivyprobe.pl application now displays all subscriptions /
unsubscriptions. It also allows unsubscription
- when a die message is issued with an unknown agentName,
Ivy warn you correctly
- man pages enhancements
|
|
Ivy.pm permet de connaitres les abonnements/desabonnements
ivyprobe.pl permet de suivre tous les abonnements / dé-abonnements
|
|
|
|
la suppression des threads (entre la version CVS 1.9 et 1.10)
|
|
the man has been enhanced
|
|
|
|
message players
|
|
|
|
* Better documentation of statusFunc parameter of New method
* if an appli start two times the same bus it still work now
|
|
Thats means it can be used again without ivy object.
This has been documented in the man pages. However it is preferable
to create Ivy objects.
* \s and ^\s in regexp are now correctly expanded as tab and
blank characters
* regular expressions are now case-insensitive (the same as ivy-c!)
Of course, case of parameters transmitted on the bus are preserved!
* an implementation of ivyprobe is given as an example and as a test tool
/usr/bin/ivyprobe.pl -h for more infos.
* when :port is used as a domain/port ivy-perl now really do connect
to the 127:port bus.
* man pages have been enhanced. Some features not yet documented
are now (mainly sendDirect / bindDirect / fileEvent).
* the stop method works now also with applications written
with the C version of ivy. However the hack may not be the good solution!
|
|
|
|
previous Perl versions until 4.0
Translated error messages to English
Slightly improved English in documentation
|
|
|
|
|
|
Add a const IVY_PROTOCOL_VERSION and set it to 3
|