0001    //
0002    //  SynchronizedResolver.Arguments.swift
0003    //  Swinject
0004    //
0005    //  Created by Yoichi Tagaya on 11/23/15.
0006    //  Copyright © 2015 Swinject Contributors. All rights reserved.
0007    //
0008    
0009    //
0010    // NOTICE:
0011    //
0012    // SynchronizedResolver.Arguments.swift is generated from SynchronizedResolver.Arguments.erb by ERB.
0013    // Do NOT modify SynchronizedResolver.Arguments.swift directly.
0014    // Instead, modify SynchronizedResolver.Arguments.erb and run `script/gencode` at the project root directory to generate the code.
0015    //
0016    
0017    
0018    // MARK: - Resolvable with Arguments
0019    extension SynchronizedResolver {
0020        internal func resolve<Service, Arg1>(
0021            serviceType: Service.Type,
0022            argument: Arg1) -> Service?
0023        {
0024            return container.lock.sync {
0025                return self.container.resolve(serviceType, argument: argument)
0026            }
0027        }
0028    
0029        internal func resolve<Service, Arg1>(
0030            serviceType: Service.Type,
0031            name: String?,
0032            argument: Arg1) -> Service?
0033        {
0034            return container.lock.sync {
0035                return self.container.resolve(serviceType, name: name, argument: argument)
0036            }
0037        }
0038    
0039        internal func resolve<Service, Arg1, Arg2>(
0040            serviceType: Service.Type,
0041            arguments: (Arg1, Arg2)) -> Service?
0042        {
0043            return container.lock.sync {
0044                return self.container.resolve(serviceType, arguments: arguments)
0045            }
0046        }
0047    
0048        internal func resolve<Service, Arg1, Arg2>(
0049            serviceType: Service.Type,
0050            name: String?,
0051            arguments: (Arg1, Arg2)) -> Service?
0052        {
0053            return container.lock.sync {
0054                return self.container.resolve(serviceType, name: name, arguments: arguments)
0055            }
0056        }
0057    
0058        internal func resolve<Service, Arg1, Arg2, Arg3>(
0059            serviceType: Service.Type,
0060            arguments: (Arg1, Arg2, Arg3)) -> Service?
0061        {
0062            return container.lock.sync {
0063                return self.container.resolve(serviceType, arguments: arguments)
0064            }
0065        }
0066    
0067        internal func resolve<Service, Arg1, Arg2, Arg3>(
0068            serviceType: Service.Type,
0069            name: String?,
0070            arguments: (Arg1, Arg2, Arg3)) -> Service?
0071        {
0072            return container.lock.sync {
0073                return self.container.resolve(serviceType, name: name, arguments: arguments)
0074            }
0075        }
0076    
0077        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4>(
0078            serviceType: Service.Type,
0079            arguments: (Arg1, Arg2, Arg3, Arg4)) -> Service?
0080        {
0081            return container.lock.sync {
0082                return self.container.resolve(serviceType, arguments: arguments)
0083            }
0084        }
0085    
0086        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4>(
0087            serviceType: Service.Type,
0088            name: String?,
0089            arguments: (Arg1, Arg2, Arg3, Arg4)) -> Service?
0090        {
0091            return container.lock.sync {
0092                return self.container.resolve(serviceType, name: name, arguments: arguments)
0093            }
0094        }
0095    
0096        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5>(
0097            serviceType: Service.Type,
0098            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5)) -> Service?
0099        {
0100            return container.lock.sync {
0101                return self.container.resolve(serviceType, arguments: arguments)
0102            }
0103        }
0104    
0105        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5>(
0106            serviceType: Service.Type,
0107            name: String?,
0108            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5)) -> Service?
0109        {
0110            return container.lock.sync {
0111                return self.container.resolve(serviceType, name: name, arguments: arguments)
0112            }
0113        }
0114    
0115        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>(
0116            serviceType: Service.Type,
0117            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)) -> Service?
0118        {
0119            return container.lock.sync {
0120                return self.container.resolve(serviceType, arguments: arguments)
0121            }
0122        }
0123    
0124        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>(
0125            serviceType: Service.Type,
0126            name: String?,
0127            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)) -> Service?
0128        {
0129            return container.lock.sync {
0130                return self.container.resolve(serviceType, name: name, arguments: arguments)
0131            }
0132        }
0133    
0134        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>(
0135            serviceType: Service.Type,
0136            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)) -> Service?
0137        {
0138            return container.lock.sync {
0139                return self.container.resolve(serviceType, arguments: arguments)
0140            }
0141        }
0142    
0143        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>(
0144            serviceType: Service.Type,
0145            name: String?,
0146            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)) -> Service?
0147        {
0148            return container.lock.sync {
0149                return self.container.resolve(serviceType, name: name, arguments: arguments)
0150            }
0151        }
0152    
0153        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>(
0154            serviceType: Service.Type,
0155            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8)) -> Service?
0156        {
0157            return container.lock.sync {
0158                return self.container.resolve(serviceType, arguments: arguments)
0159            }
0160        }
0161    
0162        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>(
0163            serviceType: Service.Type,
0164            name: String?,
0165            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8)) -> Service?
0166        {
0167            return container.lock.sync {
0168                return self.container.resolve(serviceType, name: name, arguments: arguments)
0169            }
0170        }
0171    
0172        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>(
0173            serviceType: Service.Type,
0174            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9)) -> Service?
0175        {
0176            return container.lock.sync {
0177                return self.container.resolve(serviceType, arguments: arguments)
0178            }
0179        }
0180    
0181        internal func resolve<Service, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>(
0182            serviceType: Service.Type,
0183            name: String?,
0184            arguments: (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9)) -> Service?
0185        {
0186            return container.lock.sync {
0187                return self.container.resolve(serviceType, name: name, arguments: arguments)
0188            }
0189        }
0190    
0191    }
0192