=for comment POD_DERIVED_INDEX_GENERATED The following documentation is automatically generated. Please do not edit this file, but rather the original, inline with Net::Async::AMQP::Channel at lib/Net/Async/AMQP/Channel.pm (on the system that originally ran this). If you do edit this file, and don't want your changes to be removed, make sure you change the first line. =cut =head1 NAME Net::Async::AMQP::Channel - represents a single channel in an MQ connection =head1 VERSION version 0.029 =head1 SYNOPSIS use IO::Async::Loop; use Net::Async::AMQP; my $loop = IO::Async::Loop->new; $loop->add(my $amqp = Net::Async::AMQP->new); $amqp->connect( host => 'localhost', username => 'guest', password => 'guest', )->then(sub { shift->open_channel->publish( type => 'application/json' ) }); =head1 DESCRIPTION Each Net::Async::AMQP::Channel instance represents a virtual channel for communicating with the MQ server. Channels are layered over the TCP protocol and most of the common AMQP frames operate at channel level - typically you'd connect to the server, open one channel for one-shot requests such as binding/declaring/publishing, and a further channel for every consumer. Since any error typically results in a closed channel, it's not recommended to have multiple consumers on the same channel if there's any chance the Basic.Consume request will fail. =head1 METHODS =head2 confirm_mode Switches confirmation mode on for this channel. In confirm mode, all messages must be ACKed explicitly after delivery. Note that this is an irreversible operation - once confirm mode has been enabled on a channel, closing that channel and reopening is the only way to turn off confirm mode again. Returns a L which will resolve with this channel once complete. $ch->confirm_mode ==> $ch =head2 exchange_declare Declares a new exchange. Returns a L which will resolve with this channel once complete. $ch->exchange_declare( exchange => 'some_exchange', type => 'fanout', autodelete => 1, ) ==> $ch =head2 exchange_bind Binds an exchange to another exchange. This is a RabbitMQ-specific extension. =head2 queue_declare Returns a L which will resolve with the new L instance once complete. $ch->queue_declare( queue => 'some_queue', ) ==> $q =head2 publish Publishes a message on this channel. Returns a L which will resolve with the channel instance once the server has confirmed publishing is complete. $ch->publish( exchange => 'some_exchange', routing_key => 'some.rkey.here', type => 'some_type', ) ==> $ch =head2 qos Changes QOS settings on the channel. Probably most useful for limiting the number of messages that can be delivered to us before we have to ACK/NAK to proceed. Returns a L which will resolve with the channel instance once the operation is complete. $ch->qos( prefetch_count => 5, prefetch_size => 1048576, ) ==> $ch =head2 ack Acknowledge a specific delivery. Returns a L which will resolve with the channel instance once the operation is complete. $ch->ack( delivery_tag => 123, ) ==> $ch Example output: 'method_id' => 40, 'reply_code' => 404, 'class_id' => 60, 'reply_text' => 'NOT_FOUND - no exchange \'invalidchan\' in vhost \'vhost\'' =head2 on_close Called when the channel has been closed. =head2 send_frame Proxy frame sending requests to the parent L instance. =head2 close Ask the server to close this channel. Returns a L which will resolve with the channel instance once the operation is complete. $ch->close( code => 404, text => 'something went wrong', ) ==> $ch =head2 push_pending =head2 remove_pending Removes a coderef from the pending event handler. Returns C< $self >. =head2 next_pending Retrieves the next pending handler for the given incoming frame type (see L), and calls it. Takes the following parameters: =over 4 =item * $frame - the frame itself =back Returns $self. =head1 METHODS - Accessors =head2 amqp The parent L instance. =head2 bus Event bus. Used for sharing channel-specific events. =head2 future The underlying L for this channel. Will resolve to the L instance once the channel is open. =head2 id This channel ID. =head2 closed Returns true if the channel has been closed, 1 if not (which could mean it is either not yet open, or that it is open and has not yet been closed by either side). =head2 closure_protection Helper method for marking any outstanding requests as failed when the channel closes. Takes a L, returns a L (probably the same one). =head1 INHERITED METHODS =over 4 =item L L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L =back =head1 AUTHOR Tom Molesworth =head1 LICENSE Licensed under the same terms as Perl itself, with additional licensing terms for the MQ spec to be found in C ('a worldwide, perpetual, royalty-free, nontransferable, nonexclusive license to (i) copy, display, distribute and implement the Advanced Messaging Queue Protocol ("AMQP") Specification').