… | |
… | |
7 | |
7 | |
8 | =head1 SYNOPSIS |
8 | =head1 SYNOPSIS |
9 | |
9 | |
10 | use AnyEvent; |
10 | use AnyEvent; |
11 | |
11 | |
12 | # if you prefer function calls, look at the L<AE> manpage for |
12 | # if you prefer function calls, look at the AE manpage for |
13 | # an alternative API. |
13 | # an alternative API. |
14 | |
14 | |
15 | # file handle or descriptor readable |
15 | # file handle or descriptor readable |
16 | my $w = AnyEvent->io (fh => $fh, poll => "r", cb => sub { ... }); |
16 | my $w = AnyEvent->io (fh => $fh, poll => "r", cb => sub { ... }); |
17 | |
17 | |
… | |
… | |
1057 | =head1 OTHER MODULES |
1057 | =head1 OTHER MODULES |
1058 | |
1058 | |
1059 | The following is a non-exhaustive list of additional modules that use |
1059 | The following is a non-exhaustive list of additional modules that use |
1060 | AnyEvent as a client and can therefore be mixed easily with other AnyEvent |
1060 | AnyEvent as a client and can therefore be mixed easily with other AnyEvent |
1061 | modules and other event loops in the same program. Some of the modules |
1061 | modules and other event loops in the same program. Some of the modules |
1062 | come with AnyEvent, most are available via CPAN. |
1062 | come as part of AnyEvent, the others are available via CPAN. |
1063 | |
1063 | |
1064 | =over 4 |
1064 | =over 4 |
1065 | |
1065 | |
1066 | =item L<AnyEvent::Util> |
1066 | =item L<AnyEvent::Util> |
1067 | |
1067 | |
… | |
… | |
1082 | |
1082 | |
1083 | =item L<AnyEvent::DNS> |
1083 | =item L<AnyEvent::DNS> |
1084 | |
1084 | |
1085 | Provides rich asynchronous DNS resolver capabilities. |
1085 | Provides rich asynchronous DNS resolver capabilities. |
1086 | |
1086 | |
|
|
1087 | =item L<AnyEvent::HTTP>, L<AnyEvent::IRC>, L<AnyEvent::XMPP>, L<AnyEvent::GPSD>, L<AnyEvent::IGS>, L<AnyEvent::FCP> |
|
|
1088 | |
|
|
1089 | Implement event-based interfaces to the protocols of the same name (for |
|
|
1090 | the curious, IGS is the International Go Server and FCP is the Freenet |
|
|
1091 | Client Protocol). |
|
|
1092 | |
|
|
1093 | =item L<AnyEvent::Handle::UDP> |
|
|
1094 | |
|
|
1095 | Here be danger! |
|
|
1096 | |
|
|
1097 | As Pauli would put it, "Not only is it not right, it's not even wrong!" - |
|
|
1098 | there are so many things wrong with AnyEvent::Handle::UDP, most notably |
|
|
1099 | it's use of a stream-based API with a protocol that isn't streamable, that |
|
|
1100 | the only way to improve it is to delete it. |
|
|
1101 | |
|
|
1102 | It features data corruption (but typically only under load) and general |
|
|
1103 | confusion. On top, the author is not only clueless about UDP but also |
|
|
1104 | fact-resistant - some gems of his understanding: "connect doesn't work |
|
|
1105 | with UDP", "UDP packets are not IP packets", "UDP only has datagrams, not |
|
|
1106 | packets", "I don't need to implement proper error checking as UDP doesn't |
|
|
1107 | support error checking" and so on - he doesn't even understand what's |
|
|
1108 | wrong with his module when it is explained to him. |
|
|
1109 | |
1087 | =item L<AnyEvent::HTTP> |
1110 | =item L<AnyEvent::DBI> |
1088 | |
1111 | |
1089 | A simple-to-use HTTP library that is capable of making a lot of concurrent |
1112 | Executes L<DBI> requests asynchronously in a proxy process for you, |
1090 | HTTP requests. |
1113 | notifying you in an event-bnased way when the operation is finished. |
|
|
1114 | |
|
|
1115 | =item L<AnyEvent::AIO> |
|
|
1116 | |
|
|
1117 | Truly asynchronous (as opposed to non-blocking) I/O, should be in the |
|
|
1118 | toolbox of every event programmer. AnyEvent::AIO transparently fuses |
|
|
1119 | L<IO::AIO> and AnyEvent together, giving AnyEvent access to event-based |
|
|
1120 | file I/O, and much more. |
1091 | |
1121 | |
1092 | =item L<AnyEvent::HTTPD> |
1122 | =item L<AnyEvent::HTTPD> |
1093 | |
1123 | |
1094 | Provides a simple web application server framework. |
1124 | A simple embedded webserver. |
1095 | |
1125 | |
1096 | =item L<AnyEvent::FastPing> |
1126 | =item L<AnyEvent::FastPing> |
1097 | |
1127 | |
1098 | The fastest ping in the west. |
1128 | The fastest ping in the west. |
1099 | |
|
|
1100 | =item L<AnyEvent::DBI> |
|
|
1101 | |
|
|
1102 | Executes L<DBI> requests asynchronously in a proxy process. |
|
|
1103 | |
|
|
1104 | =item L<AnyEvent::AIO> |
|
|
1105 | |
|
|
1106 | Truly asynchronous I/O, should be in the toolbox of every event |
|
|
1107 | programmer. AnyEvent::AIO transparently fuses L<IO::AIO> and AnyEvent |
|
|
1108 | together. |
|
|
1109 | |
|
|
1110 | =item L<AnyEvent::BDB> |
|
|
1111 | |
|
|
1112 | Truly asynchronous Berkeley DB access. AnyEvent::BDB transparently fuses |
|
|
1113 | L<BDB> and AnyEvent together. |
|
|
1114 | |
|
|
1115 | =item L<AnyEvent::GPSD> |
|
|
1116 | |
|
|
1117 | A non-blocking interface to gpsd, a daemon delivering GPS information. |
|
|
1118 | |
|
|
1119 | =item L<AnyEvent::IRC> |
|
|
1120 | |
|
|
1121 | AnyEvent based IRC client module family (replacing the older Net::IRC3). |
|
|
1122 | |
|
|
1123 | =item L<AnyEvent::XMPP> |
|
|
1124 | |
|
|
1125 | AnyEvent based XMPP (Jabber protocol) module family (replacing the older |
|
|
1126 | Net::XMPP2>. |
|
|
1127 | |
|
|
1128 | =item L<AnyEvent::IGS> |
|
|
1129 | |
|
|
1130 | A non-blocking interface to the Internet Go Server protocol (used by |
|
|
1131 | L<App::IGS>). |
|
|
1132 | |
|
|
1133 | =item L<Net::FCP> |
|
|
1134 | |
|
|
1135 | AnyEvent-based implementation of the Freenet Client Protocol, birthplace |
|
|
1136 | of AnyEvent. |
|
|
1137 | |
|
|
1138 | =item L<Event::ExecFlow> |
|
|
1139 | |
|
|
1140 | High level API for event-based execution flow control. |
|
|
1141 | |
1129 | |
1142 | =item L<Coro> |
1130 | =item L<Coro> |
1143 | |
1131 | |
1144 | Has special support for AnyEvent via L<Coro::AnyEvent>. |
1132 | Has special support for AnyEvent via L<Coro::AnyEvent>. |
1145 | |
1133 | |
… | |
… | |
1159 | |
1147 | |
1160 | BEGIN { AnyEvent::common_sense } |
1148 | BEGIN { AnyEvent::common_sense } |
1161 | |
1149 | |
1162 | use Carp (); |
1150 | use Carp (); |
1163 | |
1151 | |
1164 | our $VERSION = '5.26'; |
1152 | our $VERSION = '5.261'; |
1165 | our $MODEL; |
1153 | our $MODEL; |
1166 | |
1154 | |
1167 | our $AUTOLOAD; |
1155 | our $AUTOLOAD; |
1168 | our @ISA; |
1156 | our @ISA; |
1169 | |
1157 | |