// This source code is dual-licensed under the Mozilla Public License ("MPL"), // version 1.1 and the Apache License ("ASL"), version 2.0. // // The ASL v2.0: // // --------------------------------------------------------------------------- // Copyright 2016 Pivotal Software, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // --------------------------------------------------------------------------- // // The MPL v1.1: // // --------------------------------------------------------------------------- // The contents of this file are subject to the Mozilla Public License // Version 1.1 (the "License"); you may not use this file except in // compliance with the License. You may obtain a copy of the License at // https://www.mozilla.org/MPL/ // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the // License for the specific language governing rights and limitations // under the License. // // The Original Code is RabbitMQ // // The Initial Developer of the Original Code is Pivotal Software, Inc. // All Rights Reserved. // // Alternatively, the contents of this file may be used under the terms // of the Apache Standard license (the "ASL License"), in which case the // provisions of the ASL License are applicable instead of those // above. If you wish to allow use of your version of this file only // under the terms of the ASL License and not to allow others to use // your version of this file under the MPL, indicate your decision by // deleting the provisions above and replace them with the notice and // other provisions required by the ASL License. If you do not delete // the provisions above, a recipient may use your version of this file // under either the MPL or the ASL License. // --------------------------------------------------------------------------- #import "RMQMethods+Convenience.h" @implementation RMQBasicConsume (Convenience) - (instancetype)initWithQueue:(NSString *)queueName consumerTag:(NSString *)consumerTag options:(RMQBasicConsumeOptions)options { return [self initWithReserved1:[[RMQShort alloc] init:0] queue:[[RMQShortstr alloc] init:queueName] consumerTag:[[RMQShortstr alloc] init:consumerTag] options:options arguments:[RMQTable new]]; } @end @implementation RMQBasicQos (Convenience) - (instancetype)initWithPrefetchCount:(NSNumber *)prefetchCount global:(BOOL)isGlobal { RMQBasicQosOptions options = RMQBasicQosNoOptions; if (isGlobal) options |= RMQBasicQosGlobal; return [self initWithPrefetchSize:[[RMQLong alloc] init:0] prefetchCount:[[RMQShort alloc] init:prefetchCount.integerValue] options:options]; } @end @implementation RMQChannelOpen (Convenience) - (instancetype)init { return [self initWithReserved1:[[RMQShortstr alloc] init:@""]]; } @end @implementation RMQChannelClose (Convenience) - (instancetype)init { return [self initWithReplyCode:[[RMQShort alloc] init:200] replyText:[[RMQShortstr alloc] init:@"Goodbye"] classId:[[RMQShort alloc] init:0] methodId:[[RMQShort alloc] init:0]]; } @end @implementation RMQConfirmSelect (Convenience) - (instancetype)init { return [self initWithOptions:RMQConfirmSelectNoOptions]; } @end @implementation RMQExchangeBind (Convenience) - (instancetype)initWithDestination:(NSString *)destination source:(NSString *)source routingKey:(NSString *)routingKey { return [self initWithReserved1:[[RMQShort alloc] init:0] destination:[[RMQShortstr alloc] init:destination] source:[[RMQShortstr alloc] init:source] routingKey:[[RMQShortstr alloc] init:routingKey] options:RMQExchangeBindNoOptions arguments:[RMQTable new]]; } @end @implementation RMQExchangeDeclare (Convenience) - (instancetype)initWithExchange:(NSString *)exchangeName type:(NSString *)type options:(RMQExchangeDeclareOptions)options { return [self initWithReserved1:[[RMQShort alloc] init:0] exchange:[[RMQShortstr alloc] init:exchangeName] type:[[RMQShortstr alloc] init:type] options:options arguments:[RMQTable new]]; } @end @implementation RMQExchangeUnbind (Convenience) - (instancetype)initWithDestination:(NSString *)destination source:(NSString *)source routingKey:(NSString *)routingKey { return [self initWithReserved1:[[RMQShort alloc] init:0] destination:[[RMQShortstr alloc] init:destination] source:[[RMQShortstr alloc] init:source] routingKey:[[RMQShortstr alloc] init:routingKey] options:RMQExchangeUnbindNoOptions arguments:[RMQTable new]]; } @end @implementation RMQQueueBind (Convenience) - (instancetype)initWithQueue:(NSString *)queueName exchange:(NSString *)exchangeName routingKey:(NSString *)routingKey { return [self initWithReserved1:[[RMQShort alloc] init:0] queue:[[RMQShortstr alloc] init:queueName] exchange:[[RMQShortstr alloc] init:exchangeName] routingKey:[[RMQShortstr alloc] init:routingKey] options:RMQQueueBindNoOptions arguments:[RMQTable new]]; } @end @implementation RMQQueueDeclare (Convenience) - (instancetype)initWithQueue:(NSString *)queueName options:(RMQQueueDeclareOptions)options arguments:(RMQTable *)arguments { RMQShort *ticket = [[RMQShort alloc] init:0]; RMQShortstr *amqQueueName = [[RMQShortstr alloc] init:queueName]; return [self initWithReserved1:ticket queue:amqQueueName options:options arguments:arguments]; } @end @implementation RMQQueueDelete (Convenience) - (instancetype)initWithQueue:(NSString *)queueName options:(RMQQueueDeleteOptions)options { return [self initWithReserved1:[[RMQShort alloc] init:0] queue:[[RMQShortstr alloc] init:queueName] options:options]; } @end @implementation RMQQueueUnbind (Convenience) - (instancetype)initWithQueue:(NSString *)queueName exchange:(NSString *)exchangeName routingKey:(NSString *)routingKey { return [self initWithReserved1:[[RMQShort alloc] init:0] queue:[[RMQShortstr alloc] init:queueName] exchange:[[RMQShortstr alloc] init:exchangeName] routingKey:[[RMQShortstr alloc] init:routingKey] arguments:[RMQTable new]]; } @end