├── TestCertificates ├── .travis └── etc │ └── rabbitmq.conf ├── .gitignore ├── Cartfile ├── bin ├── add-license ├── set_version ├── bootstrap-if-needed ├── bootstrap ├── pod ├── bundler ├── xcodeproj ├── fuzzy_match ├── sandbox-pod └── carthage.sh ├── Cartfile.resolved ├── Gemfile ├── codegen ├── Gemfile ├── basic_properties_header_template.erb ├── basic_properties_implementation_template.erb ├── methods_header_template.erb ├── Gemfile.lock ├── methods_implementation_template.erb └── Rakefile ├── docker ├── certificates │ ├── client_key.p12 │ ├── server_key.p12 │ ├── README.md │ ├── client_certificate.pem │ ├── ca_certificate.pem │ ├── server_certificate.pem │ ├── client_key.pem │ ├── server_key.pem │ └── ca_key.pem ├── Dockerfile ├── docker-entrypoint.sh └── rabbitmq.conf ├── Pods ├── Target Support Files │ ├── JKVValue │ │ ├── JKVValue.modulemap │ │ ├── JKVValue-dummy.m │ │ ├── JKVValue-prefix.pch │ │ ├── JKVValue-umbrella.h │ │ ├── JKVValue.debug.xcconfig │ │ ├── JKVValue.release.xcconfig │ │ └── JKVValue-Info.plist │ ├── Pods-RMQClient │ │ ├── Pods-RMQClient.modulemap │ │ ├── Pods-RMQClient-dummy.m │ │ ├── Pods-RMQClient-umbrella.h │ │ ├── Pods-RMQClient-Info.plist │ │ ├── Pods-RMQClient.debug.xcconfig │ │ ├── Pods-RMQClient.release.xcconfig │ │ ├── Pods-RMQClient.test with tls.xcconfig │ │ ├── Pods-RMQClient.test without tls.xcconfig │ │ └── Pods-RMQClient-acknowledgements.markdown │ ├── Pods-MemoryTest │ │ ├── Pods-MemoryTest.modulemap │ │ ├── Pods-MemoryTest-dummy.m │ │ ├── Pods-MemoryTest-acknowledgements.markdown │ │ ├── Pods-MemoryTest-umbrella.h │ │ ├── Pods-MemoryTest.debug.xcconfig │ │ ├── Pods-MemoryTest.release.xcconfig │ │ ├── Pods-MemoryTest.test with tls.xcconfig │ │ ├── Pods-MemoryTest.test without tls.xcconfig │ │ ├── Pods-MemoryTest-acknowledgements.plist │ │ └── Pods-MemoryTest-Info.plist │ ├── CocoaAsyncSocket │ │ ├── CocoaAsyncSocket.modulemap │ │ ├── CocoaAsyncSocket-dummy.m │ │ ├── CocoaAsyncSocket-prefix.pch │ │ ├── CocoaAsyncSocket-umbrella.h │ │ ├── CocoaAsyncSocket.debug.xcconfig │ │ ├── CocoaAsyncSocket.release.xcconfig │ │ └── CocoaAsyncSocket-Info.plist │ ├── Pods-RMQClient-RMQClientTests │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests.modulemap │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-dummy.m │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Test with TLS-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Test without TLS-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Test with TLS-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-frameworks-Test without TLS-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientTests-umbrella.h │ │ ├── Pods-RMQClient-RMQClientTests-Info.plist │ │ ├── Pods-RMQClient-RMQClientTests.debug.xcconfig │ │ ├── Pods-RMQClient-RMQClientTests.release.xcconfig │ │ ├── Pods-RMQClient-RMQClientTests.test with tls.xcconfig │ │ ├── Pods-RMQClient-RMQClientTests.test without tls.xcconfig │ │ └── Pods-RMQClient-RMQClientTests-acknowledgements.markdown │ └── Pods-RMQClient-RMQClientIntegrationTests │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test with TLS-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test without TLS-output-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests.modulemap │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-dummy.m │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test with TLS-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test without TLS-input-files.xcfilelist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-umbrella.h │ │ ├── Pods-RMQClient-RMQClientIntegrationTests-Info.plist │ │ ├── Pods-RMQClient-RMQClientIntegrationTests.debug.xcconfig │ │ ├── Pods-RMQClient-RMQClientIntegrationTests.release.xcconfig │ │ ├── Pods-RMQClient-RMQClientIntegrationTests.test with tls.xcconfig │ │ ├── Pods-RMQClient-RMQClientIntegrationTests.test without tls.xcconfig │ │ └── Pods-RMQClient-RMQClientIntegrationTests-acknowledgements.markdown ├── JKVValue │ ├── JKVValue │ │ ├── Public │ │ │ ├── JKVValue.h │ │ │ ├── JKVMutableValue.m │ │ │ ├── JKVMutableValue.h │ │ │ └── JKVObjectPrinter.h │ │ └── Private │ │ │ ├── JKVNonZeroSetterVisitor.h │ │ │ ├── JKVObjectPrinter-Protected.h │ │ │ ├── JKVKeyedEncoderVisitor.h │ │ │ ├── JKVKeyedDecoderVisitor.h │ │ │ ├── JKVClassInspector.h │ │ │ └── JKVProperty.h │ └── LICENSE ├── Manifest.lock └── CocoaAsyncSocket │ └── LICENSE.txt ├── RMQClient ├── RMQMethodMap.h ├── Info.plist ├── RMQBasicProperties.h ├── RMQErrors.m ├── RMQClock.h ├── RMQFrameHandler.h ├── RMQHeartbeat.h ├── RMQTickingClock.h ├── RMQWaiter.h ├── RMQProtocolHeader.h ├── RMQUnallocatedChannel.h ├── RMQTickingClock.m ├── RMQNameGenerator.h ├── RMQSemaphoreWaiterFactory.h ├── RMQProcessInfoNameGenerator.h ├── RMQConnectionDelegateLogger.h ├── RMQWaiterFactory.h ├── RMQTCPSocketConfigurator.h ├── RMQConsumerHandlers.h ├── RMQSemaphoreWaiter.h ├── RMQGCDSerialQueue.h ├── RMQHeartbeatSender.h ├── RMQTransportDelegate.h ├── RMQFramesetValidator.h ├── RMQMethodDecoder.h ├── RMQBasicProperties+MergeDefaults.h ├── RMQTable.h ├── RMQTransactionalConfirmations.h ├── RMQSemaphoreWaiterFactory.m ├── RMQPKCS12CertificateConverter.h ├── RMQProcessInfoNameGenerator.m ├── RMQSender.h ├── RMQMultipleChannelAllocator.h ├── RMQReader.h ├── RMQQueuingConnectionDelegateProxy.h └── RMQFramesetValidationResult.h ├── RMQClient.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── xcuserdata │ └── pivotal.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── docker-compose.yml ├── xcode_arch_workaround.xcconfig ├── RMQClient.xcworkspace └── contents.xcworkspacedata ├── CHANGELOG.md ├── Podfile.lock ├── .swiftlint.yml ├── LICENSE ├── Podfile ├── RMQClientTests ├── Info.plist ├── AtomicInteger.swift ├── RMQClientTests-Bridging-Header.h ├── StubNameGenerator.swift ├── ChannelSpyTest.swift ├── FakeClock.swift ├── StarterSpy.swift ├── FakeWaiter.swift └── FakeWaiterFactory.swift ├── RMQClientIntegrationTests ├── Info.plist └── RMQClientIntegrationTests-Bridging-Header.h ├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── RMQClient.podspec ├── .travis.yml ├── Makefile ├── license-header-ruby.txt ├── license-header.txt └── CODE_OF_CONDUCT.md /TestCertificates: -------------------------------------------------------------------------------- 1 | docker/certificates -------------------------------------------------------------------------------- /.travis/etc/rabbitmq.conf: -------------------------------------------------------------------------------- 1 | docker/rabbitmq.conf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Carthage 2 | *.xcscmblueprint 3 | xcuserdata 4 | notes.txt 5 | .bundle 6 | .build 7 | -------------------------------------------------------------------------------- /Cartfile: -------------------------------------------------------------------------------- 1 | github "robbiehanson/CocoaAsyncSocket" ~> 7.6.5 2 | github "jeffh/JKVValue" ~> 1.3.3 3 | -------------------------------------------------------------------------------- /bin/add-license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-objc-client/HEAD/bin/add-license -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "jeffh/JKVValue" "v1.3.3" 2 | github "robbiehanson/CocoaAsyncSocket" "7.6.5" 3 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'cocoapods', '~> 1.15.2' 4 | gem 'nokogiri', '>= 1.18.9' -------------------------------------------------------------------------------- /codegen/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "nokogiri", ">= 1.18.4" 4 | gem "activesupport" 5 | -------------------------------------------------------------------------------- /codegen/basic_properties_header_template.erb: -------------------------------------------------------------------------------- 1 | @interface <%= class_name %> : <%= superclass %> 2 | @end 3 | 4 | -------------------------------------------------------------------------------- /bin/set_version: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | xcrun agvtool new-marketing-version $1 6 | xcrun agvtool next-version -all 7 | -------------------------------------------------------------------------------- /docker/certificates/client_key.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-objc-client/HEAD/docker/certificates/client_key.p12 -------------------------------------------------------------------------------- /docker/certificates/server_key.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-objc-client/HEAD/docker/certificates/server_key.p12 -------------------------------------------------------------------------------- /bin/bootstrap-if-needed: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if ! cmp -s Cartfile.resolved Carthage/Cartfile.resolved; then 4 | bin/bootstrap 5 | fi 6 | 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue.modulemap: -------------------------------------------------------------------------------- 1 | framework module JKVValue { 2 | umbrella header "JKVValue-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /bin/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export XCODE_XCCONFIG_FILE=$PWD/xcode_arch_workaround.xcconfig 4 | 5 | carthage bootstrap --platform iOS,OSX 6 | cp Cartfile.resolved Carthage 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JKVValue : NSObject 3 | @end 4 | @implementation PodsDummy_JKVValue 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Public/JKVValue.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_RMQClient { 2 | umbrella header "Pods-RMQClient-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_MemoryTest { 2 | umbrella header "Pods-MemoryTest-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.modulemap: -------------------------------------------------------------------------------- 1 | framework module CocoaAsyncSocket { 2 | umbrella header "CocoaAsyncSocket-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_RMQClient : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_RMQClient 5 | @end 6 | -------------------------------------------------------------------------------- /codegen/basic_properties_implementation_template.erb: -------------------------------------------------------------------------------- 1 | @implementation <%= class_name %> 2 | + (NSUInteger)flagBit { return <%= flag_bit %>; } 3 | - (NSUInteger)flagBit { return [self class].flagBit; } 4 | @end 5 | 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_CocoaAsyncSocket : NSObject 3 | @end 4 | @implementation PodsDummy_CocoaAsyncSocket 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_MemoryTest : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_MemoryTest 5 | @end 6 | -------------------------------------------------------------------------------- /RMQClient/RMQMethodMap.h: -------------------------------------------------------------------------------- 1 | // License goes here 2 | 3 | // This file is generated. Do not edit. 4 | #import 5 | 6 | @interface RMQMethodMap : NSObject 7 | + (NSDictionary *)methodMap; 8 | @end 9 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Private/JKVNonZeroSetterVisitor.h: -------------------------------------------------------------------------------- 1 | #import "JKVProperty.h" 2 | 3 | @interface JKVNonZeroSetterVisitor : NSObject 4 | 5 | - (id)initWithObject:(id)object; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Private/JKVObjectPrinter-Protected.h: -------------------------------------------------------------------------------- 1 | #import "JKVObjectPrinter.h" 2 | 3 | @interface JKVObjectPrinter (Protected) 4 | 5 | + (NSString *)descriptionForObject:(id)object withProperties:(NSArray *)properties; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /RMQClient.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Private/JKVKeyedEncoderVisitor.h: -------------------------------------------------------------------------------- 1 | #import "JKVProperty.h" 2 | 3 | @interface JKVKeyedEncoderVisitor : NSObject 4 | - (id)initWithCoder:(NSCoder *)coder forObject:(NSObject *)target; 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Public/JKVMutableValue.m: -------------------------------------------------------------------------------- 1 | #import "JKVMutableValue.h" 2 | 3 | @implementation JKVMutableValue 4 | 5 | #pragma mark - Public / Protected 6 | 7 | - (BOOL)JKV_isMutable 8 | { 9 | return YES; 10 | } 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Private/JKVKeyedDecoderVisitor.h: -------------------------------------------------------------------------------- 1 | #import "JKVProperty.h" 2 | 3 | @interface JKVKeyedDecoderVisitor : NSObject 4 | 5 | - (id)initWithCoder:(NSCoder *)decoder forObject:(NSObject *)target; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_RMQClient_RMQClientTests { 2 | umbrella header "Pods-RMQClient-RMQClientTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rabbitmq:3.12-management 2 | 3 | COPY docker-entrypoint.sh / 4 | COPY certificates/*.pem /etc/rabbitmq/ 5 | COPY rabbitmq.conf /etc/rabbitmq/rabbitmq.conf 6 | 7 | ENTRYPOINT /docker-entrypoint.sh 8 | 9 | EXPOSE 5671 5672 15672 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_RMQClient_RMQClientTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_RMQClient_RMQClientTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Test with TLS-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Test without TLS-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test with TLS-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test without TLS-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaAsyncSocket.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JKVValue.framework -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | rabbitmq: 4 | build: ./docker 5 | container_name: rabbitmq_objc_client 6 | environment: 7 | RABBITMQ_LOGS: '-' 8 | RABBITMQ_SASL_LOGS: '-' 9 | ports: 10 | - 5671-5672:5671-5672 11 | - 15672:15672 12 | -------------------------------------------------------------------------------- /xcode_arch_workaround.xcconfig: -------------------------------------------------------------------------------- 1 | EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64=arm64 arm64e armv7 armv7s armv6 armv8 2 | EXCLUDED_ARCHS=$(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)) 3 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_RMQClient_RMQClientIntegrationTests { 2 | umbrella header "Pods-RMQClient-RMQClientIntegrationTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_RMQClient_RMQClientIntegrationTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_RMQClient_RMQClientIntegrationTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /RMQClient.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RMQClient.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Test with TLS-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks-Test without TLS-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /RMQClient.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test with TLS-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks-Test without TLS-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework 3 | ${BUILT_PRODUCTS_DIR}/JKVValue/JKVValue.framework -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # RabbitMQ Objective-C and Swift Client Changelog 2 | 3 | ## [0.12.0] - 2022-04-24 4 | 5 | ### Fixed 6 | 7 | * Eliminated a memory leak in environments where connections were closed and opened 8 | dynamically during application operations. 9 | 10 | Contributed by @BarryDuggan and @michaelklishin. 11 | 12 | GitHub issue: [#198](https://github.com/rabbitmq/rabbitmq-objc-client/pull/198) 13 | -------------------------------------------------------------------------------- /bin/pod: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'pod' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('cocoapods', 'pod') 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_RMQClientVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_RMQClientVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /bin/bundler: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'bundler' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('bundler', 'bundler') 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_MemoryTestVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_MemoryTestVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /bin/xcodeproj: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'xcodeproj' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('xcodeproj', 'xcodeproj') 17 | -------------------------------------------------------------------------------- /bin/fuzzy_match: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'fuzzy_match' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('fuzzy_match', 'fuzzy_match') 17 | -------------------------------------------------------------------------------- /bin/sandbox-pod: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # 3 | # This file was generated by Bundler. 4 | # 5 | # The application 'sandbox-pod' is installed as part of a gem, and 6 | # this file is here to facilitate running it. 7 | # 8 | 9 | require 'pathname' 10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile", 11 | Pathname.new(__FILE__).realpath) 12 | 13 | require 'rubygems' 14 | require 'bundler/setup' 15 | 16 | load Gem.bin_path('cocoapods', 'sandbox-pod') 17 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - CocoaAsyncSocket (7.6.5) 3 | - JKVValue (1.3.3) 4 | 5 | DEPENDENCIES: 6 | - CocoaAsyncSocket (~> 7.6) 7 | - JKVValue (~> 1.3) 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - CocoaAsyncSocket 12 | - JKVValue 13 | 14 | SPEC CHECKSUMS: 15 | CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 16 | JKVValue: d7941071b1cf9ba35c194fd40bcf4c4d9b5462e9 17 | 18 | PODFILE CHECKSUM: 6ef8faad0febb311890414d7da2c0fc8816f7593 19 | 20 | COCOAPODS: 1.15.2 21 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - CocoaAsyncSocket (7.6.5) 3 | - JKVValue (1.3.3) 4 | 5 | DEPENDENCIES: 6 | - CocoaAsyncSocket (~> 7.6) 7 | - JKVValue (~> 1.3) 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - CocoaAsyncSocket 12 | - JKVValue 13 | 14 | SPEC CHECKSUMS: 15 | CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 16 | JKVValue: d7941071b1cf9ba35c194fd40bcf4c4d9b5462e9 17 | 18 | PODFILE CHECKSUM: 6ef8faad0febb311890414d7da2c0fc8816f7593 19 | 20 | COCOAPODS: 1.15.2 21 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_RMQClient_RMQClientTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_RMQClient_RMQClientTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "GCDAsyncSocket.h" 14 | #import "GCDAsyncUdpSocket.h" 15 | 16 | FOUNDATION_EXPORT double CocoaAsyncSocketVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char CocoaAsyncSocketVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest.test with tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest.test without tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 6 | PODS_ROOT = ${SRCROOT}/Pods 7 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_RMQClient_RMQClientIntegrationTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_RMQClient_RMQClientIntegrationTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | disabled_rules: 2 | - identifier_name 3 | - type_body_length 4 | - file_length 5 | - force_try 6 | - force_cast 7 | - large_tuple 8 | # this is a very reasonable rule but 9 | # it doesn't seem to work well with 10 | # Objective-C methods called from Swift 11 | - control_statement 12 | - todo 13 | included: 14 | - RMQClientTests 15 | - RMQClientIntegrationTests 16 | excluded: 17 | - .travis 18 | - .travis.yml 19 | - Cartfile* 20 | - Carthage 21 | - Pods 22 | - "*.podspec" 23 | - codegen 24 | - TestCertificates -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "JKVFactory.h" 14 | #import "JKVMutableValue.h" 15 | #import "JKVObjectPrinter.h" 16 | #import "JKVValue.h" 17 | #import "JKVValueImpl.h" 18 | 19 | FOUNDATION_EXPORT double JKVValueVersionNumber; 20 | FOUNDATION_EXPORT const unsigned char JKVValueVersionString[]; 21 | 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This package, the RabbitMQ Objective-C client library, is 2 | dual-licensed under the Mozilla Public License 2.0 ("MPL") and the 3 | Apache License version 2 ("ASL"). For the MPL, please see 4 | LICENSE-MPL-RabbitMQ. For the ASL, please see LICENSE-APACHE2. 5 | 6 | The RabbitMQ Objective-C client library includes third-party software under the 7 | ASL. For this license, please see LICENSE-APACHE2. For attribution of copyright 8 | and other details of provenance, please refer to the source code. 9 | 10 | If you have any questions regarding licensing, please contact us at 11 | info@rabbitmq.com. 12 | -------------------------------------------------------------------------------- /docker/certificates/README.md: -------------------------------------------------------------------------------- 1 | # Test Suite Certificates 2 | 3 | The certificates in this directory are used by integration tests (specifically 4 | for [certificate-based authentication](https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl)). 5 | 6 | They are generated using [tls-gen](https://github.com/michaelklishin/tls-gen/)'s basic profile with Common 7 | Name set to`CN=guest, O=client`. The node used for integration tests must have a user with that name, 8 | which is set up using a Make target. 9 | 10 | See [CONTRIBUTING.md](https://github.com/rabbitmq/rabbitmq-objc-client/blob/master/CONTRIBUTING.md) for details. 11 | -------------------------------------------------------------------------------- /codegen/methods_header_template.erb: -------------------------------------------------------------------------------- 1 | <%- if bits.any? -%> 2 | typedef NS_OPTIONS(NSUInteger, <%= class_name %>Options) { 3 | <%= class_name + "NoOptions".ljust(max_bit_length) %> = 0, 4 | <%- bits.each_with_index do |bit, index| -%> 5 | <%= class_name %><%= bit[:name] %> = 1 << <%= index %>, 6 | <%- end -%> 7 | }; 8 | 9 | <%- end -%> 10 | @interface <%= class_name %> : RMQValue <<%= protocols.join(", ") %>> 11 | <%- fields.each do |f| -%> 12 | @property (<%= f[:base_property_options].join(", ") %>, readonly) <%= f[:pointer_type] %><%= f[:name] %>; 13 | <%- end -%> 14 | <%= constructor + ";" if constructor %> 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Public/JKVMutableValue.h: -------------------------------------------------------------------------------- 1 | #import "JKVValueImpl.h" 2 | 3 | /*! JKVMutableValue represents an Immutable Value Object class that should be subclassed to use. 4 | * 5 | * JKVMutableValue subclasses will introspect all its properties for various NSObject features. 6 | * The following interfaces are supported when inheriting from JKVValue: 7 | * 8 | * - NSSecureCoding (thus, NSCoding) 9 | * - NSMutableCopying 10 | * - NSCopying 11 | * 12 | * JKVMutableValue assumes mutability. Using -[copy] should return an immutable variant. 13 | * if available. 14 | * 15 | * If you want a immutable variant, inherit from JKVValue. 16 | */ 17 | @interface JKVMutableValue : JKVValue 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '15.0' 2 | 3 | project 'RMQClient.xcodeproj' 4 | 5 | target 'MemoryTest' do 6 | use_frameworks! 7 | end 8 | 9 | target 'RMQClient' do 10 | use_frameworks! 11 | 12 | pod "CocoaAsyncSocket", "~> 7.6" 13 | pod "JKVValue", "~> 1.3" 14 | 15 | target 'RMQClientIntegrationTests' do 16 | end 17 | 18 | target 'RMQClientTests' do 19 | end 20 | end 21 | 22 | post_install do |installer| 23 | installer.pods_project.targets.each do |target| 24 | target.build_configurations.each do |config| 25 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' 26 | 27 | config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = "NO" 28 | end 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JKVValue 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JKVValue 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JKVValue 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JKVValue 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "Security" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/CocoaAsyncSocket 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "Security" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/CocoaAsyncSocket 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /RMQClientTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 0.11.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 8 23 | 24 | 25 | -------------------------------------------------------------------------------- /RMQClientIntegrationTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 0.12.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 8 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Public/JKVObjectPrinter.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /*! This manages description generation of JKVValue objects. 4 | * 5 | * In addition, this class can swizzle out default descriptions of objective-c container classes: 6 | * NSArray, NSDictionary, NSSet for more readability when debugging. 7 | * 8 | * Other than swizzling container classes, this class isn't used directly. 9 | */ 10 | @interface JKVObjectPrinter : NSObject 11 | 12 | /*! Swizzles out NSArray, NSDictionary, NSSet to emit prettier description strings. 13 | * 14 | * Can be undone with +[unswizzleContainers]. 15 | */ 16 | + (void)swizzleContainers; 17 | 18 | /*! Unswizzles NSArray, NSDictionary, NSSet to emit prettier description strings. 19 | * 20 | * Can be undone with +[unswizzleContainers]. 21 | */ 22 | + (void)unswizzleContainers; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Thank you for using RabbitMQ. 2 | 3 | **STOP NOW AND READ THIS** BEFORE OPENING A NEW ISSUE ON GITHUB 4 | 5 | Unless you are CERTAIN you have found a reproducible problem in this library or 6 | have a **specific, actionable** suggestion for our team, you must first ask 7 | your question or discuss your suspected issue on the mailing list: 8 | 9 | https://groups.google.com/forum/#!forum/rabbitmq-users 10 | 11 | Team RabbitMQ does not use GitHub issues for discussions, investigations, root 12 | cause analysis and so on. 13 | 14 | Please take the time to read the CONTRIBUTING.md document for instructions on 15 | how to effectively ask a question or report a suspected issue: 16 | 17 | https://github.com/rabbitmq/rabbitmq-server/blob/master/CONTRIBUTING.md#github-issues 18 | 19 | Following these rules **will save time** for both you and RabbitMQ's maintainers. 20 | 21 | Thank you. 22 | -------------------------------------------------------------------------------- /RMQClient/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 8 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /RMQClient.xcodeproj/xcuserdata/pivotal.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RMQClient.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | AE607C6D1C3C0FA100BE9AC4 16 | 17 | primary 18 | 19 | 20 | AEA45ED61C440FE400FE1F62 21 | 22 | primary 23 | 24 | 25 | AEE7FE901C3BCA6000DF8C4F 26 | 27 | primary 28 | 29 | 30 | AEE7FE9A1C3BCA6000DF8C4F 31 | 32 | primary 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JKVValue/JKVValue-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.3.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-MemoryTest/Pods-MemoryTest-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CocoaAsyncSocket/CocoaAsyncSocket-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 7.6.5 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /RMQClient.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "RMQClient" 3 | s.version = "0.13.0" 4 | s.summary = "RabbitMQ client" 5 | s.description = <<-DESC 6 | RabbitMQ client for Objective-C and Swift. Developed and supported by the 7 | RabbitMQ team. 8 | DESC 9 | s.homepage = "https://github.com/rabbitmq/rabbitmq-objc-client" 10 | s.license = { type: "Apache 2.0", file: "LICENSE-APACHE2" } 11 | s.author = { "Team RabbitMQ" => "rabbitmq-users@googlegroups.com" } 12 | s.social_media_url = "https://twitter.com/rabbitmq" 13 | s.ios.deployment_target = "15.0" 14 | s.osx.deployment_target = "12.5" 15 | s.source = { git: "https://github.com/rabbitmq/rabbitmq-objc-client.git", tag: "v#{s.version}" } 16 | s.source_files = "RMQClient", "RMQClient/**/*.{h,m}" 17 | s.dependency "JKVValue", "~> 1.3" 18 | s.dependency "CocoaAsyncSocket", "~> 7.6" 19 | 20 | s.pod_target_xcconfig = { 21 | 'PRODUCT_BUNDLE_IDENTIFIER': 'io.pivotal.RMQClient' 22 | } 23 | end 24 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /bin/carthage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -euo pipefail 4 | 5 | xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) 6 | trap 'rm -f "$xcconfig"' INT TERM HUP EXIT 7 | 8 | # For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise 9 | # the build will fail on lipo due to duplicate architectures. 10 | 11 | CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3) 12 | echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1300__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig 13 | 14 | echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1300 = $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1300__BUILD_$(XCODE_PRODUCT_BUILD_VERSION))' >> $xcconfig 15 | echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig 16 | 17 | export XCODE_XCCONFIG_FILE="$xcconfig" 18 | /usr/local/bin/carthage "$@" -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests.test with tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests.test without tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient.test with tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient.test without tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests.test with tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests.test without tls.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket/CocoaAsyncSocket.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JKVValue/JKVValue.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" -framework "CocoaAsyncSocket" -framework "JKVValue" -framework "Security" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /docker/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | server=rabbitmq-server 3 | ctl=rabbitmqctl 4 | plugins=rabbitmq-plugins 5 | delay=5 6 | 7 | $server -detached 8 | 9 | echo "Waiting $delay seconds for RabbitMQ to start." 10 | 11 | sleep $delay 12 | 13 | $ctl add_vhost "vhost/with/a/few/slashes" 14 | $ctl add_user "O=client,CN=guest" bunnies 15 | $ctl set_permissions "O=client,CN=guest" ".*" ".*" ".*" 16 | 17 | $plugins enable rabbitmq_auth_mechanism_ssl 18 | $plugins enable rabbitmq_management 19 | $ctl eval 'supervisor2:terminate_child(rabbit_mgmt_sup_sup, rabbit_mgmt_sup), application:set_env(rabbitmq_management, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_sup_sup:start_child().' 20 | $ctl eval 'supervisor2:terminate_child(rabbit_mgmt_agent_sup_sup, rabbit_mgmt_agent_sup), application:set_env(rabbitmq_management_agent, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_agent_sup_sup:start_child().' 21 | 22 | $ctl shutdown --timeout $delay 23 | 24 | echo 'Starting RabbitMQ in the foreground (Ctrl-C to stop)' 25 | 26 | exec $server 27 | -------------------------------------------------------------------------------- /Pods/JKVValue/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Jeff Hui 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | osx_image: xcode12.2 3 | xcode_project: RMQClient.xcodeproj 4 | xcode_scheme: "RMQClient" 5 | before_install: 6 | - brew update 7 | - brew install rabbitmq 8 | - cp .travis/etc/* /usr/local/etc/rabbitmq/ 9 | - cp TestCertificates/* /usr/local/etc/rabbitmq/ 10 | - /usr/local/sbin/rabbitmq-plugins enable --offline rabbitmq_auth_mechanism_ssl 11 | - brew services start rabbitmq 12 | before_script: 13 | - make bootstrap 14 | - until sudo lsof -i:5672; do echo "Waiting for RabbitMQ to start..."; sleep 1; done 15 | - make before_build 16 | - make set_up_test_vhosts 17 | - make set_up_test_users 18 | env: 19 | - TARGET=tests_ios SCHEME="RMQClient" TRAVIS_XCODE_SDK=iphonesimulator14.2 iOS_VERSION=14.0 20 | - TARGET=tests_macos SCHEME="RMQClient" TRAVIS_XCODE_SDK=macosx11.0 21 | - TARGET=tests_ios SCHEME="RMQClient with TLS tests" TRAVIS_XCODE_SDK=iphonesimulator14.2 iOS_VERSION=14.0 22 | - TARGET=tests_macos SCHEME="RMQClient with TLS tests" TRAVIS_XCODE_SDK=macosx11.0 23 | script: travis_retry make $TARGET SCHEME=$SCHEME iOS_VERSION=$iOS_VERSION 24 | after_failure: 25 | - cat /usr/local/var/log/rabbitmq/rabbit@localhost.log 26 | cache: 27 | directories: 28 | - Carthage 29 | -------------------------------------------------------------------------------- /docker/certificates/client_certificate.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDITCCAgmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAxMSAwHgYDVQQDDBdUTFNH 3 | ZW5TZWxmU2lnbmVkdFJvb3RDQTENMAsGA1UEBwwEJCQkJDAeFw0xODEyMjExMjE5 4 | MTRaFw0yODEyMTgxMjE5MTRaMCExDjAMBgNVBAMMBWd1ZXN0MQ8wDQYDVQQKDAZj 5 | bGllbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyt3p5R9FBXX/o 6 | VjUO61sRGHbW0KH/dNip+bVmmUHln94yC6UL+FA7ZBZPYGBEMH4cLTb70eKPyl4Q 7 | 5R0A+puxFv0Hu3cx9g+MSAfV5FosaasO7ErMJ9FjswrI7OLG2MYsq1TMD+kL4lP5 8 | PZXbU2CTK0wAQC6fYDT4Pv2Y0I50qaBfWVtdX7PGjFl1immOsSqboG4KzJRLCnFA 9 | SC/FqUJQeLwRNw0+bYm4kRnxVoivIlzFAuP38Jvi5Fa+SvRBggdtYjY3Jxy0FziI 10 | LxoueRrW1sQzPmc+NGRDsa3mTStqOS0IGDF8uvl4e7X7+iyRRy1cwcCrkUl23s+4 11 | wzNfcOFjAgMBAAGjVDBSMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMBMGA1UdJQQM 12 | MAoGCCsGAQUFBwMCMCMGA1UdEQQcMBqCBWd1ZXN0ggZ3YXJwMTCCCWxvY2FsaG9z 13 | dDANBgkqhkiG9w0BAQsFAAOCAQEAiof9LF0ge0irnN121I6YgLgm+B+n6dlgcNam 14 | cD32kNwg7f/zOw79Yd2GYzVufWVBk/QDw1EEDf+aVMYRloYvFTBqDjwgBMazVvUk 15 | NVZILpP/eDuLQnqLxKPrnkCUC4pNRXMwVINUxdCazJTiYO/SdAa4GRNcbsOBiDtD 16 | rCaCQtm/hBOZC15Qzjcw9D6wCq0BKyW+jwCkZ8kJ8Di3NEqOga+unWjDR/wpWvzC 17 | d/eJ21zRgBu+x1kR07yqJJyqHTmmmwxbatYsXPFYhUWw8CVkhFUZwEI5RZ37lbLb 18 | fUIKC8PS8DqBHrSBqVydF1HUKEcxzs+C/ilpUCpgNUrC+tFXlg== 19 | -----END CERTIFICATE----- 20 | -------------------------------------------------------------------------------- /docker/certificates/ca_certificate.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDRTCCAi2gAwIBAgIJAJzvtsePUd7YMA0GCSqGSIb3DQEBCwUAMDExIDAeBgNV 3 | BAMMF1RMU0dlblNlbGZTaWduZWR0Um9vdENBMQ0wCwYDVQQHDAQkJCQkMB4XDTE4 4 | MTIyMTEyMTkxNFoXDTI4MTIxODEyMTkxNFowMTEgMB4GA1UEAwwXVExTR2VuU2Vs 5 | ZlNpZ25lZHRSb290Q0ExDTALBgNVBAcMBCQkJCQwggEiMA0GCSqGSIb3DQEBAQUA 6 | A4IBDwAwggEKAoIBAQDL6gxsgeAtTt+4NmIdM1LSIaXbVdWZjJCZX/vjVGb9vyYk 7 | HlHfYg7CRtXRPSrL+2+j7rTY8OuUw3IMs5n4by2o5OGor8GDOF2YSjC/cVKs3dxf 8 | utSJ/QZRKHSxj/qZerFjJUmpI1FqpXznYn3D0dheeilUnzpjeZb+JNv2YaHNERKr 9 | I4/rfdBgHDlFJ+TmhIMYgEONgueOyWpsO/yZTIcxXf+xWu9lQ0yZRn16eiASXylj 10 | 6REpC8frH9ke5OWkZsMmsnRA2KWXQsJSixCikaI27o8s1cBPeA3esUQRL3YsYXlU 11 | HX+swKxSUkhn6VSOHIr8pDa6jJT7dArl3aZ/5UdbAgMBAAGjYDBeMAsGA1UdDwQE 12 | AwIBBjAdBgNVHQ4EFgQU1Pr28OGowVWqfJwcLPpCvMPFo8kwHwYDVR0jBBgwFoAU 13 | 1Pr28OGowVWqfJwcLPpCvMPFo8kwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B 14 | AQsFAAOCAQEAGB+odtFtmHknOBzf9yNB2ythxodFYj7vOgDIkKnxL3jmCQKWOfn+ 15 | LZYi3F//3HH5XNuCVOpfelUISj1OvZ89givvW3hBxrnr2xvc2mXtioIgDjoVo8vn 16 | txFfE+cv6u+ToJD3iY90oJ+bUNn8fWbVkPsww+Cg6s+7D3zdyAgU8T4y3nbvSxmE 17 | 48str5phEzHS1qrQGeZ1nSD5jamHTosD1V0Y6udkZ5JeDYzygTvkQ09S93cSxaII 18 | IkQvf6jzH90rst3fzb8+VMsWtuhVQa/tmwjoVo0pzG52I8IIYsl1Gek+wKr6ldsM 19 | uU7ineP0rAfv3vGl+sakLQQXL7YOu+dvIw== 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /docker/certificates/server_certificate.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYzCCAkugAwIBAgIBATANBgkqhkiG9w0BAQsFADAxMSAwHgYDVQQDDBdUTFNH 3 | ZW5TZWxmU2lnbmVkdFJvb3RDQTENMAsGA1UEBwwEJCQkJDAeFw0xODEyMjExMjE5 4 | MTRaFw0yODEyMTgxMjE5MTRaMCExDjAMBgNVBAMMBWd1ZXN0MQ8wDQYDVQQKDAZz 5 | ZXJ2ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrnsAkIFJuScaf 6 | OYDE7Eb5rewRqdAaQWPB0Plw1WxGgOmMa/WE/UHpkSx+jlIW9BnXBMuAcdqOzbCt 7 | 3VVnZAdR4C0ezRmygWoBLtLbqDvQ7Gig39PrPGPFk9fvU4uvIKnO4A25OyE0M9A0 8 | KP6HVRa8ql2zjVt+WUQGdJ7gsIuZdJg4K5yxaziz6xS4MixnHfuSLpQXwre/Xtn6 9 | y00aQYEl6zdcUu5skFQ/dtyP0flcYyUfbI6SZ1kuxc46t/cx2nOC06S00RMVDZmE 10 | NeEEjltOg8Y2q88vCEIEcGPvHhMXQq/OFvF+YeG0Z8BTG2zF8IVXl593cOunG99r 11 | W5VkibwxAgMBAAGjgZUwgZIwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0l 12 | BAwwCgYIKwYBBQUHAwEwIwYDVR0RBBwwGoIFZ3Vlc3SCBndhcnAxMIIJbG9jYWxo 13 | b3N0MB0GA1UdDgQWBBSF2Yn4rrNeETnX2B7iXKPBO5Ya+TAfBgNVHSMEGDAWgBTU 14 | +vbw4ajBVap8nBws+kK8w8WjyTANBgkqhkiG9w0BAQsFAAOCAQEAouo/FAKh4+Tp 15 | sWCJhsS+S12J6IfNgHUejgIY9EQ5QliN7o0IZL6WQprvKxXp1bW/jKLLDSgD0GoF 16 | MaF7J/cfXQDqtLzh1+JGMvOJjWI3A3LLBRmd5wpa7lTqi3rIaYw+6938Hd3EU0po 17 | LRNxjyMhjQV6GPI9pg9gHBqGg2ghyD9BcASeNU27lVJV0wFy4ELuow60Vpej3oFU 18 | axIEGk9K4Atts/dnHTeplv3K2DrNvtdoxyrWTIA2VbhEPbulXTQJOes7Zog2/034 19 | VW2qYOz82OkOVdcI4mrzbfS9fb+uHe5sPPKHt8OaTE4rj1lnUyM7BlSPc2ViDW3a 20 | 5uY+dr3SFw== 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /docker/rabbitmq.conf: -------------------------------------------------------------------------------- 1 | listeners.tcp.1 = 0.0.0.0:5672 2 | 3 | listeners.ssl.default = 5671 4 | 5 | ssl_options.cacertfile = /etc/rabbitmq/ca_certificate.pem 6 | ssl_options.certfile = /etc/rabbitmq/server_certificate.pem 7 | ssl_options.keyfile = /etc/rabbitmq/server_key.pem 8 | ssl_options.verify = verify_peer 9 | ssl_options.fail_if_no_peer_cert = false 10 | 11 | ssl_options.honor_cipher_order = true 12 | ssl_options.honor_ecc_order = true 13 | ssl_options.client_renegotiation = false 14 | ssl_options.secure_renegotiate = true 15 | 16 | ssl_options.ciphers.1 = ECDHE-ECDSA-AES256-GCM-SHA384 17 | ssl_options.ciphers.2 = ECDHE-RSA-AES256-GCM-SHA384 18 | ssl_options.ciphers.3 = ECDH-ECDSA-AES256-GCM-SHA384 19 | ssl_options.ciphers.4 = ECDH-RSA-AES256-GCM-SHA384 20 | ssl_options.ciphers.5 = DHE-RSA-AES256-GCM-SHA384 21 | ssl_options.ciphers.6 = DHE-DSS-AES256-GCM-SHA384 22 | ssl_options.ciphers.7 = ECDHE-ECDSA-AES128-GCM-SHA256 23 | ssl_options.ciphers.8 = ECDHE-RSA-AES128-GCM-SHA256 24 | ssl_options.ciphers.9 = ECDH-ECDSA-AES128-GCM-SHA256 25 | ssl_options.ciphers.10 = ECDH-RSA-AES128-GCM-SHA256 26 | ssl_options.ciphers.11 = DHE-RSA-AES128-GCM-SHA256 27 | ssl_options.ciphers.12 = DHE-DSS-AES128-GCM-SHA256 28 | 29 | auth_mechanisms.1 = PLAIN 30 | auth_mechanisms.2 = AMQPLAIN 31 | auth_mechanisms.3 = EXTERNAL 32 | 33 | loopback_users = none 34 | -------------------------------------------------------------------------------- /RMQClient/RMQBasicProperties.h: -------------------------------------------------------------------------------- 1 | // License goes here 2 | 3 | // This file is generated. Do not edit. 4 | #import "RMQTable.h" 5 | 6 | @protocol RMQBasicValue 7 | + (NSUInteger)flagBit; 8 | - (NSUInteger)flagBit; 9 | @end 10 | 11 | @interface RMQBasicProperties : NSObject 12 | + (NSArray *)properties; 13 | + (NSArray *)defaultProperties; 14 | @end 15 | 16 | @interface RMQBasicContentType : RMQShortstr 17 | @end 18 | 19 | @interface RMQBasicContentEncoding : RMQShortstr 20 | @end 21 | 22 | @interface RMQBasicHeaders : RMQTable 23 | @end 24 | 25 | @interface RMQBasicDeliveryMode : RMQOctet 26 | @end 27 | 28 | @interface RMQBasicPriority : RMQOctet 29 | @end 30 | 31 | @interface RMQBasicCorrelationId : RMQShortstr 32 | @end 33 | 34 | @interface RMQBasicReplyTo : RMQShortstr 35 | @end 36 | 37 | @interface RMQBasicExpiration : RMQShortstr 38 | @end 39 | 40 | @interface RMQBasicMessageId : RMQShortstr 41 | @end 42 | 43 | @interface RMQBasicTimestamp : RMQTimestamp 44 | @end 45 | 46 | @interface RMQBasicType : RMQShortstr 47 | @end 48 | 49 | @interface RMQBasicUserId : RMQShortstr 50 | @end 51 | 52 | @interface RMQBasicAppId : RMQShortstr 53 | @end 54 | 55 | @interface RMQBasicReserved : RMQShortstr 56 | @end 57 | 58 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Private/JKVClassInspector.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /*! The internal class JKVValue uses to for runtime introspection. All of JKVValue's core features 4 | * are provided on this class. 5 | * 6 | * For performance, this class is aggressively cached all properties. 7 | * 8 | * This class' methods are safe to use on mutiple threads, assuming the arguments it receives 9 | * are on independent threads. 10 | */ 11 | @interface JKVClassInspector : NSObject 12 | 13 | // cached properties 14 | @property (strong, nonatomic, readonly) NSArray *properties; // JKVProperty 15 | @property (strong, nonatomic, readonly) NSArray *propertiesBackedByInstanceVariables; // JKVProperty 16 | @property (strong, nonatomic, readonly) NSArray *weakProperties; // JKVProperty 17 | @property (strong, nonatomic, readonly) NSArray *nonWeakProperties; // JKVProperty 18 | @property (strong, nonatomic, readonly) NSArray *weakPropertyNames; // NSString 19 | @property (strong, nonatomic, readonly) NSArray *nonWeakPropertyNames; // NSString 20 | 21 | + (void)clearInstanceCache; 22 | + (instancetype)inspectorForClass:(Class)aClass; 23 | - (id)initWithClass:(Class)aClass; 24 | 25 | - (BOOL)isObject:(id)object1 equalToObject:(id)object2 withPropertyNames:(NSArray *)propertyNames; 26 | - (NSUInteger)hashObject:(id)object byPropertyNames:(NSArray *)propertyNames; 27 | 28 | - (id)copyToObject:(id)targetObject 29 | fromObject:(id)object 30 | inZone:(NSZone *)zone 31 | propertyNames:(NSArray *)identityPropertyNames 32 | weakPropertyNames:(NSArray *)assignPropertyNames; 33 | 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /codegen/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | activesupport (8.0.2) 5 | base64 6 | benchmark (>= 0.3) 7 | bigdecimal 8 | concurrent-ruby (~> 1.0, >= 1.3.1) 9 | connection_pool (>= 2.2.5) 10 | drb 11 | i18n (>= 1.6, < 2) 12 | logger (>= 1.4.2) 13 | minitest (>= 5.1) 14 | securerandom (>= 0.3) 15 | tzinfo (~> 2.0, >= 2.0.5) 16 | uri (>= 0.13.1) 17 | base64 (0.2.0) 18 | benchmark (0.4.0) 19 | bigdecimal (3.1.9) 20 | concurrent-ruby (1.3.5) 21 | connection_pool (2.5.0) 22 | drb (2.2.1) 23 | i18n (1.14.7) 24 | concurrent-ruby (~> 1.0) 25 | logger (1.6.6) 26 | minitest (5.25.5) 27 | nokogiri (1.18.9-aarch64-linux-gnu) 28 | racc (~> 1.4) 29 | nokogiri (1.18.9-aarch64-linux-musl) 30 | racc (~> 1.4) 31 | nokogiri (1.18.9-arm-linux-gnu) 32 | racc (~> 1.4) 33 | nokogiri (1.18.9-arm-linux-musl) 34 | racc (~> 1.4) 35 | nokogiri (1.18.9-arm64-darwin) 36 | racc (~> 1.4) 37 | nokogiri (1.18.9-x86_64-darwin) 38 | racc (~> 1.4) 39 | nokogiri (1.18.9-x86_64-linux-gnu) 40 | racc (~> 1.4) 41 | nokogiri (1.18.9-x86_64-linux-musl) 42 | racc (~> 1.4) 43 | racc (1.8.1) 44 | securerandom (0.4.1) 45 | tzinfo (2.0.6) 46 | concurrent-ruby (~> 1.0) 47 | uri (1.0.3) 48 | 49 | PLATFORMS 50 | aarch64-linux-gnu 51 | aarch64-linux-musl 52 | arm-linux-gnu 53 | arm-linux-musl 54 | arm64-darwin 55 | x86_64-darwin 56 | x86_64-linux-gnu 57 | x86_64-linux-musl 58 | 59 | DEPENDENCIES 60 | activesupport 61 | nokogiri (>= 1.18.4) 62 | 63 | BUNDLED WITH 64 | 2.6.6 65 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient/Pods-RMQClient-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## CocoaAsyncSocket 5 | 6 | Public Domain License 7 | 8 | The CocoaAsyncSocket project is in the public domain. 9 | 10 | The original TCP version (AsyncSocket) was created by Dustin Voss in January 2003. 11 | Updated and maintained by Deusty LLC and the Apple development community. 12 | 13 | 14 | ## JKVValue 15 | 16 | The MIT License (MIT) 17 | 18 | Copyright (c) 2014 Jeff Hui 19 | 20 | Permission is hereby granted, free of charge, to any person obtaining a copy of 21 | this software and associated documentation files (the "Software"), to deal in 22 | the Software without restriction, including without limitation the rights to 23 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 24 | the Software, and to permit persons to whom the Software is furnished to do so, 25 | subject to the following conditions: 26 | 27 | The above copyright notice and this permission notice shall be included in all 28 | copies or substantial portions of the Software. 29 | 30 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 31 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 32 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 33 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 34 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 35 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 36 | 37 | Generated by CocoaPods - https://cocoapods.org 38 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientTests/Pods-RMQClient-RMQClientTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## CocoaAsyncSocket 5 | 6 | Public Domain License 7 | 8 | The CocoaAsyncSocket project is in the public domain. 9 | 10 | The original TCP version (AsyncSocket) was created by Dustin Voss in January 2003. 11 | Updated and maintained by Deusty LLC and the Apple development community. 12 | 13 | 14 | ## JKVValue 15 | 16 | The MIT License (MIT) 17 | 18 | Copyright (c) 2014 Jeff Hui 19 | 20 | Permission is hereby granted, free of charge, to any person obtaining a copy of 21 | this software and associated documentation files (the "Software"), to deal in 22 | the Software without restriction, including without limitation the rights to 23 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 24 | the Software, and to permit persons to whom the Software is furnished to do so, 25 | subject to the following conditions: 26 | 27 | The above copyright notice and this permission notice shall be included in all 28 | copies or substantial portions of the Software. 29 | 30 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 31 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 32 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 33 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 34 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 35 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 36 | 37 | Generated by CocoaPods - https://cocoapods.org 38 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-RMQClient-RMQClientIntegrationTests/Pods-RMQClient-RMQClientIntegrationTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## CocoaAsyncSocket 5 | 6 | Public Domain License 7 | 8 | The CocoaAsyncSocket project is in the public domain. 9 | 10 | The original TCP version (AsyncSocket) was created by Dustin Voss in January 2003. 11 | Updated and maintained by Deusty LLC and the Apple development community. 12 | 13 | 14 | ## JKVValue 15 | 16 | The MIT License (MIT) 17 | 18 | Copyright (c) 2014 Jeff Hui 19 | 20 | Permission is hereby granted, free of charge, to any person obtaining a copy of 21 | this software and associated documentation files (the "Software"), to deal in 22 | the Software without restriction, including without limitation the rights to 23 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 24 | the Software, and to permit persons to whom the Software is furnished to do so, 25 | subject to the following conditions: 26 | 27 | The above copyright notice and this permission notice shall be included in all 28 | copies or substantial portions of the Software. 29 | 30 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 31 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 32 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 33 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 34 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 35 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 36 | 37 | Generated by CocoaPods - https://cocoapods.org 38 | -------------------------------------------------------------------------------- /docker/certificates/client_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEAsrd6eUfRQV1/6FY1DutbERh21tCh/3TYqfm1ZplB5Z/eMgul 3 | C/hQO2QWT2BgRDB+HC02+9Hij8peEOUdAPqbsRb9B7t3MfYPjEgH1eRaLGmrDuxK 4 | zCfRY7MKyOzixtjGLKtUzA/pC+JT+T2V21NgkytMAEAun2A0+D79mNCOdKmgX1lb 5 | XV+zxoxZdYppjrEqm6BuCsyUSwpxQEgvxalCUHi8ETcNPm2JuJEZ8VaIryJcxQLj 6 | 9/Cb4uRWvkr0QYIHbWI2NycctBc4iC8aLnka1tbEMz5nPjRkQ7Gt5k0rajktCBgx 7 | fLr5eHu1+/oskUctXMHAq5FJdt7PuMMzX3DhYwIDAQABAoIBAFR/X468H/nxxSoK 8 | qGd3a8U3dei3GAD6M/6Zq+TojTmOTrYGv3BbZUPPXKUHAjz7WITl89s4LxChM7x1 9 | NzNhSf9+yP/A6OhcWJmQ7PN6VhAtnc0ed3bzVJL48h5xsf8mOvyfvSYGV79gsSdk 10 | sNfUIhMzI2ny7pg4GpNM5QY9hT0us/gGt6MzOO85ZJi0bp0ECKxOmKtjqG7jCxCO 11 | 4yIYCqJJpPSnlTU6pdn80phhf0+xAZL3hYeH/mY1c0Nz5mSa+VMLi1WB5CcLyVIk 12 | x6stelO20z12F1vuJkYpw20LRM/gtxHHA10Qzg4eKI0YH1K+/uU9fd/WUZWI/0LI 13 | dWAiWyECgYEA2D0MRKmR3GCuZ0KCBGTi6TOnrOM+XiRpSoU9eqU25/a9aK/Kwd2H 14 | ADpuAVRndBJP36Z1a7vcgOHul/1kX4Q3WPktcZfBu3m2ZwluCJ0kN2I4bCIYwgVO 15 | p4Aoxld9vK9tSmL46HXZK9Sit4hpbWWx+7jo2X7GyrSJPVyw6J20JwsCgYEA05Qt 16 | EZjlhMJ+2rO1xC2zLQectcUWtuG2w7l9L34LCprdjWR1e5I1R5MqgqsC4NnTH2oO 17 | bqRt0AjXys7rbHed8cVYp3dh3PLuQdsrdzAp1QVF5uDFgR43Q1iLUgM/DPM6eEuM 18 | ETFpkYDIZhO5GAsguNnCs9/wLHkMHiarZfdbxgkCgYEAvphIiPjBhPJ+pqtbeE4I 19 | Jy6Ne3isz0Pevn1kbAbVt22nE2/nEiuVQ6E8ttVTfl5poqLQ2o2yVLNPnw4Me5hJ 20 | RJYU9QujCgDEwlrwbo07j8l2G/GNyu3snvz6c6BIRpiFh0xnQlYlflmktop5CqDZ 21 | WRtpudLhm2e3k6twjwf583MCgYEAk4IcBce+RNfAz0M5d4ORBtTmyceVtX0aCcz5 22 | XTIYCpW73wbp7XQa10LgAWeuwwq6aY1scHEM6lwv7oJimiWvJU88Js1RmlR4Dcv6 23 | uscGczCQ8o1ExWdGihpiT5RZ0fKFkjbBeX8kpb/Od3RKuFuRva58UyHOdYMTErZN 24 | CvLwtdkCgYA0ezCiEkVnfwwh1KUECODlcr/ahT5KE0GFGDy/PyP3eG+DFhqDaJ14 25 | MEizBFK7vftC7uWFvAm6iz/mpZrsdQGbHgLkrl76wNcYkWwu7mmcuhHxwBV3nBrb 26 | 8hZYyBkqg2oMZpeZP+EZDsIQS9ZJGmRaAUa2asYMxWmQPKDPo7jh6A== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /docker/certificates/server_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEAq57AJCBSbknGnzmAxOxG+a3sEanQGkFjwdD5cNVsRoDpjGv1 3 | hP1B6ZEsfo5SFvQZ1wTLgHHajs2wrd1VZ2QHUeAtHs0ZsoFqAS7S26g70OxooN/T 4 | 6zxjxZPX71OLryCpzuANuTshNDPQNCj+h1UWvKpds41bfllEBnSe4LCLmXSYOCuc 5 | sWs4s+sUuDIsZx37ki6UF8K3v17Z+stNGkGBJes3XFLubJBUP3bcj9H5XGMlH2yO 6 | kmdZLsXOOrf3MdpzgtOktNETFQ2ZhDXhBI5bToPGNqvPLwhCBHBj7x4TF0Kvzhbx 7 | fmHhtGfAUxtsxfCFV5efd3Drpxvfa1uVZIm8MQIDAQABAoIBAEQDIbovZPt4GVK4 8 | gyOHT4lbN5a4aVQ+Xb5Nhs0Eh2hZZjTUA/S0OQ7LDYsJ89ZM3oCr0coRVMALG92L 9 | PXE/3va/lKIEPg7T4qKdX8rVHP9q8PvwOBedUxzVvlmGDnFUzHbDrCygFkSN1BEX 10 | veb7/Yq/KWsitgOYdLDqPpxk2q3xNGHlrlzaqZBN4inMiPXhkCfh6qRGPARWn5aU 11 | w8gciV3UhtovVpuPRBgzm/9h38JD2bW7gSg/sFIZUom/05l0PRWkpDqIiy8Low79 12 | SxGNtyrcUXlxq7w9Lh25jqpcYJjVDKZEvPQhlZm53fZ83bb3udESG8bpNFf6oX3g 13 | pBhw2AECgYEA4TTArIGhlP9Hqa4KCfuC0y1PUSK6agbZt3Mmfy/X2QLjW4uv7tjf 14 | 9nwcn2G2sCj1Pr2K8r1hnugP/HESsFExc1/URtlTBVNW/T/Q3FVbK5UvmkgKvTG/ 15 | MSbWtdkL4KThfYRrHmZmKnbUlPkCPIQ8kHS2ZTMlP7Ce6Pgjzm4TpGECgYEAwxY+ 16 | V/khshtP2QtaOBTXdg0WRuDWTqREl+6LgiDRpp2DD8DOC36n5JHLqzELkCD7NPHl 17 | e8fEO9DizKva2E+6Usv3B3D+BGCJhkfIKDgziL6d+c2O7BTGYZ+BgeOnPd5kxQrF 18 | dbjIAoN7/UIZTgaWawB9ghfF0vvmVjajCfBNKdECgYEApxSqNdHe/Vn/4uVaUVmm 19 | D+K3y+xF/U+jyzTFROtL6pb38v1Jw5xnXMlrutuV3FAm0ytwoPLcMDbfVVzWjrVO 20 | SNi59u5ZZ8QS78SewjkZcNY4APCd9wunW2IDPdsPstTg7myFxIIYHj0XLocnn5pE 21 | DLBqed5eLkhtPU6L0iVcsUECgYBYdDZyRvh7PBz5KUeP1AtZcFegbYNeBuc/CB7j 22 | MqQ8aoCpXN9PoO7ZGS4CgetfP0UHXYKSnCIiiPS8nlNM7uFpdyebjSTvsSHJ67Qa 23 | YFklcGBKimR6MHU+gEcFMMZ8q+B+4wJi/RRa52kJjLXShfQfsgo2OTcuEZ7/iihk 24 | cjtacQKBgQC5xJ3ftSm5cSoO1SLgXZ+ddX/GJ7kZ816Q1Wt6X++SJWRyTzBfPkvz 25 | BFBQT8M+s02C2/qvZM+XpKyzYYlcGEGZvkjuRJosPpMDo1Ae8GEo0h7Fo/l4Axec 26 | nEwekWnWmivEmVLUM81fycV3You7pFbYCOWWuryQr6w8rVEnc8ar4A== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /docker/certificates/ca_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDL6gxsgeAtTt+4 3 | NmIdM1LSIaXbVdWZjJCZX/vjVGb9vyYkHlHfYg7CRtXRPSrL+2+j7rTY8OuUw3IM 4 | s5n4by2o5OGor8GDOF2YSjC/cVKs3dxfutSJ/QZRKHSxj/qZerFjJUmpI1FqpXzn 5 | Yn3D0dheeilUnzpjeZb+JNv2YaHNERKrI4/rfdBgHDlFJ+TmhIMYgEONgueOyWps 6 | O/yZTIcxXf+xWu9lQ0yZRn16eiASXylj6REpC8frH9ke5OWkZsMmsnRA2KWXQsJS 7 | ixCikaI27o8s1cBPeA3esUQRL3YsYXlUHX+swKxSUkhn6VSOHIr8pDa6jJT7dArl 8 | 3aZ/5UdbAgMBAAECggEAY6GeomGuu9R+4M3JkITkIYGJPSqqK9UPTbElLISvsal0 9 | pE8gJ6oMlgXwMMTXJUVb3dgjCqBkKpJ4JhaW01jXEV+LllURkuC2clNFkDR5dbcN 10 | FsT9VdKIBJ1kruEvS1A0XcH5RKfZ/uaOqato0YW1VywPB6ao67Ob/97YjoBTgxLG 11 | LGZlw3uRWo0BuVtg/vrLAaHq5rt/0MhCIk79kQsyRKgXBXCf3Dm/bA1TvGOWS92D 12 | AykBQpN7WkARj5YzUFg9Q1TwcSe3dXjcwIeX9f2sgxmln/T5WNk3pZCsri7m+urK 13 | 10Opi4IYTF6A2AYokUYUUYlD0S9duzR1tiIatafsgQKBgQDkqCIK44Uhx5Pwdg0u 14 | D/VcTHCb1S3Y6FJY3llxJ46HY/ZlBd3n6E0z+OsQEMnTbpNaHRt2ZvgiQPeQT7Kz 15 | IKn3iR6w4MD+VNcacBZ8IZD7sBIrSHbcBWdAs898WTSHOZg138yoJh0xK22hCR5z 16 | pH4FUib8HSQHOurriT0uE3YqmwKBgQDkTHkgutv/hpjlMw/awXRowigAvpKtKPRz 17 | cgnIsRxJb2pfePTWEuHO7q8JyNTm4QWAM/3JGVuHTYC3RINUMS/uUv4WVALUghy2 18 | vFd1k1Zh2H56YGFoXTNXwh/HCk42o4csPLVQQNrzQN6l5SDZczQpxwB1w7OqQ8q+ 19 | fh5LCAHCQQKBgCc5/NUXYSCBZ4zKA8rSLAqQhoUFVl8uw+nBA2EZIydw67U7A22k 20 | eZIf8tuHtcgS4S6Fbc+rLIhb0tyr/4Ehamcv29cGR7WaAmjjr8fNzlyPQR6xyMpI 21 | FwWPk1nGx+8m30jmwupZ14o25BDLSrEWGBR7mnqH2UVwQxrzKU69QflfAoGBAL8b 22 | 2SXx5ingNWtgNDxuRxFOvofpAAXeS8u8Qb5zrHc4wjYLngD6K3a7TWGGcdqXsbAh 23 | VagbBwibc013F+zJhBMf/D0atIfKJ1k9DoWJAf3EahPtTH09z7X99fX7hX+tooEA 24 | jNMSh3ar7fW3eakuDBOQ16y9V1AHkdem4Zrzp+1BAoGAZGG6KvYD4fNdZ+zq6zdh 25 | a7BSyagrooKvBu8a1zoiBu0NcANyKt6ict/hc6gRMjyjreF5bMsY+xDoOkSrNLgp 26 | i1VjebPRIYzv8qBvF4j3aUqB28iS26Q8gL/ZtW3Rdc878SIwRBjVM+3BsG+OsG3y 27 | wuJnnxgRadn8zYle9b63rps= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /Pods/JKVValue/JKVValue/Private/JKVProperty.h: -------------------------------------------------------------------------------- 1 | #import 2 | #if TARGET_OS_IPHONE 3 | #import 4 | #else 5 | #import 6 | #endif 7 | 8 | @class JKVProperty; 9 | 10 | @protocol JKVPropertyEncodingTypeVisitor 11 | @required 12 | - (void)propertyWasInt64:(JKVProperty *)property; 13 | - (void)propertyWasInt32:(JKVProperty *)property; 14 | - (void)propertyWasInt16:(JKVProperty *)property; 15 | - (void)propertyWasFloat:(JKVProperty *)property; 16 | - (void)propertyWasDouble:(JKVProperty *)property; 17 | - (void)propertyWasBool:(JKVProperty *)property; 18 | - (void)propertyWasObjCObject:(JKVProperty *)property; 19 | - (void)propertyWasUnknownType:(JKVProperty *)property; 20 | 21 | @optional 22 | // CoreGraphics 23 | - (void)propertyWasCGPoint:(JKVProperty *)property; 24 | - (void)propertyWasCGSize:(JKVProperty *)property; 25 | - (void)propertyWasCGRect:(JKVProperty *)property; 26 | // UIKit - iOS Only 27 | - (void)propertyWasUIEdgeInsets:(JKVProperty *)property; 28 | - (void)propertyWasUIOffset:(JKVProperty *)property; 29 | // AppKit - OSX Only 30 | - (void)propertyWasNSPoint:(JKVProperty *)property; 31 | - (void)propertyWasNSSize:(JKVProperty *)property; 32 | - (void)propertyWasNSRect:(JKVProperty *)property; 33 | @end 34 | 35 | @interface JKVProperty : NSObject 36 | 37 | @property (strong, nonatomic) NSString *name; 38 | @property (strong, nonatomic) NSDictionary *attributes; 39 | 40 | - (id)initWithName:(NSString *)name attributes:(NSDictionary *)attributes; 41 | 42 | - (NSString *)encodingType; 43 | - (NSString *)ivarName; 44 | - (Class)classType; 45 | - (BOOL)isEncodingType:(const char *)encoding; 46 | - (BOOL)isObjCObjectType; 47 | - (BOOL)isWeak; 48 | - (BOOL)isNonAtomic; 49 | - (BOOL)isReadOnly; 50 | - (void)visitEncodingType:(id)visitor; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Proposed Changes 2 | 3 | Please describe the big picture of your changes here to communicate to the 4 | RabbitMQ team why we should accept this pull request. If it fixes a bug or 5 | resolves a feature request, be sure to link to that issue. 6 | 7 | A pull request that doesn't explain **why** the change was made has a much 8 | lower chance of being accepted. 9 | 10 | If English isn't your first language, don't worry about it and try to 11 | communicate the problem you are trying to solve to the best of your abilities. 12 | As long as we can understand the intent, it's all good. 13 | 14 | ## Types of Changes 15 | 16 | What types of changes does your code introduce to this project? 17 | _Put an `x` in the boxes that apply_ 18 | 19 | - [ ] Bug fix (non-breaking change which fixes issue #NNNN) 20 | - [ ] New feature (non-breaking change which adds functionality) 21 | - [ ] Breaking change (fix or feature that would cause an observable behavior change in existing systems) 22 | - [ ] Documentation improvements (corrections, new content, etc) 23 | - [ ] Cosmetic change (whitespace, formatting, etc) 24 | 25 | ## Checklist 26 | 27 | _Put an `x` in the boxes that apply. You can also fill these out after creating 28 | the PR. If you're unsure about any of them, don't hesitate to ask on the 29 | mailing list. We're here to help! This is simply a reminder of what we are 30 | going to look for before merging your code._ 31 | 32 | - [ ] I have read the `CONTRIBUTING.md` document 33 | - [ ] I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq) 34 | - [ ] All tests pass locally with my changes 35 | - [ ] I have added tests that prove my fix is effective or that my feature works 36 | - [ ] I have added necessary documentation (if appropriate) 37 | - [ ] Any dependent changes have been merged and published in related repositories 38 | 39 | ## Further Comments 40 | 41 | If this is a relatively large or complex change, kick off the discussion by 42 | explaining why you chose the solution you did and what alternatives you 43 | considered, etc. 44 | -------------------------------------------------------------------------------- /Pods/CocoaAsyncSocket/LICENSE.txt: -------------------------------------------------------------------------------- 1 | This library is in the public domain. 2 | However, not all organizations are allowed to use such a license. 3 | For example, Germany doesn't recognize the Public Domain and one is not allowed to use libraries under such license (or similar). 4 | 5 | Thus, the library is now dual licensed, 6 | and one is allowed to choose which license they would like to use. 7 | 8 | ################################################## 9 | License Option #1 : 10 | ################################################## 11 | 12 | Public Domain 13 | 14 | ################################################## 15 | License Option #2 : 16 | ################################################## 17 | 18 | Software License Agreement (BSD License) 19 | 20 | Copyright (c) 2017, Deusty, LLC 21 | All rights reserved. 22 | 23 | Redistribution and use of this software in source and binary forms, 24 | with or without modification, are permitted provided that the following conditions are met: 25 | 26 | * Redistributions of source code must retain the above 27 | copyright notice, this list of conditions and the 28 | following disclaimer. 29 | 30 | * Neither the name of Deusty LLC nor the names of its 31 | contributors may be used to endorse or promote products 32 | derived from this software without specific prior 33 | written permission of Deusty LLC. 34 | 35 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | iOS_VERSION := 16.2 2 | 3 | SCHEME := "RMQClient" 4 | 5 | RABBITMQCTL := /usr/local/sbin/rabbitmqctl 6 | RABBITMQ_PLUGINS := /usr/local/sbin/rabbitmq-plugins 7 | 8 | tests: tests_iOS tests_macos lint 9 | 10 | tests_ios: tests_iOS 11 | 12 | tests_macos: tests_MacOS 13 | 14 | tests_iOS: test_dependencies 15 | set -o pipefail && \ 16 | xcodebuild test \ 17 | -project RMQClient.xcodeproj \ 18 | -scheme "${SCHEME}" \ 19 | -destination 'platform=iOS Simulator,name=iPhone 14,OS=$(iOS_VERSION)' | \ 20 | xcpretty 21 | 22 | tests_MacOS: test_dependencies 23 | set -o pipefail && \ 24 | xcodebuild test \ 25 | -project RMQClient.xcodeproj \ 26 | -scheme "${SCHEME}" \ 27 | -destination 'platform=OS X,arch=x86_64' | \ 28 | xcpretty 29 | 30 | tests_with_tls: 31 | ${MAKE} tests_ios SCHEME="RMQClient with TLS tests" 32 | ${MAKE} tests_macos SCHEME="RMQClient with TLS tests" 33 | ${MAKE} lint 34 | 35 | test_dependencies: bootstrap 36 | gem list -i xcpretty || gem install xcpretty 37 | 38 | bootstrap: 39 | bin/bootstrap-if-needed 40 | 41 | set_up_test_vhosts: 42 | $(RABBITMQCTL) add_vhost "vhost/with/a/few/slashes" 43 | 44 | set_up_test_users: 45 | $(RABBITMQCTL) add_user "O=client,CN=guest" bunnies 46 | $(RABBITMQCTL) set_permissions "O=client,CN=guest" ".*" ".*" ".*" 47 | 48 | 49 | before_build: 50 | $(RABBITMQ_PLUGINS) enable rabbitmq_management 51 | $(RABBITMQCTL) eval 'supervisor2:terminate_child(rabbit_mgmt_sup_sup, rabbit_mgmt_sup), application:set_env(rabbitmq_management, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_sup_sup:start_child().' 52 | $(RABBITMQCTL) eval 'supervisor2:terminate_child(rabbit_mgmt_agent_sup_sup, rabbit_mgmt_agent_sup), application:set_env(rabbitmq_management_agent, sample_retention_policies, [{global, [{605, 1}]}, {basic, [{605, 1}]}, {detailed, [{10, 1}]}]), rabbit_mgmt_agent_sup_sup:start_child().' 53 | 54 | lint: 55 | swiftlint 56 | 57 | licenses: 58 | bin/add-license rb '#' license-header-ruby.txt codegen/ && \ 59 | bin/add-license m,h,swift '//' license-header.txt RMQClient/ RMQClientTests/ RMQClientIntegrationTests/ 60 | -------------------------------------------------------------------------------- /codegen/methods_implementation_template.erb: -------------------------------------------------------------------------------- 1 | @interface <%= class_name %> () 2 | <%- fields.each do |f| -%> 3 | @property (<%= f[:base_property_options].join(", ") %>, readwrite) <%= f[:pointer_type] %><%= f[:name] %>; 4 | <%- end -%> 5 | @property (nonatomic, readwrite) NSArray *payloadArguments; 6 | @property (nonatomic, readwrite) BOOL hasContent; 7 | @end 8 | 9 | @implementation <%= class_name %> 10 | 11 | + (NSArray *)propertyClasses { 12 | return @[<%= fields.map {|f| f[:decode_object]}.join(",\n#{' ' * ' return @['.size}") -%>]; 13 | } 14 | - (NSNumber *)classID { return @<%= class_id %>; } 15 | - (NSNumber *)methodID { return @<%= method_id %>; } 16 | - (Class)syncResponse { return <%= response_name ? "[#{response_name} class]" : "nil" %>; } 17 | - (NSNumber *)frameTypeID { return @1; } 18 | - (BOOL)hasContent { return <%= has_content_value %>; } 19 | 20 | <%- if constructor -%> 21 | <%= constructor %> { 22 | self = [super init]; 23 | if (self) { 24 | <%- fields.each do |f| -%> 25 | self.<%= f[:name] %> = <%= f[:name] %>; 26 | <%- end -%> 27 | self.payloadArguments = @[<%= fields.map {|f| f[:payload_argument]}.join(",\n ") -%>]; 28 | } 29 | return self; 30 | } 31 | <%- end -%> 32 | 33 | - (instancetype)initWithDecodedFrame:(NSArray *)frame { 34 | self = [super init]; 35 | if (self) { 36 | <%- fields.each_with_index do |f, idx| -%> 37 | self.<%= f[:name] %> = ((<%= f[:decode_type] %>)frame[<%= idx %>])<%= f[:decode_property_call] %>; 38 | <%- end -%> 39 | self.payloadArguments = @[<%= fields.map {|f| f[:payload_argument]}.join(",\n ") -%>]; 40 | } 41 | return self; 42 | } 43 | 44 | - (NSData *)amqEncoded { 45 | NSMutableData *encoded = [NSMutableData new]; 46 | [encoded appendData:[[RMQShort alloc] init:self.classID.integerValue].amqEncoded]; 47 | [encoded appendData:[[RMQShort alloc] init:self.methodID.integerValue].amqEncoded]; 48 | for (idarg in self.payloadArguments) { 49 | [encoded appendData:arg.amqEncoded]; 50 | } 51 | return encoded; 52 | } 53 | 54 | @end 55 | 56 | -------------------------------------------------------------------------------- /license-header-ruby.txt: -------------------------------------------------------------------------------- 1 | # This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | # version 2.0 and the Apache License ("ASL"), version 2.0. 3 | # 4 | # The ASL v2.0: 5 | # 6 | # --------------------------------------------------------------------------- 7 | # Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | # 9 | # Licensed under the Apache License, Version 2.0 (the "License"); 10 | # you may not use this file except in compliance with the License. 11 | # You may obtain a copy of the License at 12 | # 13 | # https://www.apache.org/licenses/LICENSE-2.0 14 | # 15 | # Unless required by applicable law or agreed to in writing, software 16 | # distributed under the License is distributed on an "AS IS" BASIS, 17 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | # See the License for the specific language governing permissions and 19 | # limitations under the License. 20 | # --------------------------------------------------------------------------- 21 | # 22 | # The MPL v2.0: 23 | # 24 | # --------------------------------------------------------------------------- 25 | # This Source Code Form is subject to the terms of the Mozilla Public 26 | # License, v. 2.0. If a copy of the MPL was not distributed with this 27 | # file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | # 29 | # Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | # 31 | # Alternatively, the contents of this file may be used under the terms 32 | # of the Apache Standard license (the "ASL License"), in which case the 33 | # provisions of the ASL License are applicable instead of those 34 | # above. If you wish to allow use of your version of this file only 35 | # under the terms of the ASL License and not to allow others to use 36 | # your version of this file under the MPL, indicate your decision by 37 | # deleting the provisions above and replace them with the notice and 38 | # other provisions required by the ASL License. If you do not delete 39 | # the provisions above, a recipient may use your version of this file 40 | # under either the MPL or the ASL License. 41 | # --------------------------------------------------------------------------- 42 | -------------------------------------------------------------------------------- /codegen/Rakefile: -------------------------------------------------------------------------------- 1 | require 'pathname' 2 | require 'nokogiri' 3 | require_relative 'generate_methods' 4 | require_relative 'generate_method_map' 5 | require_relative 'generate_basic_properties' 6 | 7 | code_dir = Pathname(File.absolute_path('../RMQClient', __dir__)) 8 | tests_dir = Pathname(File.absolute_path('../RMQClientTests', __dir__)) 9 | integration_tests_dir = Pathname(File.absolute_path('../RMQClientIntegrationTests', __dir__)) 10 | this_dir = Pathname(__dir__) 11 | xml = Nokogiri::XML(File.open(this_dir.join("amqp0-9-1.extended.xml"))) 12 | 13 | desc "Generate AMQP 0-9-1 protocol parser" 14 | task :generate_methods do 15 | generator = GenerateMethods.new(xml) 16 | code_dir.join('RMQMethods.h').write(generator.generate_header) 17 | code_dir.join('RMQMethods.m').write(generator.generate_implementation) 18 | end 19 | 20 | desc "Generate a mapping between [classID, methodID] to method classes" 21 | task :generate_method_map do 22 | generator = GenerateMethodMap.new(xml) 23 | code_dir.join('RMQMethodMap.h').write(generator.generate_header) 24 | code_dir.join('RMQMethodMap.m').write(generator.generate_implementation) 25 | end 26 | 27 | desc "Generate basic properties parser" 28 | task :generate_basic_properties do 29 | generator = GenerateBasicProperties.new(xml) 30 | code_dir.join('RMQBasicProperties.h').write(generator.generate_header) 31 | code_dir.join('RMQBasicProperties.m').write(generator.generate_implementation) 32 | end 33 | 34 | desc "Generate everything" 35 | multitask generate: [:generate_methods, :generate_method_map, :generate_basic_properties] 36 | 37 | desc "License and generate code" 38 | task license_code: :generate do 39 | command = [this_dir.join("../bin/add-license"), 40 | "swift,h,m", 41 | "'//'", 42 | this_dir.join("../license-header.txt"), 43 | code_dir, 44 | tests_dir, 45 | integration_tests_dir].join(" ") 46 | system(command) 47 | end 48 | 49 | desc "License and generate codegen" 50 | task license_codegen: :generate do 51 | command = [this_dir.join("../bin/add-license"), 52 | "rb", 53 | "'#'", 54 | this_dir.join("../license-header-ruby.txt"), 55 | this_dir].join(" ") 56 | system(command) 57 | end 58 | 59 | task default: [:license_code, :license_codegen] 60 | -------------------------------------------------------------------------------- /license-header.txt: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 1.1 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | -------------------------------------------------------------------------------- /RMQClientTests/AtomicInteger.swift: -------------------------------------------------------------------------------- 1 | // This is free and unencumbered software released into the public domain. 2 | // 3 | // Anyone is free to copy, modify, publish, use, compile, sell, or 4 | // distribute this software, either in source code form or as a compiled 5 | // binary, for any purpose, commercial or non-commercial, and by any 6 | // means. 7 | // 8 | // In jurisdictions that recognize copyright laws, the author or authors 9 | // of this software dedicate any and all copyright interest in the 10 | // software to the public domain. We make this dedication for the benefit 11 | // of the public at large and to the detriment of our heirs and 12 | // successors. We intend this dedication to be an overt act of 13 | // relinquishment in perpetuity of all present and future rights to this 14 | // software under copyright law. 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 | // IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 | // OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21 | // OTHER DEALINGS IN THE SOFTWARE. 22 | // 23 | // For more information, please refer to 24 | 25 | import Foundation 26 | 27 | // 28 | // AtomicInteger by Aleksej Nesterov. 29 | // 30 | 31 | public final class AtomicInteger { 32 | 33 | private let lock = DispatchSemaphore(value: 1) 34 | private var _value: Int 35 | 36 | public init(value initialValue: Int = 0) { 37 | _value = initialValue 38 | } 39 | 40 | public var value: Int { 41 | get { 42 | lock.wait() 43 | defer { lock.signal() } 44 | return _value 45 | } 46 | set { 47 | lock.wait() 48 | defer { lock.signal() } 49 | _value = newValue 50 | } 51 | } 52 | 53 | public func decrementAndGet() -> Int { 54 | lock.wait() 55 | defer { lock.signal() } 56 | _value -= 1 57 | return _value 58 | } 59 | 60 | public func incrementAndGet() -> Int { 61 | lock.wait() 62 | defer { lock.signal() } 63 | _value += 1 64 | return _value 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /RMQClientTests/RMQClientTests-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQClient.h" 44 | -------------------------------------------------------------------------------- /RMQClientIntegrationTests/RMQClientIntegrationTests-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQClient.h" 44 | -------------------------------------------------------------------------------- /RMQClient/RMQErrors.m: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQErrors.h" 44 | 45 | NSString * const RMQErrorDomain = @"com.rabbitmq.rabbitmq-objc-client"; 46 | -------------------------------------------------------------------------------- /RMQClient/RMQClock.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | 45 | @protocol RMQClock 46 | 47 | - (NSDate *)read; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /RMQClient/RMQFrameHandler.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQFrameset.h" 44 | 45 | @protocol RMQFrameHandler 46 | - (void)handleFrameset:(RMQFrameset *)frameset; 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQHeartbeat.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQValues.h" 45 | 46 | @interface RMQHeartbeat : RMQValue 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQTickingClock.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQClock.h" 45 | 46 | @interface RMQTickingClock : NSObject 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQWaiter.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | 45 | @protocol RMQWaiter 46 | 47 | - (void)done; 48 | - (BOOL)timesOut; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /RMQClient/RMQProtocolHeader.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQValues.h" 45 | 46 | @interface RMQProtocolHeader : RMQValue 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQUnallocatedChannel.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQChannel.h" 45 | 46 | @interface RMQUnallocatedChannel : RMQValue 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQTickingClock.m: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQTickingClock.h" 44 | 45 | @implementation RMQTickingClock 46 | 47 | - (NSDate *)read { 48 | return [NSDate date]; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /RMQClient/RMQNameGenerator.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | 45 | @protocol RMQNameGenerator 46 | 47 | - (NSString *)generateWithPrefix:(NSString *)prefix; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /RMQClient/RMQSemaphoreWaiterFactory.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQWaiterFactory.h" 45 | 46 | @interface RMQSemaphoreWaiterFactory : NSObject 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQProcessInfoNameGenerator.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQNameGenerator.h" 45 | 46 | @interface RMQProcessInfoNameGenerator : NSObject 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /RMQClient/RMQConnectionDelegateLogger.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQConnectionDelegate.h" 45 | 46 | @interface RMQConnectionDelegateLogger : NSObject 47 | @end 48 | -------------------------------------------------------------------------------- /RMQClient/RMQWaiterFactory.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQWaiter.h" 45 | 46 | @protocol RMQWaiterFactory 47 | 48 | - (id)makeWithTimeout:(NSNumber *)timeoutSeconds; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | As contributors and maintainers of this project, and in the interest of fostering an open 4 | and welcoming community, we pledge to respect all people who contribute through reporting 5 | issues, posting feature requests, updating documentation, submitting pull requests or 6 | patches, and other activities. 7 | 8 | We are committed to making participation in this project a harassment-free experience for 9 | everyone, regardless of level of experience, gender, gender identity and expression, 10 | sexual orientation, disability, personal appearance, body size, race, ethnicity, age, 11 | religion, or nationality. 12 | 13 | Examples of unacceptable behavior by participants include: 14 | 15 | * The use of sexualized language or imagery 16 | * Personal attacks 17 | * Trolling or insulting/derogatory comments 18 | * Public or private harassment 19 | * Publishing other's private information, such as physical or electronic addresses, 20 | without explicit permission 21 | * Other unethical or unprofessional conduct 22 | 23 | Project maintainers have the right and responsibility to remove, edit, or reject comments, 24 | commits, code, wiki edits, issues, and other contributions that are not aligned to this 25 | Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors 26 | that they deem inappropriate, threatening, offensive, or harmful. 27 | 28 | By adopting this Code of Conduct, project maintainers commit themselves to fairly and 29 | consistently applying these principles to every aspect of managing this project. Project 30 | maintainers who do not follow or enforce the Code of Conduct may be permanently removed 31 | from the project team. 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an 34 | individual is representing the project or its community. 35 | 36 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by 37 | contacting a project maintainer at [info@rabbitmq.com](mailto:info@rabbitmq.com). All complaints will 38 | be reviewed and investigated and will result in a response that is deemed necessary and 39 | appropriate to the circumstances. Maintainers are obligated to maintain confidentiality 40 | with regard to the reporter of an incident. 41 | 42 | This Code of Conduct is adapted from the 43 | [Contributor Covenant](https://contributor-covenant.org), version 1.3.0, available at 44 | [contributor-covenant.org/version/1/3/0/](https://contributor-covenant.org/version/1/3/0/) 45 | -------------------------------------------------------------------------------- /RMQClient/RMQTCPSocketConfigurator.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQTransport.h" 45 | #import 46 | 47 | typedef void (^RMQTCPSocketConfigurator)(GCDAsyncSocket * _Nonnull socket); 48 | -------------------------------------------------------------------------------- /RMQClient/RMQConsumerHandlers.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQMessage.h" 45 | 46 | typedef void (^RMQConsumerDeliveryHandler)(RMQMessage * _Nonnull message); 47 | typedef void (^RMQConsumerCancellationHandler)(void); 48 | -------------------------------------------------------------------------------- /RMQClient/RMQSemaphoreWaiter.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQWaiter.h" 45 | 46 | @interface RMQSemaphoreWaiter : NSObject 47 | 48 | - (instancetype)initWithTimeout:(NSNumber *)timeoutSeconds; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /RMQClient/RMQGCDSerialQueue.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQLocalSerialQueue.h" 45 | 46 | @interface RMQGCDSerialQueue : NSObject 47 | 48 | - (instancetype)initWithName:(NSString *)name; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /RMQClient/RMQHeartbeatSender.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | 45 | @protocol RMQHeartbeatSender 46 | 47 | - (void (^)(void))startWithInterval:(NSNumber *)intervalSeconds; 48 | - (void)stop; 49 | - (void)signalActivity; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /RMQClient/RMQTransportDelegate.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | 45 | @protocol RMQTransport; 46 | @protocol RMQTransportDelegate 47 | - (void) transport:(id)transport 48 | disconnectedWithError:(NSError *)error; 49 | @end 50 | -------------------------------------------------------------------------------- /RMQClientTests/StubNameGenerator.swift: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | @objc class StubNameGenerator: NSObject, RMQNameGenerator { 44 | var nextName = "generated-name-for-test" 45 | 46 | func generate(withPrefix prefix: String!) -> String! { 47 | return nextName 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /RMQClient/RMQFramesetValidator.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQFramesetValidationResult.h" 45 | 46 | @interface RMQFramesetValidator : NSObject 47 | - (RMQFramesetValidationResult *)expect:(Class)methodClass; 48 | - (void)fulfill:(RMQFrameset *)frameset; 49 | @end 50 | -------------------------------------------------------------------------------- /RMQClient/RMQMethodDecoder.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQValues.h" 45 | #import "RMQParser.h" 46 | 47 | @interface RMQMethodDecoder : NSObject 48 | 49 | - (nonnull instancetype)initWithParser:(nonnull RMQParser *)parser; 50 | - (nonnull id)decode; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /RMQClient/RMQBasicProperties+MergeDefaults.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQBasicProperties.h" 45 | 46 | @interface RMQBasicProperties (MergeDefaults) 47 | + (NSArray *)mergeProperties:(NSArray *)properties 48 | withDefaults:(NSArray *)defaultProperties; 49 | @end 50 | -------------------------------------------------------------------------------- /RMQClientTests/ChannelSpyTest.swift: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | import XCTest 44 | 45 | class ChannelSpyTest: XCTestCase { 46 | 47 | func testObeysContract() { 48 | let ch = ChannelSpy(channelNumber: 1) 49 | let contract = RMQChannelContract(ch) 50 | 51 | contract.check() 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /RMQClientTests/FakeClock.swift: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | @objc class FakeClock: NSObject, RMQClock { 44 | var date = Date() 45 | 46 | func read() -> Date! { 47 | return date 48 | } 49 | 50 | func advance(_ interval: TimeInterval) { 51 | date = date.addingTimeInterval(interval) 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /RMQClient/RMQTable.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQValues.h" 44 | 45 | @interface RMQTable : RMQValue 46 | @property (nonnull, nonatomic, readonly) NSDictionary *dictionaryValue; 47 | - (nonnull instancetype)init:(nonnull NSDictionary *> *)dictionary; 48 | @end 49 | 50 | -------------------------------------------------------------------------------- /RMQClient/RMQTransactionalConfirmations.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQConfirmations.h" 45 | #import "RMQLocalSerialQueue.h" 46 | 47 | @interface RMQTransactionalConfirmations : RMQValue 48 | 49 | - (instancetype)initWithDelayQueue:(id)queue; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /RMQClient/RMQSemaphoreWaiterFactory.m: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQSemaphoreWaiterFactory.h" 44 | #import "RMQSemaphoreWaiter.h" 45 | 46 | @implementation RMQSemaphoreWaiterFactory 47 | 48 | - (id)makeWithTimeout:(NSNumber *)timeoutSeconds { 49 | return [[RMQSemaphoreWaiter alloc] initWithTimeout:timeoutSeconds]; 50 | } 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /RMQClient/RMQPKCS12CertificateConverter.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | 45 | @interface RMQPKCS12CertificateConverter : NSObject 46 | 47 | - (instancetype)initWithData:(NSData *)data 48 | password:(NSString *)password; 49 | 50 | - (NSArray *)certificatesWithError:(NSError **)error; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /RMQClientTests/StarterSpy.swift: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | @objc class StarterSpy: NSObject, RMQStarter { 44 | var startCompletionHandler: (() -> Void)? 45 | 46 | func start(_ completionHandler: (() -> Void)!) { 47 | startCompletionHandler = completionHandler 48 | } 49 | 50 | func start() { 51 | start {} 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /RMQClient/RMQProcessInfoNameGenerator.m: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import "RMQProcessInfoNameGenerator.h" 44 | 45 | @implementation RMQProcessInfoNameGenerator 46 | 47 | - (NSString *)generateWithPrefix:(NSString *)prefix { 48 | return [NSString stringWithFormat:@"%@%@", prefix, [NSProcessInfo processInfo].globallyUniqueString]; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /RMQClientTests/FakeWaiter.swift: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | @objc class FakeWaiter: NSObject, RMQWaiter { 44 | var doneCalled = false 45 | var timesOutCalled = false 46 | 47 | func done() { 48 | doneCalled = true 49 | } 50 | 51 | func timesOut() -> Bool { 52 | timesOutCalled = true 53 | return false 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /RMQClient/RMQSender.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQFrameset.h" 45 | 46 | @protocol RMQSender 47 | @property (nonnull, nonatomic, readonly) NSNumber *frameMax; 48 | - (void)sendFrameset:(nonnull RMQFrameset *)frameset; 49 | - (void)sendFrameset:(nonnull RMQFrameset *)frameset force:(BOOL)isForced; 50 | @end 51 | -------------------------------------------------------------------------------- /RMQClientTests/FakeWaiterFactory.swift: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | @objc class FakeWaiterFactory: NSObject, RMQWaiterFactory { 44 | var waiters: [FakeWaiter] = [] 45 | 46 | func make(withTimeout timeoutSeconds: NSNumber!) -> RMQWaiter! { 47 | let waiter = FakeWaiter() 48 | waiters.append(waiter) 49 | return waiter 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /RMQClient/RMQMultipleChannelAllocator.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQChannelAllocator.h" 45 | 46 | @interface RMQMultipleChannelAllocator : NSObject 47 | 48 | - (instancetype)initWithMaxCapacity:(UInt16)limit 49 | channelSyncTimeout:(NSNumber *)syncTimeout; 50 | @end 51 | -------------------------------------------------------------------------------- /RMQClient/RMQReader.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQTransport.h" 45 | #import "RMQFrameHandler.h" 46 | 47 | @interface RMQReader : NSObject 48 | - (nonnull instancetype)initWithTransport:(nonnull id)transport 49 | frameHandler:(nonnull id)frameHandler; 50 | - (void)run; 51 | @end 52 | -------------------------------------------------------------------------------- /RMQClient/RMQQueuingConnectionDelegateProxy.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQConnectionDelegate.h" 45 | 46 | @interface RMQQueuingConnectionDelegateProxy : NSObject 47 | 48 | - (instancetype)initWithDelegate:(id)delegate 49 | queue:(dispatch_queue_t)queue; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /RMQClient/RMQFramesetValidationResult.h: -------------------------------------------------------------------------------- 1 | // This source code is dual-licensed under the Mozilla Public License ("MPL"), 2 | // version 2.0 and the Apache License ("ASL"), version 2.0. 3 | // 4 | // The ASL v2.0: 5 | // 6 | // --------------------------------------------------------------------------- 7 | // Copyright (c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // https://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // --------------------------------------------------------------------------- 21 | // 22 | // The MPL v2.0: 23 | // 24 | // --------------------------------------------------------------------------- 25 | // This Source Code Form is subject to the terms of the Mozilla Public 26 | // License, v. 2.0. If a copy of the MPL was not distributed with this 27 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. 28 | // 29 | // Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved. 30 | // 31 | // Alternatively, the contents of this file may be used under the terms 32 | // of the Apache Standard license (the "ASL License"), in which case the 33 | // provisions of the ASL License are applicable instead of those 34 | // above. If you wish to allow use of your version of this file only 35 | // under the terms of the ASL License and not to allow others to use 36 | // your version of this file under the MPL, indicate your decision by 37 | // deleting the provisions above and replace them with the notice and 38 | // other provisions required by the ASL License. If you do not delete 39 | // the provisions above, a recipient may use your version of this file 40 | // under either the MPL or the ASL License. 41 | // --------------------------------------------------------------------------- 42 | 43 | #import 44 | #import "RMQFrameset.h" 45 | 46 | @interface RMQFramesetValidationResult : NSObject 47 | @property (nonatomic, readonly) NSError *error; 48 | @property (nonatomic, readonly) RMQFrameset *frameset; 49 | 50 | - (instancetype)initWithFrameset:(RMQFrameset *)frameset error:(NSError *)error; 51 | @end 52 | --------------------------------------------------------------------------------