File Coverage

blib/lib/Net/AMQP/Protocol/v0_8.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package Net::AMQP::Protocol::v0_8;
2              
3             =pod
4              
5             =head1 NAME
6              
7             Net::AMQP::Protocol::v0_8 - AMQP v0.8 (de)serialization and representation
8              
9             =head1 SYNOPSIS
10              
11             use Net::AMQP::Protocol::v0_8;
12            
13             ...
14              
15             my @frames = Net::AMQP->parse_raw_frames(\$input);
16            
17             ...
18              
19             my $frame = Net::AMQP::Frame::Method->new(
20             channel => 0,
21             method_frame => Net::AMQP::Protocol::Connection::StartOk->new(
22             client_properties => { ... },
23             mechanism => 'AMQPLAIN',
24             locale => 'en_US',
25             response => {
26             LOGIN => 'guest',
27             PASSWORD => 'guest',
28             },
29             ),
30             );
31              
32             print OUT $frame->to_raw_frame();
33              
34             =head1 DESCRIPTION
35              
36             This module implements the frame (de)serialization and representation of the Advanced Message Queue Protocol (http://www.amqp.org/) version 0.8.
37              
38             It is to be used in conjunction with client or server software that does the actual TCP/IP communication.
39              
40             =cut
41              
42 1     1   38671 use strict;
  1         3  
  1         32  
43 1     1   4 use warnings;
  1         2  
  1         23  
44              
45 1     1   423 use Net::AMQP;
  0            
  0            
46              
47             sub import {
48             return if defined $Net::AMQP::Protocol::VERSION_MAJOR; # do not load twice
49             load();
50             }
51              
52             sub load {
53             Net::AMQP::Protocol->load_xml_spec(undef, as_string_ref());
54             }
55              
56             sub as_string_ref {
57             local $/ = undef;
58             my $str = ;
59             return \$str;
60             }
61              
62             1;
63              
64              
65             =pod
66              
67             =head1 PROTOCOL CLASSES
68              
69             =head2 Net::AMQP::Protocol::Connection::Start
70              
71             This class implements the class B method B, which is a synchronous method.
72              
73             This method starts the connection negotiation process by telling the client the protocol version that the server proposes, along with a list of security mechanisms which the client can use for authentication.
74              
75             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
76              
77             =over 4
78              
79             =item I (type: octet)
80              
81             Protocol major version
82              
83             The protocol major version that the server agrees to use, which cannot be higher than the client's major version.
84              
85             =item I (type: octet)
86              
87             Protocol major version
88              
89             The protocol minor version that the server agrees to use, which cannot be higher than the client's minor version.
90              
91             =item I (type: table)
92              
93             Server properties
94              
95             =item I (type: longstr)
96              
97             Available security mechanisms
98              
99             A list of the security mechanisms that the server supports, delimited by spaces. Currently ASL supports these mechanisms: PLAIN.
100              
101             =item I (type: longstr)
102              
103             Available message locales
104              
105             A list of the message locales that the server supports, delimited by spaces. The locale defines the language in which the server will send reply texts.
106              
107             =back
108              
109             =head2 Net::AMQP::Protocol::Connection::StartOk
110              
111             This class implements the class B method B, which is a synchronous method.
112              
113             This method selects a SASL security mechanism. ASL uses SASL (RFC2222) to negotiate authentication and encryption.
114              
115             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
116              
117             =over 4
118              
119             =item I (type: table)
120              
121             Client properties
122              
123             =item I (type: shortstr)
124              
125             Selected security mechanism
126              
127             A single security mechanisms selected by the client, which must be one of those specified by the server.
128              
129             =item I (type: longstr)
130              
131             Security response data
132              
133             A block of opaque data passed to the security mechanism. The contents of this data are defined by the SASL security mechanism. For the PLAIN security mechanism this is defined as a field table holding two fields, LOGIN and PASSWORD.
134              
135             =item I (type: shortstr)
136              
137             Selected message locale
138              
139             A single message local selected by the client, which must be one of those specified by the server.
140              
141             =back
142              
143             =head2 Net::AMQP::Protocol::Connection::Secure
144              
145             This class implements the class B method B, which is a synchronous method.
146              
147             The SASL protocol works by exchanging challenges and responses until both peers have received sufficient information to authenticate each other. This method challenges the client to provide more information.
148              
149             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
150              
151             =over 4
152              
153             =item I (type: longstr)
154              
155             Security challenge data
156              
157             Challenge information, a block of opaque binary data passed to the security mechanism.
158              
159             =back
160              
161             =head2 Net::AMQP::Protocol::Connection::SecureOk
162              
163             This class implements the class B method B, which is a synchronous method.
164              
165             This method attempts to authenticate, passing a block of SASL data for the security mechanism at the server side.
166              
167             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
168              
169             =over 4
170              
171             =item I (type: longstr)
172              
173             Security response data
174              
175             A block of opaque data passed to the security mechanism. The contents of this data are defined by the SASL security mechanism.
176              
177             =back
178              
179             =head2 Net::AMQP::Protocol::Connection::Tune
180              
181             This class implements the class B method B, which is a synchronous method.
182              
183             This method proposes a set of connection configuration values to the client. The client can accept and/or adjust these.
184              
185             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
186              
187             =over 4
188              
189             =item I (type: short)
190              
191             Proposed maximum channels
192              
193             The maximum total number of channels that the server allows per connection. Zero means that the server does not impose a fixed limit, but the number of allowed channels may be limited by available server resources.
194              
195             =item I (type: long)
196              
197             Proposed maximum frame size
198              
199             The largest frame size that the server proposes for the connection. The client can negotiate a lower value. Zero means that the server does not impose any specific limit but may reject very large frames if it cannot allocate resources for them.
200              
201             =item I (type: short)
202              
203             Desired heartbeat delay
204              
205             The delay, in seconds, of the connection heartbeat that the server wants. Zero means the server does not want a heartbeat.
206              
207             =back
208              
209             =head2 Net::AMQP::Protocol::Connection::TuneOk
210              
211             This class implements the class B method B, which is a synchronous method.
212              
213             This method sends the client's connection tuning parameters to the server. Certain fields are negotiated, others provide capability information.
214              
215             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
216              
217             =over 4
218              
219             =item I (type: short)
220              
221             Negotiated maximum channels
222              
223             The maximum total number of channels that the client will use per connection. May not be higher than the value specified by the server.
224              
225             =item I (type: long)
226              
227             Negotiated maximum frame size
228              
229             The largest frame size that the client and server will use for the connection. Zero means that the client does not impose any specific limit but may reject very large frames if it cannot allocate resources for them. Note that the frame-max limit applies principally to content frames, where large contents can be broken into frames of arbitrary size.
230              
231             =item I (type: short)
232              
233             Desired heartbeat delay
234              
235             The delay, in seconds, of the connection heartbeat that the client wants. Zero means the client does not want a heartbeat.
236              
237             =back
238              
239             =head2 Net::AMQP::Protocol::Connection::Open
240              
241             This class implements the class B method B, which is a synchronous method.
242              
243             This method opens a connection to a virtual host, which is a collection of resources, and acts to separate multiple application domains within a server.
244              
245             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
246              
247             =over 4
248              
249             =item I (type: shortstr)
250              
251             Virtual host name
252              
253             The name of the virtual host to work with.
254              
255             =item I (type: shortstr)
256              
257             Required capabilities
258              
259             The client may specify a number of capability names, delimited by spaces. The server can use this string to how to process the client's connection request.
260              
261             =item I (type: bit)
262              
263             Insist on connecting to server
264              
265             In a configuration with multiple load-sharing servers, the server may respond to a Connection.Open method with a Connection.Redirect. The insist option tells the server that the client is insisting on a connection to the specified server.
266              
267             =back
268              
269             =head2 Net::AMQP::Protocol::Connection::OpenOk
270              
271             This class implements the class B method B, which is a synchronous method.
272              
273             This method signals to the client that the connection is ready for use.
274              
275             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
276              
277             =over 4
278              
279             =item I (type: shortstr)
280              
281             =back
282              
283             =head2 Net::AMQP::Protocol::Connection::Redirect
284              
285             This class implements the class B method B, which is a synchronous method.
286              
287             This method redirects the client to another server, based on the requested virtual host and/or capabilities.
288              
289             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
290              
291             =over 4
292              
293             =item I (type: shortstr)
294              
295             Server to connect to
296              
297             Specifies the server to connect to. This is an IP address or a DNS name, optionally followed by a colon and a port number. If no port number is specified, the client should use the default port number for the protocol.
298              
299             =item I (type: shortstr)
300              
301             =back
302              
303             =head2 Net::AMQP::Protocol::Connection::Close
304              
305             This class implements the class B method B, which is a synchronous method.
306              
307             This method indicates that the sender wants to close the connection. This may be due to internal conditions (e.g. a forced shut-down) or due to an error handling a specific method, i.e. an exception. When a close is due to an exception, the sender provides the class and method id of the method which caused the exception.
308              
309             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
310              
311             =over 4
312              
313             =item I (type: short)
314              
315             =item I (type: shortstr)
316              
317             =item I (type: short)
318              
319             Failing method class
320              
321             When the close is provoked by a method exception, this is the class of the method.
322              
323             =item I (type: short)
324              
325             Failing method ID
326              
327             When the close is provoked by a method exception, this is the ID of the method.
328              
329             =back
330              
331             =head2 Net::AMQP::Protocol::Connection::CloseOk
332              
333             This class implements the class B method B, which is a synchronous method.
334              
335             This method confirms a Connection.Close method and tells the recipient that it is safe to release resources for the connection and close the socket.
336              
337             This class has no fields nor accessors.
338              
339             =head2 Net::AMQP::Protocol::Channel::Open
340              
341             This class implements the class B method B, which is a synchronous method.
342              
343             This method opens a virtual connection (a channel).
344              
345             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
346              
347             =over 4
348              
349             =item I (type: shortstr)
350              
351             Out-of-band settings
352              
353             Configures out-of-band transfers on this channel. The syntax and meaning of this field will be formally defined at a later date.
354              
355             =back
356              
357             =head2 Net::AMQP::Protocol::Channel::OpenOk
358              
359             This class implements the class B method B, which is a synchronous method.
360              
361             This method signals to the client that the channel is ready for use.
362              
363             This class has no fields nor accessors.
364              
365             =head2 Net::AMQP::Protocol::Channel::Flow
366              
367             This class implements the class B method B, which is a synchronous method.
368              
369             This method asks the peer to pause or restart the flow of content data. This is a simple flow-control mechanism that a peer can use to avoid oveflowing its queues or otherwise finding itself receiving more messages than it can process. Note that this method is not intended for window control. The peer that receives a request to stop sending content should finish sending the current content, if any, and then wait until it receives a Flow restart method.
370              
371             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
372              
373             =over 4
374              
375             =item I (type: bit)
376              
377             Start/stop content frames
378              
379             If 1, the peer starts sending content frames. If 0, the peer stops sending content frames.
380              
381             =back
382              
383             =head2 Net::AMQP::Protocol::Channel::FlowOk
384              
385             This class implements the class B method B, which is an asynchronous method.
386              
387             Confirms to the peer that a flow command was received and processed.
388              
389             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
390              
391             =over 4
392              
393             =item I (type: bit)
394              
395             Current flow setting
396              
397             Confirms the setting of the processed flow method: 1 means the peer will start sending or continue to send content frames; 0 means it will not.
398              
399             =back
400              
401             =head2 Net::AMQP::Protocol::Channel::Alert
402              
403             This class implements the class B method B, which is an asynchronous method.
404              
405             This method allows the server to send a non-fatal warning to the client. This is used for methods that are normally asynchronous and thus do not have confirmations, and for which the server may detect errors that need to be reported. Fatal errors are handled as channel or connection exceptions; non-fatal errors are sent through this method.
406              
407             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
408              
409             =over 4
410              
411             =item I (type: short)
412              
413             =item I (type: shortstr)
414              
415             =item I
(type: table)
416              
417             Detailed information for warning
418              
419             A set of fields that provide more information about the problem. The meaning of these fields are defined on a per-reply-code basis (TO BE DEFINED).
420              
421             =back
422              
423             =head2 Net::AMQP::Protocol::Channel::Close
424              
425             This class implements the class B method B, which is a synchronous method.
426              
427             This method indicates that the sender wants to close the channel. This may be due to internal conditions (e.g. a forced shut-down) or due to an error handling a specific method, i.e. an exception. When a close is due to an exception, the sender provides the class and method id of the method which caused the exception.
428              
429             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
430              
431             =over 4
432              
433             =item I (type: short)
434              
435             =item I (type: shortstr)
436              
437             =item I (type: short)
438              
439             Failing method class
440              
441             When the close is provoked by a method exception, this is the class of the method.
442              
443             =item I (type: short)
444              
445             Failing method ID
446              
447             When the close is provoked by a method exception, this is the ID of the method.
448              
449             =back
450              
451             =head2 Net::AMQP::Protocol::Channel::CloseOk
452              
453             This class implements the class B method B, which is a synchronous method.
454              
455             This method confirms a Channel.Close method and tells the recipient that it is safe to release resources for the channel and close the socket.
456              
457             This class has no fields nor accessors.
458              
459             =head2 Net::AMQP::Protocol::Access::Request
460              
461             This class implements the class B method B, which is a synchronous method.
462              
463             This method requests an access ticket for an access realm. The server responds by granting the access ticket. If the client does not have access rights to the requested realm this causes a connection exception. Access tickets are a per-channel resource.
464              
465             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
466              
467             =over 4
468              
469             =item I (type: shortstr)
470              
471             Name of requested realm
472              
473             =item I (type: bit)
474              
475             Request exclusive access
476              
477             Request exclusive access to the realm. If the server cannot grant this - because there are other active tickets for the realm - it raises a channel exception.
478              
479             =item I (type: bit)
480              
481             Request passive access
482              
483             Request message passive access to the specified access realm. Passive access lets a client get information about resources in the realm but not to make any changes to them.
484              
485             =item I (type: bit)
486              
487             Request active access
488              
489             Request message active access to the specified access realm. Acvtive access lets a client get create and delete resources in the realm.
490              
491             =item I (type: bit)
492              
493             Request write access
494              
495             Request write access to the specified access realm. Write access lets a client publish messages to all exchanges in the realm.
496              
497             =item I (type: bit)
498              
499             Request read access
500              
501             Request read access to the specified access realm. Read access lets a client consume messages from queues in the realm.
502              
503             =back
504              
505             =head2 Net::AMQP::Protocol::Access::RequestOk
506              
507             This class implements the class B method B, which is a synchronous method.
508              
509             This method provides the client with an access ticket. The access ticket is valid within the current channel and for the lifespan of the channel.
510              
511             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
512              
513             =over 4
514              
515             =item I (type: short)
516              
517             =back
518              
519             =head2 Net::AMQP::Protocol::Exchange::Declare
520              
521             This class implements the class B method B, which is a synchronous method.
522              
523             This method creates an exchange if it does not already exist, and if the exchange exists, verifies that it is of the correct and expected class.
524              
525             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
526              
527             =over 4
528              
529             =item I (type: short)
530              
531             When a client defines a new exchange, this belongs to the access realm of the ticket used. All further work done with that exchange must be done with an access ticket for the same realm.
532              
533             =item I (type: shortstr)
534              
535             =item I (type: shortstr)
536              
537             Exchange type
538              
539             Each exchange belongs to one of a set of exchange types implemented by the server. The exchange types define the functionality of the exchange - i.e. how messages are routed through it. It is not valid or meaningful to attempt to change the type of an existing exchange.
540              
541             =item I (type: bit)
542              
543             Do not create exchange
544              
545             If set, the server will not create the exchange. The client can use this to check whether an exchange exists without modifying the server state.
546              
547             =item I (type: bit)
548              
549             Request a durable exchange
550              
551             If set when creating a new exchange, the exchange will be marked as durable. Durable exchanges remain active when a server restarts. Non-durable exchanges (transient exchanges) are purged if/when a server restarts.
552              
553             =item I (type: bit)
554              
555             Auto-delete when unused
556              
557             If set, the exchange is deleted when all queues have finished using it.
558              
559             =item I (type: bit)
560              
561             Create internal exchange
562              
563             If set, the exchange may not be used directly by publishers, but only when bound to other exchanges. Internal exchanges are used to construct wiring that is not visible to applications.
564              
565             =item I (type: bit)
566              
567             Do not send a reply method
568              
569             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
570              
571             =item I (type: table)
572              
573             Arguments for declaration
574              
575             A set of arguments for the declaration. The syntax and semantics of these arguments depends on the server implementation. This field is ignored if passive is 1.
576              
577             =back
578              
579             =head2 Net::AMQP::Protocol::Exchange::DeclareOk
580              
581             This class implements the class B method B, which is a synchronous method.
582              
583             This method confirms a Declare method and confirms the name of the exchange, essential for automatically-named exchanges.
584              
585             This class has no fields nor accessors.
586              
587             =head2 Net::AMQP::Protocol::Exchange::Delete
588              
589             This class implements the class B method B, which is a synchronous method.
590              
591             This method deletes an exchange. When an exchange is deleted all queue bindings on the exchange are cancelled.
592              
593             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
594              
595             =over 4
596              
597             =item I (type: short)
598              
599             =item I (type: shortstr)
600              
601             =item I (type: bit)
602              
603             Delete only if unused
604              
605             If set, the server will only delete the exchange if it has no queue bindings. If the exchange has queue bindings the server does not delete it but raises a channel exception instead.
606              
607             =item I (type: bit)
608              
609             Do not send a reply method
610              
611             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
612              
613             =back
614              
615             =head2 Net::AMQP::Protocol::Exchange::DeleteOk
616              
617             This class implements the class B method B, which is a synchronous method.
618              
619             This method confirms the deletion of an exchange.
620              
621             This class has no fields nor accessors.
622              
623             =head2 Net::AMQP::Protocol::Queue::Declare
624              
625             This class implements the class B method B, which is a synchronous method.
626              
627             This method creates or checks a queue. When creating a new queue the client can specify various properties that control the durability of the queue and its contents, and the level of sharing for the queue.
628              
629             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
630              
631             =over 4
632              
633             =item I (type: short)
634              
635             When a client defines a new queue, this belongs to the access realm of the ticket used. All further work done with that queue must be done with an access ticket for the same realm.
636              
637             The client provides a valid access ticket giving "active" access to the realm in which the queue exists or will be created, or "passive" access if the if-exists flag is set.
638              
639             =item I (type: shortstr)
640              
641             =item I (type: bit)
642              
643             Do not create queue
644              
645             If set, the server will not create the queue. The client can use this to check whether a queue exists without modifying the server state.
646              
647             =item I (type: bit)
648              
649             Request a durable queue
650              
651             If set when creating a new queue, the queue will be marked as durable. Durable queues remain active when a server restarts. Non-durable queues (transient queues) are purged if/when a server restarts. Note that durable queues do not necessarily hold persistent messages, although it does not make sense to send persistent messages to a transient queue.
652              
653             =item I (type: bit)
654              
655             Request an exclusive queue
656              
657             Exclusive queues may only be consumed from by the current connection. Setting the 'exclusive' flag always implies 'auto-delete'.
658              
659             =item I (type: bit)
660              
661             Auto-delete queue when unused
662              
663             If set, the queue is deleted when all consumers have finished using it. Last consumer can be cancelled either explicitly or because its channel is closed. If there was no consumer ever on the queue, it won't be deleted.
664              
665             =item I (type: bit)
666              
667             Do not send a reply method
668              
669             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
670              
671             =item I (type: table)
672              
673             Arguments for declaration
674              
675             A set of arguments for the declaration. The syntax and semantics of these arguments depends on the server implementation. This field is ignored if passive is 1.
676              
677             =back
678              
679             =head2 Net::AMQP::Protocol::Queue::DeclareOk
680              
681             This class implements the class B method B, which is a synchronous method.
682              
683             This method confirms a Declare method and confirms the name of the queue, essential for automatically-named queues.
684              
685             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
686              
687             =over 4
688              
689             =item I (type: shortstr)
690              
691             Reports the name of the queue. If the server generated a queue name, this field contains that name.
692              
693             =item I (type: long)
694              
695             Number of messages in queue
696              
697             Reports the number of messages in the queue, which will be zero for newly-created queues.
698              
699             =item I (type: long)
700              
701             Number of consumers
702              
703             Reports the number of active consumers for the queue. Note that consumers can suspend activity (Channel.Flow) in which case they do not appear in this count.
704              
705             =back
706              
707             =head2 Net::AMQP::Protocol::Queue::Bind
708              
709             This class implements the class B method B, which is a synchronous method.
710              
711             This method binds a queue to an exchange. Until a queue is bound it will not receive any messages. In a classic messaging model, store-and-forward queues are bound to a dest exchange and subscription queues are bound to a dest_wild exchange.
712              
713             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
714              
715             =over 4
716              
717             =item I (type: short)
718              
719             The client provides a valid access ticket giving "active" access rights to the queue's access realm.
720              
721             =item I (type: shortstr)
722              
723             Specifies the name of the queue to bind. If the queue name is empty, refers to the current queue for the channel, which is the last declared queue.
724              
725             =item I (type: shortstr)
726              
727             The name of the exchange to bind to.
728              
729             =item I (type: shortstr)
730              
731             Message routing key
732              
733             Specifies the routing key for the binding. The routing key is used for routing messages depending on the exchange configuration. Not all exchanges use a routing key - refer to the specific exchange documentation. If the routing key is empty and the queue name is empty, the routing key will be the current queue for the channel, which is the last declared queue.
734              
735             =item I (type: bit)
736              
737             Do not send a reply method
738              
739             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
740              
741             =item I (type: table)
742              
743             Arguments for binding
744              
745             A set of arguments for the binding. The syntax and semantics of these arguments depends on the exchange class.
746              
747             =back
748              
749             =head2 Net::AMQP::Protocol::Queue::BindOk
750              
751             This class implements the class B method B, which is a synchronous method.
752              
753             This method confirms that the bind was successful.
754              
755             This class has no fields nor accessors.
756              
757             =head2 Net::AMQP::Protocol::Queue::Purge
758              
759             This class implements the class B method B, which is a synchronous method.
760              
761             This method removes all messages from a queue. It does not cancel consumers. Purged messages are deleted without any formal "undo" mechanism.
762              
763             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
764              
765             =over 4
766              
767             =item I (type: short)
768              
769             The access ticket must be for the access realm that holds the queue.
770              
771             =item I (type: shortstr)
772              
773             Specifies the name of the queue to purge. If the queue name is empty, refers to the current queue for the channel, which is the last declared queue.
774              
775             =item I (type: bit)
776              
777             Do not send a reply method
778              
779             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
780              
781             =back
782              
783             =head2 Net::AMQP::Protocol::Queue::PurgeOk
784              
785             This class implements the class B method B, which is a synchronous method.
786              
787             This method confirms the purge of a queue.
788              
789             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
790              
791             =over 4
792              
793             =item I (type: long)
794              
795             Number of messages purged
796              
797             Reports the number of messages purged.
798              
799             =back
800              
801             =head2 Net::AMQP::Protocol::Queue::Delete
802              
803             This class implements the class B method B, which is a synchronous method.
804              
805             This method deletes a queue. When a queue is deleted any pending messages are sent to a dead-letter queue if this is defined in the server configuration, and all consumers on the queue are cancelled.
806              
807             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
808              
809             =over 4
810              
811             =item I (type: short)
812              
813             The client provides a valid access ticket giving "active" access rights to the queue's access realm.
814              
815             =item I (type: shortstr)
816              
817             Specifies the name of the queue to delete. If the queue name is empty, refers to the current queue for the channel, which is the last declared queue.
818              
819             =item I (type: bit)
820              
821             Delete only if unused
822              
823             If set, the server will only delete the queue if it has no consumers. If the queue has consumers the server does does not delete it but raises a channel exception instead.
824              
825             =item I (type: bit)
826              
827             Delete only if empty
828              
829             If set, the server will only delete the queue if it has no messages. If the queue is not empty the server raises a channel exception.
830              
831             =item I (type: bit)
832              
833             Do not send a reply method
834              
835             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
836              
837             =back
838              
839             =head2 Net::AMQP::Protocol::Queue::DeleteOk
840              
841             This class implements the class B method B, which is a synchronous method.
842              
843             This method confirms the deletion of a queue.
844              
845             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
846              
847             =over 4
848              
849             =item I (type: long)
850              
851             Number of messages purged
852              
853             Reports the number of messages purged.
854              
855             =back
856              
857             =head2 Net::AMQP::Protocol::Basic::Qos
858              
859             This class implements the class B method B, which is a synchronous method.
860              
861             This method requests a specific quality of service. The QoS can be specified for the current channel or for all channels on the connection. The particular properties and semantics of a qos method always depend on the content class semantics. Though the qos method could in principle apply to both peers, it is currently meaningful only for the server.
862              
863             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
864              
865             =over 4
866              
867             =item I (type: long)
868              
869             Prefetch window in octets
870              
871             The client can request that messages be sent in advance so that when the client finishes processing a message, the following message is already held locally, rather than needing to be sent down the channel. Prefetching gives a performance improvement. This field specifies the prefetch window size in octets. The server will send a message in advance if it is equal to or smaller in size than the available prefetch size (and also falls into other prefetch limits). May be set to zero, meaning "no specific limit", although other prefetch limits may still apply. The prefetch-size is ignored if the no-ack option is set.
872              
873             =item I (type: short)
874              
875             Prefetch window in messages
876              
877             Specifies a prefetch window in terms of whole messages. This field may be used in combination with the prefetch-size field; a message will only be sent in advance if both prefetch windows (and those at the channel and connection level) allow it. The prefetch-count is ignored if the no-ack option is set.
878              
879             =item I (type: bit)
880              
881             Apply to entire connection
882              
883             By default the QoS settings apply to the current channel only. If this field is set, they are applied to the entire connection.
884              
885             =back
886              
887             =head2 Net::AMQP::Protocol::Basic::QosOk
888              
889             This class implements the class B method B, which is a synchronous method.
890              
891             This method tells the client that the requested QoS levels could be handled by the server. The requested QoS applies to all active consumers until a new QoS is defined.
892              
893             This class has no fields nor accessors.
894              
895             =head2 Net::AMQP::Protocol::Basic::Consume
896              
897             This class implements the class B method B, which is a synchronous method.
898              
899             This method asks the server to start a "consumer", which is a transient request for messages from a specific queue. Consumers last as long as the channel they were created on, or until the client cancels them.
900              
901             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
902              
903             =over 4
904              
905             =item I (type: short)
906              
907             =item I (type: shortstr)
908              
909             Specifies the name of the queue to consume from. If the queue name is null, refers to the current queue for the channel, which is the last declared queue.
910              
911             =item I (type: shortstr)
912              
913             Specifies the identifier for the consumer. The consumer tag is local to a connection, so two clients can use the same consumer tags. If this field is empty the server will generate a unique tag.
914              
915             =item I (type: bit)
916              
917             =item I (type: bit)
918              
919             =item I (type: bit)
920              
921             Request exclusive access
922              
923             Request exclusive consumer access, meaning only this consumer can access the queue.
924              
925             =item I (type: bit)
926              
927             Do not send a reply method
928              
929             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
930              
931             =back
932              
933             =head2 Net::AMQP::Protocol::Basic::ConsumeOk
934              
935             This class implements the class B method B, which is a synchronous method.
936              
937             The server provides the client with a consumer tag, which is used by the client for methods called on the consumer at a later stage.
938              
939             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
940              
941             =over 4
942              
943             =item I (type: shortstr)
944              
945             Holds the consumer tag specified by the client or provided by the server.
946              
947             =back
948              
949             =head2 Net::AMQP::Protocol::Basic::Cancel
950              
951             This class implements the class B method B, which is a synchronous method.
952              
953             This method cancels a consumer. This does not affect already delivered messages, but it does mean the server will not send any more messages for that consumer. The client may receive an abitrary number of messages in between sending the cancel method and receiving the cancel-ok reply.
954              
955             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
956              
957             =over 4
958              
959             =item I (type: shortstr)
960              
961             =item I (type: bit)
962              
963             Do not send a reply method
964              
965             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
966              
967             =back
968              
969             =head2 Net::AMQP::Protocol::Basic::CancelOk
970              
971             This class implements the class B method B, which is a synchronous method.
972              
973             This method confirms that the cancellation was completed.
974              
975             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
976              
977             =over 4
978              
979             =item I (type: shortstr)
980              
981             =back
982              
983             =head2 Net::AMQP::Protocol::Basic::Publish
984              
985             This class implements the class B method B, which is an asynchronous method.
986              
987             This method publishes a message to a specific exchange. The message will be routed to queues as defined by the exchange configuration and distributed to any active consumers when the transaction, if any, is committed.
988              
989             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
990              
991             =over 4
992              
993             =item I (type: short)
994              
995             =item I (type: shortstr)
996              
997             Specifies the name of the exchange to publish to. The exchange name can be empty, meaning the default exchange. If the exchange name is specified, and that exchange does not exist, the server will raise a channel exception.
998              
999             =item I (type: shortstr)
1000              
1001             Message routing key
1002              
1003             Specifies the routing key for the message. The routing key is used for routing messages depending on the exchange configuration.
1004              
1005             =item I (type: bit)
1006              
1007             Indicate mandatory routing
1008              
1009             This flag tells the server how to react if the message cannot be routed to a queue. If this flag is set, the server will return an unroutable message with a Return method. If this flag is zero, the server silently drops the message.
1010              
1011             =item I (type: bit)
1012              
1013             Request immediate delivery
1014              
1015             This flag tells the server how to react if the message cannot be routed to a queue consumer immediately. If this flag is set, the server will return an undeliverable message with a Return method. If this flag is zero, the server will queue the message, but with no guarantee that it will ever be consumed.
1016              
1017             =back
1018              
1019             =head2 Net::AMQP::Protocol::Basic::Return
1020              
1021             This class implements the class B method B, which is an asynchronous method.
1022              
1023             This method returns an undeliverable message that was published with the "immediate" flag set, or an unroutable message published with the "mandatory" flag set. The reply code and text provide information about the reason that the message was undeliverable.
1024              
1025             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1026              
1027             =over 4
1028              
1029             =item I (type: short)
1030              
1031             =item I (type: shortstr)
1032              
1033             =item I (type: shortstr)
1034              
1035             Specifies the name of the exchange that the message was originally published to.
1036              
1037             =item I (type: shortstr)
1038              
1039             Message routing key
1040              
1041             Specifies the routing key name specified when the message was published.
1042              
1043             =back
1044              
1045             =head2 Net::AMQP::Protocol::Basic::Deliver
1046              
1047             This class implements the class B method B, which is an asynchronous method.
1048              
1049             This method delivers a message to the client, via a consumer. In the asynchronous message delivery model, the client starts a consumer using the Consume method, then the server responds with Deliver methods as and when messages arrive for that consumer.
1050              
1051             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1052              
1053             =over 4
1054              
1055             =item I (type: shortstr)
1056              
1057             =item I (type: longlong)
1058              
1059             =item I (type: bit)
1060              
1061             =item I (type: shortstr)
1062              
1063             Specifies the name of the exchange that the message was originally published to.
1064              
1065             =item I (type: shortstr)
1066              
1067             Message routing key
1068              
1069             Specifies the routing key name specified when the message was published.
1070              
1071             =back
1072              
1073             =head2 Net::AMQP::Protocol::Basic::Get
1074              
1075             This class implements the class B method B, which is a synchronous method.
1076              
1077             This method provides a direct access to the messages in a queue using a synchronous dialogue that is designed for specific types of application where synchronous functionality is more important than performance.
1078              
1079             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1080              
1081             =over 4
1082              
1083             =item I (type: short)
1084              
1085             =item I (type: shortstr)
1086              
1087             Specifies the name of the queue to consume from. If the queue name is null, refers to the current queue for the channel, which is the last declared queue.
1088              
1089             =item I (type: bit)
1090              
1091             =back
1092              
1093             =head2 Net::AMQP::Protocol::Basic::GetOk
1094              
1095             This class implements the class B method B, which is a synchronous method.
1096              
1097             This method delivers a message to the client following a get method. A message delivered by 'get-ok' must be acknowledged unless the no-ack option was set in the get method.
1098              
1099             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1100              
1101             =over 4
1102              
1103             =item I (type: longlong)
1104              
1105             =item I (type: bit)
1106              
1107             =item I (type: shortstr)
1108              
1109             Specifies the name of the exchange that the message was originally published to. If empty, the message was published to the default exchange.
1110              
1111             =item I (type: shortstr)
1112              
1113             Message routing key
1114              
1115             Specifies the routing key name specified when the message was published.
1116              
1117             =item I (type: long)
1118              
1119             Number of messages pending
1120              
1121             This field reports the number of messages pending on the queue, excluding the message being delivered. Note that this figure is indicative, not reliable, and can change arbitrarily as messages are added to the queue and removed by other clients.
1122              
1123             =back
1124              
1125             =head2 Net::AMQP::Protocol::Basic::GetEmpty
1126              
1127             This class implements the class B method B, which is a synchronous method.
1128              
1129             This method tells the client that the queue has no messages available for the client.
1130              
1131             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1132              
1133             =over 4
1134              
1135             =item I (type: shortstr)
1136              
1137             Cluster id
1138              
1139             For use by cluster applications, should not be used by client applications.
1140              
1141             =back
1142              
1143             =head2 Net::AMQP::Protocol::Basic::Ack
1144              
1145             This class implements the class B method B, which is an asynchronous method.
1146              
1147             This method acknowledges one or more messages delivered via the Deliver or Get-Ok methods. The client can ask to confirm a single message or a set of messages up to and including a specific message.
1148              
1149             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1150              
1151             =over 4
1152              
1153             =item I (type: longlong)
1154              
1155             =item I (type: bit)
1156              
1157             Acknowledge multiple messages
1158              
1159             If set to 1, the delivery tag is treated as "up to and including", so that the client can acknowledge multiple messages with a single method. If set to zero, the delivery tag refers to a single message. If the multiple field is 1, and the delivery tag is zero, tells the server to acknowledge all outstanding mesages.
1160              
1161             =back
1162              
1163             =head2 Net::AMQP::Protocol::Basic::Reject
1164              
1165             This class implements the class B method B, which is an asynchronous method.
1166              
1167             This method allows a client to reject a message. It can be used to interrupt and cancel large incoming messages, or return untreatable messages to their original queue.
1168              
1169             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1170              
1171             =over 4
1172              
1173             =item I (type: longlong)
1174              
1175             =item I (type: bit)
1176              
1177             Requeue the message
1178              
1179             If this field is zero, the message will be discarded. If this bit is 1, the server will attempt to requeue the message.
1180              
1181             =back
1182              
1183             =head2 Net::AMQP::Protocol::Basic::Recover
1184              
1185             This class implements the class B method B, which is an asynchronous method.
1186              
1187             This method asks the broker to redeliver all unacknowledged messages on a specifieid channel. Zero or more messages may be redelivered.
1188              
1189             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1190              
1191             =over 4
1192              
1193             =item I (type: bit)
1194              
1195             Requeue the message
1196              
1197             If this field is zero, the message will be redelivered to the original recipient. If this bit is 1, the server will attempt to requeue the message, potentially then delivering it to an alternative subscriber.
1198              
1199             =back
1200              
1201             =head2 Net::AMQP::Protocol::Basic::ContentHeader
1202              
1203             This class implements the class B method B, which is an asynchronous method.
1204              
1205             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1206              
1207             =over 4
1208              
1209             =item I (type: shortstr)
1210              
1211             =item I (type: shortstr)
1212              
1213             =item I (type: table)
1214              
1215             =item I (type: octet)
1216              
1217             =item I (type: octet)
1218              
1219             =item I (type: shortstr)
1220              
1221             =item I (type: shortstr)
1222              
1223             =item I (type: shortstr)
1224              
1225             =item I (type: shortstr)
1226              
1227             =item I (type: timestamp)
1228              
1229             =item I (type: shortstr)
1230              
1231             =item I (type: shortstr)
1232              
1233             =item I (type: shortstr)
1234              
1235             =item I (type: shortstr)
1236              
1237             =back
1238              
1239             =head2 Net::AMQP::Protocol::File::Qos
1240              
1241             This class implements the class B method B, which is a synchronous method.
1242              
1243             This method requests a specific quality of service. The QoS can be specified for the current channel or for all channels on the connection. The particular properties and semantics of a qos method always depend on the content class semantics. Though the qos method could in principle apply to both peers, it is currently meaningful only for the server.
1244              
1245             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1246              
1247             =over 4
1248              
1249             =item I (type: long)
1250              
1251             Prefetch window in octets
1252              
1253             The client can request that messages be sent in advance so that when the client finishes processing a message, the following message is already held locally, rather than needing to be sent down the channel. Prefetching gives a performance improvement. This field specifies the prefetch window size in octets. May be set to zero, meaning "no specific limit". Note that other prefetch limits may still apply. The prefetch-size is ignored if the no-ack option is set.
1254              
1255             =item I (type: short)
1256              
1257             Prefetch window in messages
1258              
1259             Specifies a prefetch window in terms of whole messages. This is compatible with some file API implementations. This field may be used in combination with the prefetch-size field; a message will only be sent in advance if both prefetch windows (and those at the channel and connection level) allow it. The prefetch-count is ignored if the no-ack option is set.
1260              
1261             =item I (type: bit)
1262              
1263             Apply to entire connection
1264              
1265             By default the QoS settings apply to the current channel only. If this field is set, they are applied to the entire connection.
1266              
1267             =back
1268              
1269             =head2 Net::AMQP::Protocol::File::QosOk
1270              
1271             This class implements the class B method B, which is a synchronous method.
1272              
1273             This method tells the client that the requested QoS levels could be handled by the server. The requested QoS applies to all active consumers until a new QoS is defined.
1274              
1275             This class has no fields nor accessors.
1276              
1277             =head2 Net::AMQP::Protocol::File::Consume
1278              
1279             This class implements the class B method B, which is a synchronous method.
1280              
1281             This method asks the server to start a "consumer", which is a transient request for messages from a specific queue. Consumers last as long as the channel they were created on, or until the client cancels them.
1282              
1283             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1284              
1285             =over 4
1286              
1287             =item I (type: short)
1288              
1289             =item I (type: shortstr)
1290              
1291             Specifies the name of the queue to consume from. If the queue name is null, refers to the current queue for the channel, which is the last declared queue.
1292              
1293             =item I (type: shortstr)
1294              
1295             Specifies the identifier for the consumer. The consumer tag is local to a connection, so two clients can use the same consumer tags. If this field is empty the server will generate a unique tag.
1296              
1297             =item I (type: bit)
1298              
1299             =item I (type: bit)
1300              
1301             =item I (type: bit)
1302              
1303             Request exclusive access
1304              
1305             Request exclusive consumer access, meaning only this consumer can access the queue.
1306              
1307             =item I (type: bit)
1308              
1309             Do not send a reply method
1310              
1311             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
1312              
1313             =back
1314              
1315             =head2 Net::AMQP::Protocol::File::ConsumeOk
1316              
1317             This class implements the class B method B, which is a synchronous method.
1318              
1319             This method provides the client with a consumer tag which it MUST use in methods that work with the consumer.
1320              
1321             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1322              
1323             =over 4
1324              
1325             =item I (type: shortstr)
1326              
1327             Holds the consumer tag specified by the client or provided by the server.
1328              
1329             =back
1330              
1331             =head2 Net::AMQP::Protocol::File::Cancel
1332              
1333             This class implements the class B method B, which is a synchronous method.
1334              
1335             This method cancels a consumer. This does not affect already delivered messages, but it does mean the server will not send any more messages for that consumer.
1336              
1337             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1338              
1339             =over 4
1340              
1341             =item I (type: shortstr)
1342              
1343             =item I (type: bit)
1344              
1345             Do not send a reply method
1346              
1347             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
1348              
1349             =back
1350              
1351             =head2 Net::AMQP::Protocol::File::CancelOk
1352              
1353             This class implements the class B method B, which is a synchronous method.
1354              
1355             This method confirms that the cancellation was completed.
1356              
1357             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1358              
1359             =over 4
1360              
1361             =item I (type: shortstr)
1362              
1363             =back
1364              
1365             =head2 Net::AMQP::Protocol::File::Open
1366              
1367             This class implements the class B method B, which is a synchronous method.
1368              
1369             This method requests permission to start staging a message. Staging means sending the message into a temporary area at the recipient end and then delivering the message by referring to this temporary area. Staging is how the protocol handles partial file transfers - if a message is partially staged and the connection breaks, the next time the sender starts to stage it, it can restart from where it left off.
1370              
1371             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1372              
1373             =over 4
1374              
1375             =item I (type: shortstr)
1376              
1377             Staging identifier
1378              
1379             This is the staging identifier. This is an arbitrary string chosen by the sender. For staging to work correctly the sender must use the same staging identifier when staging the same message a second time after recovery from a failure. A good choice for the staging identifier would be the SHA1 hash of the message properties data (including the original filename, revised time, etc.).
1380              
1381             =item I (type: longlong)
1382              
1383             Message content size
1384              
1385             The size of the content in octets. The recipient may use this information to allocate or check available space in advance, to avoid "disk full" errors during staging of very large messages.
1386              
1387             =back
1388              
1389             =head2 Net::AMQP::Protocol::File::OpenOk
1390              
1391             This class implements the class B method B, which is a synchronous method.
1392              
1393             This method confirms that the recipient is ready to accept staged data. If the message was already partially-staged at a previous time the recipient will report the number of octets already staged.
1394              
1395             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1396              
1397             =over 4
1398              
1399             =item I (type: longlong)
1400              
1401             Already staged amount
1402              
1403             The amount of previously-staged content in octets. For a new message this will be zero.
1404              
1405             =back
1406              
1407             =head2 Net::AMQP::Protocol::File::Stage
1408              
1409             This class implements the class B method B, which is an asynchronous method.
1410              
1411             This method stages the message, sending the message content to the recipient from the octet offset specified in the Open-Ok method.
1412              
1413             This class has no fields nor accessors.
1414              
1415             =head2 Net::AMQP::Protocol::File::Publish
1416              
1417             This class implements the class B method B, which is an asynchronous method.
1418              
1419             This method publishes a staged file message to a specific exchange. The file message will be routed to queues as defined by the exchange configuration and distributed to any active consumers when the transaction, if any, is committed.
1420              
1421             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1422              
1423             =over 4
1424              
1425             =item I (type: short)
1426              
1427             =item I (type: shortstr)
1428              
1429             Specifies the name of the exchange to publish to. The exchange name can be empty, meaning the default exchange. If the exchange name is specified, and that exchange does not exist, the server will raise a channel exception.
1430              
1431             =item I (type: shortstr)
1432              
1433             Message routing key
1434              
1435             Specifies the routing key for the message. The routing key is used for routing messages depending on the exchange configuration.
1436              
1437             =item I (type: bit)
1438              
1439             Indicate mandatory routing
1440              
1441             This flag tells the server how to react if the message cannot be routed to a queue. If this flag is set, the server will return an unroutable message with a Return method. If this flag is zero, the server silently drops the message.
1442              
1443             =item I (type: bit)
1444              
1445             Request immediate delivery
1446              
1447             This flag tells the server how to react if the message cannot be routed to a queue consumer immediately. If this flag is set, the server will return an undeliverable message with a Return method. If this flag is zero, the server will queue the message, but with no guarantee that it will ever be consumed.
1448              
1449             =item I (type: shortstr)
1450              
1451             Staging identifier
1452              
1453             This is the staging identifier of the message to publish. The message must have been staged. Note that a client can send the Publish method asynchronously without waiting for staging to finish.
1454              
1455             =back
1456              
1457             =head2 Net::AMQP::Protocol::File::Return
1458              
1459             This class implements the class B method B, which is an asynchronous method.
1460              
1461             This method returns an undeliverable message that was published with the "immediate" flag set, or an unroutable message published with the "mandatory" flag set. The reply code and text provide information about the reason that the message was undeliverable.
1462              
1463             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1464              
1465             =over 4
1466              
1467             =item I (type: short)
1468              
1469             =item I (type: shortstr)
1470              
1471             =item I (type: shortstr)
1472              
1473             Specifies the name of the exchange that the message was originally published to.
1474              
1475             =item I (type: shortstr)
1476              
1477             Message routing key
1478              
1479             Specifies the routing key name specified when the message was published.
1480              
1481             =back
1482              
1483             =head2 Net::AMQP::Protocol::File::Deliver
1484              
1485             This class implements the class B method B, which is an asynchronous method.
1486              
1487             This method delivers a staged file message to the client, via a consumer. In the asynchronous message delivery model, the client starts a consumer using the Consume method, then the server responds with Deliver methods as and when messages arrive for that consumer.
1488              
1489             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1490              
1491             =over 4
1492              
1493             =item I (type: shortstr)
1494              
1495             =item I (type: longlong)
1496              
1497             =item I (type: bit)
1498              
1499             =item I (type: shortstr)
1500              
1501             Specifies the name of the exchange that the message was originally published to.
1502              
1503             =item I (type: shortstr)
1504              
1505             Message routing key
1506              
1507             Specifies the routing key name specified when the message was published.
1508              
1509             =item I (type: shortstr)
1510              
1511             Staging identifier
1512              
1513             This is the staging identifier of the message to deliver. The message must have been staged. Note that a server can send the Deliver method asynchronously without waiting for staging to finish.
1514              
1515             =back
1516              
1517             =head2 Net::AMQP::Protocol::File::Ack
1518              
1519             This class implements the class B method B, which is an asynchronous method.
1520              
1521             This method acknowledges one or more messages delivered via the Deliver method. The client can ask to confirm a single message or a set of messages up to and including a specific message.
1522              
1523             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1524              
1525             =over 4
1526              
1527             =item I (type: longlong)
1528              
1529             =item I (type: bit)
1530              
1531             Acknowledge multiple messages
1532              
1533             If set to 1, the delivery tag is treated as "up to and including", so that the client can acknowledge multiple messages with a single method. If set to zero, the delivery tag refers to a single message. If the multiple field is 1, and the delivery tag is zero, tells the server to acknowledge all outstanding mesages.
1534              
1535             =back
1536              
1537             =head2 Net::AMQP::Protocol::File::Reject
1538              
1539             This class implements the class B method B, which is an asynchronous method.
1540              
1541             This method allows a client to reject a message. It can be used to return untreatable messages to their original queue. Note that file content is staged before delivery, so the client will not use this method to interrupt delivery of a large message.
1542              
1543             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1544              
1545             =over 4
1546              
1547             =item I (type: longlong)
1548              
1549             =item I (type: bit)
1550              
1551             Requeue the message
1552              
1553             If this field is zero, the message will be discarded. If this bit is 1, the server will attempt to requeue the message.
1554              
1555             =back
1556              
1557             =head2 Net::AMQP::Protocol::File::ContentHeader
1558              
1559             This class implements the class B method B, which is an asynchronous method.
1560              
1561             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1562              
1563             =over 4
1564              
1565             =item I (type: shortstr)
1566              
1567             =item I (type: shortstr)
1568              
1569             =item I (type: table)
1570              
1571             =item I (type: octet)
1572              
1573             =item I (type: shortstr)
1574              
1575             =item I (type: shortstr)
1576              
1577             =item I (type: shortstr)
1578              
1579             =item I (type: timestamp)
1580              
1581             =item I (type: shortstr)
1582              
1583             =back
1584              
1585             =head2 Net::AMQP::Protocol::Stream::Qos
1586              
1587             This class implements the class B method B, which is a synchronous method.
1588              
1589             This method requests a specific quality of service. The QoS can be specified for the current channel or for all channels on the connection. The particular properties and semantics of a qos method always depend on the content class semantics. Though the qos method could in principle apply to both peers, it is currently meaningful only for the server.
1590              
1591             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1592              
1593             =over 4
1594              
1595             =item I (type: long)
1596              
1597             Prefetch window in octets
1598              
1599             The client can request that messages be sent in advance so that when the client finishes processing a message, the following message is already held locally, rather than needing to be sent down the channel. Prefetching gives a performance improvement. This field specifies the prefetch window size in octets. May be set to zero, meaning "no specific limit". Note that other prefetch limits may still apply.
1600              
1601             =item I (type: short)
1602              
1603             Prefetch window in messages
1604              
1605             Specifies a prefetch window in terms of whole messages. This field may be used in combination with the prefetch-size field; a message will only be sent in advance if both prefetch windows (and those at the channel and connection level) allow it.
1606              
1607             =item I (type: long)
1608              
1609             Transfer rate in octets/second
1610              
1611             Specifies a desired transfer rate in octets per second. This is usually determined by the application that uses the streaming data. A value of zero means "no limit", i.e. as rapidly as possible.
1612              
1613             =item I (type: bit)
1614              
1615             Apply to entire connection
1616              
1617             By default the QoS settings apply to the current channel only. If this field is set, they are applied to the entire connection.
1618              
1619             =back
1620              
1621             =head2 Net::AMQP::Protocol::Stream::QosOk
1622              
1623             This class implements the class B method B, which is a synchronous method.
1624              
1625             This method tells the client that the requested QoS levels could be handled by the server. The requested QoS applies to all active consumers until a new QoS is defined.
1626              
1627             This class has no fields nor accessors.
1628              
1629             =head2 Net::AMQP::Protocol::Stream::Consume
1630              
1631             This class implements the class B method B, which is a synchronous method.
1632              
1633             This method asks the server to start a "consumer", which is a transient request for messages from a specific queue. Consumers last as long as the channel they were created on, or until the client cancels them.
1634              
1635             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1636              
1637             =over 4
1638              
1639             =item I (type: short)
1640              
1641             =item I (type: shortstr)
1642              
1643             Specifies the name of the queue to consume from. If the queue name is null, refers to the current queue for the channel, which is the last declared queue.
1644              
1645             =item I (type: shortstr)
1646              
1647             Specifies the identifier for the consumer. The consumer tag is local to a connection, so two clients can use the same consumer tags. If this field is empty the server will generate a unique tag.
1648              
1649             =item I (type: bit)
1650              
1651             =item I (type: bit)
1652              
1653             Request exclusive access
1654              
1655             Request exclusive consumer access, meaning only this consumer can access the queue.
1656              
1657             =item I (type: bit)
1658              
1659             Do not send a reply method
1660              
1661             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
1662              
1663             =back
1664              
1665             =head2 Net::AMQP::Protocol::Stream::ConsumeOk
1666              
1667             This class implements the class B method B, which is a synchronous method.
1668              
1669             This method provides the client with a consumer tag which it may use in methods that work with the consumer.
1670              
1671             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1672              
1673             =over 4
1674              
1675             =item I (type: shortstr)
1676              
1677             Holds the consumer tag specified by the client or provided by the server.
1678              
1679             =back
1680              
1681             =head2 Net::AMQP::Protocol::Stream::Cancel
1682              
1683             This class implements the class B method B, which is a synchronous method.
1684              
1685             This method cancels a consumer. Since message delivery is asynchronous the client may continue to receive messages for a short while after canceling a consumer. It may process or discard these as appropriate.
1686              
1687             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1688              
1689             =over 4
1690              
1691             =item I (type: shortstr)
1692              
1693             =item I (type: bit)
1694              
1695             Do not send a reply method
1696              
1697             If set, the server will not respond to the method. The client should not wait for a reply method. If the server could not complete the method it will raise a channel or connection exception.
1698              
1699             =back
1700              
1701             =head2 Net::AMQP::Protocol::Stream::CancelOk
1702              
1703             This class implements the class B method B, which is a synchronous method.
1704              
1705             This method confirms that the cancellation was completed.
1706              
1707             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1708              
1709             =over 4
1710              
1711             =item I (type: shortstr)
1712              
1713             =back
1714              
1715             =head2 Net::AMQP::Protocol::Stream::Publish
1716              
1717             This class implements the class B method B, which is an asynchronous method.
1718              
1719             This method publishes a message to a specific exchange. The message will be routed to queues as defined by the exchange configuration and distributed to any active consumers as appropriate.
1720              
1721             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1722              
1723             =over 4
1724              
1725             =item I (type: short)
1726              
1727             =item I (type: shortstr)
1728              
1729             Specifies the name of the exchange to publish to. The exchange name can be empty, meaning the default exchange. If the exchange name is specified, and that exchange does not exist, the server will raise a channel exception.
1730              
1731             =item I (type: shortstr)
1732              
1733             Message routing key
1734              
1735             Specifies the routing key for the message. The routing key is used for routing messages depending on the exchange configuration.
1736              
1737             =item I (type: bit)
1738              
1739             Indicate mandatory routing
1740              
1741             This flag tells the server how to react if the message cannot be routed to a queue. If this flag is set, the server will return an unroutable message with a Return method. If this flag is zero, the server silently drops the message.
1742              
1743             =item I (type: bit)
1744              
1745             Request immediate delivery
1746              
1747             This flag tells the server how to react if the message cannot be routed to a queue consumer immediately. If this flag is set, the server will return an undeliverable message with a Return method. If this flag is zero, the server will queue the message, but with no guarantee that it will ever be consumed.
1748              
1749             =back
1750              
1751             =head2 Net::AMQP::Protocol::Stream::Return
1752              
1753             This class implements the class B method B, which is an asynchronous method.
1754              
1755             This method returns an undeliverable message that was published with the "immediate" flag set, or an unroutable message published with the "mandatory" flag set. The reply code and text provide information about the reason that the message was undeliverable.
1756              
1757             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1758              
1759             =over 4
1760              
1761             =item I (type: short)
1762              
1763             =item I (type: shortstr)
1764              
1765             =item I (type: shortstr)
1766              
1767             Specifies the name of the exchange that the message was originally published to.
1768              
1769             =item I (type: shortstr)
1770              
1771             Message routing key
1772              
1773             Specifies the routing key name specified when the message was published.
1774              
1775             =back
1776              
1777             =head2 Net::AMQP::Protocol::Stream::Deliver
1778              
1779             This class implements the class B method B, which is an asynchronous method.
1780              
1781             This method delivers a message to the client, via a consumer. In the asynchronous message delivery model, the client starts a consumer using the Consume method, then the server responds with Deliver methods as and when messages arrive for that consumer.
1782              
1783             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1784              
1785             =over 4
1786              
1787             =item I (type: shortstr)
1788              
1789             =item I (type: longlong)
1790              
1791             =item I (type: shortstr)
1792              
1793             Specifies the name of the exchange that the message was originally published to.
1794              
1795             =item I (type: shortstr)
1796              
1797             Specifies the name of the queue that the message came from. Note that a single channel can start many consumers on different queues.
1798              
1799             =back
1800              
1801             =head2 Net::AMQP::Protocol::Stream::ContentHeader
1802              
1803             This class implements the class B method B, which is an asynchronous method.
1804              
1805             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1806              
1807             =over 4
1808              
1809             =item I (type: shortstr)
1810              
1811             =item I (type: shortstr)
1812              
1813             =item I (type: table)
1814              
1815             =item I (type: octet)
1816              
1817             =item I (type: timestamp)
1818              
1819             =back
1820              
1821             =head2 Net::AMQP::Protocol::Tx::Select
1822              
1823             This class implements the class B method B
1824              
1825             This method sets the channel to use standard transactions. The client must use this method at least once on a channel before using the Commit or Rollback methods.
1826              
1827             This class has no fields nor accessors.
1828              
1829             =head2 Net::AMQP::Protocol::Tx::SelectOk
1830              
1831             This class implements the class B method B, which is a synchronous method.
1832              
1833             This method confirms to the client that the channel was successfully set to use standard transactions.
1834              
1835             This class has no fields nor accessors.
1836              
1837             =head2 Net::AMQP::Protocol::Tx::Commit
1838              
1839             This class implements the class B method B, which is a synchronous method.
1840              
1841             This method commits all messages published and acknowledged in the current transaction. A new transaction starts immediately after a commit.
1842              
1843             This class has no fields nor accessors.
1844              
1845             =head2 Net::AMQP::Protocol::Tx::CommitOk
1846              
1847             This class implements the class B method B, which is a synchronous method.
1848              
1849             This method confirms to the client that the commit succeeded. Note that if a commit fails, the server raises a channel exception.
1850              
1851             This class has no fields nor accessors.
1852              
1853             =head2 Net::AMQP::Protocol::Tx::Rollback
1854              
1855             This class implements the class B method B, which is a synchronous method.
1856              
1857             This method abandons all messages published and acknowledged in the current transaction. A new transaction starts immediately after a rollback.
1858              
1859             This class has no fields nor accessors.
1860              
1861             =head2 Net::AMQP::Protocol::Tx::RollbackOk
1862              
1863             This class implements the class B method B, which is a synchronous method.
1864              
1865             This method confirms to the client that the rollback succeeded. Note that if an rollback fails, the server raises a channel exception.
1866              
1867             This class has no fields nor accessors.
1868              
1869             =head2 Net::AMQP::Protocol::Dtx::Select
1870              
1871             This class implements the class B method B
1872              
1873             This method sets the channel to use distributed transactions. The client must use this method at least once on a channel before using the Start method.
1874              
1875             This class has no fields nor accessors.
1876              
1877             =head2 Net::AMQP::Protocol::Dtx::SelectOk
1878              
1879             This class implements the class B method B, which is a synchronous method.
1880              
1881             This method confirms to the client that the channel was successfully set to use distributed transactions.
1882              
1883             This class has no fields nor accessors.
1884              
1885             =head2 Net::AMQP::Protocol::Dtx::Start
1886              
1887             This class implements the class B method B, which is a synchronous method.
1888              
1889             This method starts a new distributed transaction. This must be the first method on a new channel that uses the distributed transaction mode, before any methods that publish or consume messages.
1890              
1891             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1892              
1893             =over 4
1894              
1895             =item I (type: shortstr)
1896              
1897             Transaction identifier
1898              
1899             The distributed transaction key. This identifies the transaction so that the AMQP server can coordinate with the distributed transaction coordinator.
1900              
1901             =back
1902              
1903             =head2 Net::AMQP::Protocol::Dtx::StartOk
1904              
1905             This class implements the class B method B, which is a synchronous method.
1906              
1907             This method confirms to the client that the transaction started. Note that if a start fails, the server raises a channel exception.
1908              
1909             This class has no fields nor accessors.
1910              
1911             =head2 Net::AMQP::Protocol::Tunnel::Request
1912              
1913             This class implements the class B method B, which is an asynchronous method.
1914              
1915             This method tunnels a block of binary data, which can be an encoded AMQP method or other data. The binary data is sent as the content for the Tunnel.Request method.
1916              
1917             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1918              
1919             =over 4
1920              
1921             =item I (type: table)
1922              
1923             Meta data for the tunnelled block
1924              
1925             This field table holds arbitrary meta-data that the sender needs to pass to the recipient.
1926              
1927             =back
1928              
1929             =head2 Net::AMQP::Protocol::Tunnel::ContentHeader
1930              
1931             This class implements the class B method B, which is an asynchronous method.
1932              
1933             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1934              
1935             =over 4
1936              
1937             =item I (type: table)
1938              
1939             =item I (type: shortstr)
1940              
1941             =item I (type: shortstr)
1942              
1943             =item I (type: octet)
1944              
1945             =item I (type: octet)
1946              
1947             =back
1948              
1949             =head2 Net::AMQP::Protocol::Test::Integer
1950              
1951             This class implements the class B method B, which is a synchronous method.
1952              
1953             This method tests the peer's capability to correctly marshal integer data.
1954              
1955             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1956              
1957             =over 4
1958              
1959             =item I (type: octet)
1960              
1961             Octet test value
1962              
1963             An octet integer test value.
1964              
1965             =item I (type: short)
1966              
1967             Short test value
1968              
1969             A short integer test value.
1970              
1971             =item I (type: long)
1972              
1973             Long test value
1974              
1975             A long integer test value.
1976              
1977             =item I (type: longlong)
1978              
1979             Long-long test value
1980              
1981             A long long integer test value.
1982              
1983             =item I (type: octet)
1984              
1985             Operation to test
1986              
1987             The client must execute this operation on the provided integer test fields and return the result.
1988              
1989             =back
1990              
1991             =head2 Net::AMQP::Protocol::Test::IntegerOk
1992              
1993             This class implements the class B method B, which is a synchronous method.
1994              
1995             This method reports the result of an Integer method.
1996              
1997             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
1998              
1999             =over 4
2000              
2001             =item I (type: longlong)
2002              
2003             Result value
2004              
2005             The result of the tested operation.
2006              
2007             =back
2008              
2009             =head2 Net::AMQP::Protocol::Test::String
2010              
2011             This class implements the class B method B, which is a synchronous method.
2012              
2013             This method tests the peer's capability to correctly marshal string data.
2014              
2015             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
2016              
2017             =over 4
2018              
2019             =item I (type: shortstr)
2020              
2021             Short string test value
2022              
2023             An short string test value.
2024              
2025             =item I (type: longstr)
2026              
2027             Long string test value
2028              
2029             A long string test value.
2030              
2031             =item I (type: octet)
2032              
2033             Operation to test
2034              
2035             The client must execute this operation on the provided string test fields and return the result.
2036              
2037             =back
2038              
2039             =head2 Net::AMQP::Protocol::Test::StringOk
2040              
2041             This class implements the class B method B, which is a synchronous method.
2042              
2043             This method reports the result of a String method.
2044              
2045             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
2046              
2047             =over 4
2048              
2049             =item I (type: longstr)
2050              
2051             Result value
2052              
2053             The result of the tested operation.
2054              
2055             =back
2056              
2057             =head2 Net::AMQP::Protocol::Test::Table
2058              
2059             This class implements the class B method B, which is a synchronous method.
2060              
2061             This method tests the peer's capability to correctly marshal field table data.
2062              
2063             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
2064              
2065             =over 4
2066              
2067             =item I (type: table)
2068              
2069             Field table of test values
2070              
2071             A field table of test values.
2072              
2073             =item I (type: octet)
2074              
2075             Operation to test on integers
2076              
2077             The client must execute this operation on the provided field table integer values and return the result.
2078              
2079             =item I (type: octet)
2080              
2081             Operation to test on strings
2082              
2083             The client must execute this operation on the provided field table string values and return the result.
2084              
2085             =back
2086              
2087             =head2 Net::AMQP::Protocol::Test::TableOk
2088              
2089             This class implements the class B method B, which is a synchronous method.
2090              
2091             This method reports the result of a Table method.
2092              
2093             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
2094              
2095             =over 4
2096              
2097             =item I (type: longlong)
2098              
2099             Integer result value
2100              
2101             The result of the tested integer operation.
2102              
2103             =item I (type: longstr)
2104              
2105             String result value
2106              
2107             The result of the tested string operation.
2108              
2109             =back
2110              
2111             =head2 Net::AMQP::Protocol::Test::Content
2112              
2113             This class implements the class B method B, which is a synchronous method.
2114              
2115             This method tests the peer's capability to correctly marshal content.
2116              
2117             This class has no fields nor accessors.
2118              
2119             =head2 Net::AMQP::Protocol::Test::ContentOk
2120              
2121             This class implements the class B method B, which is a synchronous method.
2122              
2123             This method reports the result of a Content method. It contains the content checksum and echoes the original content as provided.
2124              
2125             Each of the following represents a field in the specification. These are the optional arguments to B and are also read/write accessors:
2126              
2127             =over 4
2128              
2129             =item I (type: long)
2130              
2131             Content hash
2132              
2133             The 32-bit checksum of the content, calculated by adding the content into a 32-bit accumulator.
2134              
2135             =back
2136              
2137             =cut
2138              
2139              
2140             __DATA__