_Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ YZ[\_]^`aYZZ[\]^ b     icdefghijklmnopqrstuvwxyz{|}~ Packs up to 8 bits into a Word8 5Packs up to 15 Bits into a Word16 (=Property Flags) tcdefghijklmnopqrstuvwxyz{|}~icY~}|{zyxwvutsrqponmlkjihgfeddefghijklmnopqrstuvwxyz{|}~  aString may contain a reason the 0 contains the reason why the channel was closed A connection to an AMQP server is made up of separate channels. It is recommended to use a separate channel for each thread in your application that talks to the AMQP server (but you don''t have to as channels are thread-safe) An AMQP message the content of your message see # #use in any way you like; this doesn'(t affect the way the message is handled !#use in any way you like; this doesn'(t affect the way the message is handled "#$.the message may be lost after server restarts %Cthe message will survive server restarts (if the queue is durable) &:contains meta-information of a delivered message (through K or H) '()*+,-Ispecifies whether you have to acknowledge messages that you receive from H or K . If you use /-, you have to call L or MY after you have processed a message, otherwise it might be delivered again in the future ./01IA record that contains the fields needed when creating a new queue using D(. The default values apply when you use C. 23 (default ""d); the name of the queue; if left empty, the server will generate a new name and return it from the D method 4 (default ); 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. 5 (default ); 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. 6 (default U); Exclusive queues may only be consumed from by the current connection. Setting the  exclusive flag always implies  'auto-delete'. 7 (default ); 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. 8KA record that contains the fields needed when creating a new exhange using A(. The default values apply when you use @. 9:((must be set); the name of the exchange ;)(must be set); the type of the exchange ("fanout", "direct", "topic") < (default ); 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. = (default ); 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. > (default K); If set, the exchange is deleted when all queues have finished using it. ? (default ); 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. @an 983 with defaults set; you must override at least the : and ; fields. ACdeclares a new exchange on the AMQP server. Can be used like this: 4declareExchange channel newExchange {exchangeName = " myExchange", exchangeType = "fanout"} B,deletes the exchange with the provided name Ca 211 with defaults set; you should override at least 3. D?creates a new queue on the AMQP server; can be used like this: +declareQueue channel newQueue {queueName = "myQueue"}. Returns a tuple ((queueName, messageCount, consumerCount).   queueName) is the name of the new queue (if you don':t specify a queueName the server will autogenerate one).   messageCountV is the number of messages in the queue, which will be zero for newly-created queues.  consumerCount2 is the number of active consumers for the queue. E0bindQueue chan queueName exchangeName routingKey@ binds the queue to the exchange using the provided routing key Faremove all messages from the queue; returns the number of messages that were in the queue GYdeletes the queue; returns the number of messages that were in the queue before deletion H'consumeMsgs chan queueName ack callbackq subscribes to the given queue and returns a consumerTag. For any incoming message, the callback will be run. If ack == /-9 you will have to acknowledge all incoming messages (see L and M) NOTE: The callback will be run on the same thread as the channel thread (every channel spawns its own thread to listen for incoming data) so DO NOT perform any request on chans inside the callback (however, you CAN perform requests on other open channels inside the callback, though I wouldn't recommend it). ( Functions that can safely be called on chan are L, M, N, O2. If you want to perform anything more complex, it' s a good idea to wrap it inside . I'stops a consumer that was started with H J+publishMsg chan exchangeName routingKey msg publishes msg# to the exchange with the provided  exchangeName. The effect of  routingKey% depends on the type of the exchange NOTE: This method may temporarily block if the AMQP server requested us to stop sending content data (using the flow control mechanism). So don',t rely on this method returning immediately KgetMsg chan ack queueName- gets a message from the specified queue. If ack==/-, you have to call L or M_ for any message that you get, otherwise it might be delivered again in the future (by calling O) L ackMsg chan deliveryTag multiple$ acknowledges one or more messages. if multiple==True, the  deliverTag is treated as "up to and including"U, so that the client can acknowledge multiple messages with a single method call. If multiple==False,  deliveryTag refers to a single message. If multiple==True, and deliveryTag==0;, tells the server to acknowledge all outstanding mesages. M5Acknowledges a single message. This is a wrapper for L in case you have the '& at hand. N"rejectMsg chan deliveryTag requeue 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. If requeue==False+, the message will be discarded. If it is 2, the server will attempt to requeue the message. NOTE: RabbitMQ 1.7 doesn't implement this command OrecoverMsgs chan requeuem asks the broker to redeliver all messages that were received but not acknowledged on the specified channel. If requeue==False@, the message will be redelivered to the original recipient. If  requeue==Trueo, the server will attempt to requeue the message, potentially then delivering it to an alternative subscriber. PThis 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. QThis method commits all messages published and acknowledged in the current transaction. A new transaction starts immediately after a commit. RThis method abandons all messages published and acknowledged in the current transaction. A new transaction starts immediately after a rollback. Sflow chan active? tells the AMQP server to pause or restart the flow of content F data. This is a simple flow-control mechanism that a peer can use J to avoid overflowing its queues or otherwise finding itself receiving ) more messages than it can process. If  active==True0 the server will start sending content data, if  active==False, the server will stop sending content data. +A new channel is always active by default. NOTE: RabbitMQ 1.7 doesn't implement this command. Ta Msg1 with defaults set; you should override at least  >reads all frames necessary to build an assembly ;reads a contentheader and contentbodies and assembles them Sreads incoming frames from socket and forwards them to the opened channels U;openConnection hostname virtualHost loginName loginPassword1 opens a connection to an AMQP server running on hostname.   virtualHost7 is used as a namespace for AMQP resources (default is "/"V), so different applications could use multiple virtual hosts on the same AMQP server XNOTE: If the login name, password or virtual host are invalid, this method will throw a O. The exception will not contain a reason why the connection was closed, so you'll have to find out yourself. Vsame as UL but allows you to specify a non-default port-number as the 2nd parameter Wcloses a connection )The thread that is run for every channel X+opens a new channel on the connection There'|s currently no closeChannel method, but you can always just close the connection (the maximum number of channels is 65535). 1writes multiple frames to the channel atomically &writes an assembly to the channel 0sends an assembly and receives the response B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXBUVWX89:;<=>?@AB1234567CDEFG !"#%$T&'()*+,0-/.HIJKNOLMPQRSB !" !"#%$$%&'()*+,'()*+,-/../0123456723456789:;<=>?9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX      !"#$%&''()*+,-.-/001234566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_amqp-0.2Network.AMQP.Types Network.AMQPNetwork.AMQP.HelpersNetwork.AMQP.GeneratedNetwork.AMQP.ProtocolDecimals DecimalValue FieldValue FVFieldTable FVTimestampFVDecimalValue FVSignedInt FVLongString FieldTable Timestamp LongString ShortString LongLongIntLongIntShortInt PayloadSize ChannelIDBitOctet AMQPExceptionConnectionClosedExceptionChannelClosedExceptionChannel ConnectionMessagemsgBodymsgDeliveryMode msgTimestampmsgIDmsgContentType DeliveryMode NonPersistent PersistentEnvelopeenvDeliveryTagenvRedeliveredenvExchangeName envRoutingKey envChannelAckNoAck ConsumerTag QueueOpts queueName queuePassive queueDurablequeueExclusivequeueAutoDelete ExchangeOpts exchangeName exchangeTypeexchangePassiveexchangeDurableexchangeAutoDeleteexchangeInternal newExchangedeclareExchangedeleteExchangenewQueue declareQueue bindQueue purgeQueue deleteQueue consumeMsgscancelConsumer publishMsggetMsgackMsgackEnv rejectMsg recoverMsgstxSelecttxCommit txRollbackflownewMsgopenConnectionopenConnection'closeConnection openChannelLocktoStricttoLazyopenLock closeLocknewLockwaitLockkillLockreadMany MethodPayloadTest_content_ok Test_content Test_table_ok Test_tableTest_string_ok Test_stringTest_integer_ok Test_integerTunnel_request Dtx_start_ok Dtx_start Dtx_select_ok Dtx_selectTx_rollback_ok Tx_rollback Tx_commit_ok Tx_commit Tx_select_ok Tx_selectStream_deliver Stream_returnStream_publishStream_cancel_ok Stream_cancelStream_consume_okStream_consume Stream_qos_ok Stream_qos File_rejectFile_ack File_deliver File_return File_publish File_stage File_open_ok File_openFile_cancel_ok File_cancelFile_consume_ok File_consume File_qos_okFile_qos Basic_recover Basic_reject Basic_ackBasic_get_empty Basic_get_ok Basic_get Basic_deliver Basic_return Basic_publishBasic_cancel_ok Basic_cancelBasic_consume_ok Basic_consume Basic_qos_ok Basic_qosQueue_delete_ok Queue_deleteQueue_purge_ok Queue_purge Queue_bind_ok Queue_bindQueue_declare_ok Queue_declareExchange_delete_okExchange_deleteExchange_declare_okExchange_declareAccess_request_okAccess_requestChannel_close_ok Channel_close Channel_alertChannel_flow_ok Channel_flowChannel_open_ok Channel_openConnection_close_okConnection_closeConnection_redirectConnection_open_okConnection_openConnection_tune_okConnection_tuneConnection_secure_okConnection_secureConnection_start_okConnection_startContentHeaderPropertiesCHTestCHTunnelCHDtxCHTxCHStreamCHFileCHBasicCHQueue CHExchangeCHAccess CHChannel CHConnectionputBits putPropBitsgetContentHeaderPropertiesputContentHeaderProperties getClassIDOfputBits'getBitsgetBits' putPropBits' getPropBits getPropBits'condGetcondPut FramePayloadContentBodyPayloadContentHeaderPayloadFrame peekFrameSize hasContent frameType getPayload putPayloadbaseGHC.BaseString connectioninQueueoutstandingResponses channelIDlastConsumerTag chanActive chanClosed consumers connSocket connChannelsconnMaxFrameSize connClosed connWriteLock lastChannelIDAssembly ContentMethod SimpleMethodghc-primGHC.BoolFalseTrue ackToBoolGHC.ConcforkIO readAssemblycollectContentconnectionReceiver readFrameSockwriteFrameSockmsgFromContentHeaderPropertieschannelReceiver writeFrameswriteAssembly' writeAssemblyrequest