def channel(self, on_open_callback, channel_number=None): """ Create a new channel with the next available channel number or pass in a channel number to use. Must be non-zero if you would like to specify but it is recommended that you let Pika manage the channel numbers. """ # If the user didn't specify a channel_number get the next avail if not channel_number: channel_number = self._next_channel_number() # Open the channel passing the users callback self._channels[channel_number] = channel.Channel( self, channel_number, on_open_callback) # Add the callback for our Channel.Close event in case the Broker # wants to close us for some reason self.callbacks.add(channel_number, spec.Channel.Close, self._on_channel_close) # Add the channel spec.Channel.CloseOk callback for _on_channel_close self.callbacks.add(channel_number, spec.Channel.CloseOk, self._on_channel_close) # Open the channel self._channels[channel_number].open()
def _create_channel(self, channel_number, on_open_callback): """Create a new channel using the specified channel number and calling back the method specified by on_open_callback :param int channel_number: The channel number to use :param method on_open_callback: The callback when the channel is opened """ return channel.Channel(self, channel_number, on_open_callback)