// ------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version: 17.0.0.0 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // // ------------------------------------------------------------------------------ namespace ServiceClientGenerator.Generators.SourceFiles { using System.Linq; using System.Text; using System.Collections.Generic; using System; /// /// Class to produce the template output /// #line 1 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")] public partial class BasePaginator : BaseGenerator { #line hidden /// /// Create the template output /// public override string TransformText() { #line 6 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" AddLicenseHeader(); #line default #line hidden this.Write("\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Sys" + "tem.Collections;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing " + "Amazon.Runtime;\r\n \r\nnamespace "); #line 18 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace)); #line default #line hidden this.Write(".Model\r\n{\r\n /// \r\n /// Base class for "); #line 21 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write(" paginators.\r\n /// \r\n internal sealed partial class "); #line 23 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Paginator : IPaginator<"); #line 23 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response>, I"); #line 23 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Paginator\r\n {\r\n private readonly IAmazon"); #line 25 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName)); #line default #line hidden this.Write(" _client;\r\n private readonly "); #line 26 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Request _request;\r\n private int _isPaginatorInUse = 0;\r\n \r\n " + "/// \r\n /// Enumerable containing all full responses for the oper" + "ation\r\n /// \r\n public IPaginatedEnumerable<"); #line 32 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response> Responses => new PaginatedResponse<"); #line 32 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response>(this);\r\n"); #line 33 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" foreach(var resultKey in this.Operation.Paginators.ResultKeys.Where(r => r.ListItemType != null)) { #line default #line hidden this.Write("\r\n /// \r\n /// Enumerable containing all of the "); #line 39 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resultKey.Member.PropertyName)); #line default #line hidden this.Write("\r\n /// \r\n public IPaginatedEnumerable<"); #line 41 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resultKey.ListItemType)); #line default #line hidden this.Write("> "); #line 41 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resultKey.Member.PropertyName)); #line default #line hidden this.Write(" => \r\n new PaginatedResultKeyResponse<"); #line 42 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response, "); #line 42 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resultKey.ListItemType)); #line default #line hidden this.Write(">(this, (i) => i."); #line 42 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resultKey.PropertyName)); #line default #line hidden this.Write(");\r\n"); #line 43 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write("\r\n internal "); #line 47 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Paginator(IAmazon"); #line 47 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName)); #line default #line hidden this.Write(" client, "); #line 47 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Request request)\r\n {\r\n this._client = client;\r\n this" + "._request = request;\r\n }\r\n#if BCL\r\n IEnumerable<"); #line 53 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response> IPaginator<"); #line 53 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write(@"Response>.Paginate() { if (Interlocked.Exchange(ref _isPaginatorInUse, 1) != 0) { throw new System.InvalidOperationException(""Paginator has already been consumed and cannot be reused. Please create a new instance.""); } PaginatorUtils.SetUserAgentAdditionOnRequest(_request); "); #line 60 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" foreach(var inputToken in this.Operation.Paginators.InputTokens) { #line default #line hidden this.Write(" var "); #line 64 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.Member.ArgumentName)); #line default #line hidden this.Write(" = _request."); #line 64 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.PropertyName)); #line default #line hidden this.Write(";\r\n"); #line 65 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" "); #line 68 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response response;\r\n do\r\n {\r\n"); #line 71 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" foreach(var inputToken in this.Operation.Paginators.InputTokens) { #line default #line hidden this.Write(" _request."); #line 75 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.PropertyName)); #line default #line hidden this.Write(" = "); #line 75 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.Member.ArgumentName)); #line default #line hidden this.Write(";\r\n"); #line 76 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" response = _client."); #line 79 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("(_request);\r\n"); #line 80 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" for(var i = 0; i < this.Operation.Paginators.InputTokens.Count; i++) { #line default #line hidden this.Write(" "); #line 84 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.InputTokens[i].Member.ArgumentName)); #line default #line hidden this.Write(" = response."); #line 84 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.OutputTokens[i].PropertyName)); #line default #line hidden this.Write(";\r\n"); #line 85 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" yield return response;\r\n }\r\n"); #line 90 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" if (this.Operation.Paginators.MoreResults != null) { #line default #line hidden this.Write(" while (response."); #line 94 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.MoreResults.PropertyName)); #line default #line hidden this.Write(");\r\n"); #line 95 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } else if (this.Operation.Paginators.InputTokens[0].IsListOrDict) { #line default #line hidden this.Write(" while ("); #line 100 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.InputTokens[0].Member.ArgumentName)); #line default #line hidden this.Write(".Count > 0);\r\n"); #line 101 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } else { #line default #line hidden this.Write(" while (!string.IsNullOrEmpty("); #line 106 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.InputTokens[0].Member.ArgumentName)); #line default #line hidden this.Write("));\r\n"); #line 107 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" }\r\n#endif\r\n#if AWS_ASYNC_ENUMERABLES_API\r\n async IAsyncEnumerable<" + ""); #line 113 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response> IPaginator<"); #line 113 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write(@"Response>.PaginateAsync(CancellationToken cancellationToken = default) { if (Interlocked.Exchange(ref _isPaginatorInUse, 1) != 0) { throw new System.InvalidOperationException(""Paginator has already been consumed and cannot be reused. Please create a new instance.""); } PaginatorUtils.SetUserAgentAdditionOnRequest(_request); "); #line 120 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" foreach(var inputToken in this.Operation.Paginators.InputTokens) { #line default #line hidden this.Write(" var "); #line 124 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.Member.ArgumentName)); #line default #line hidden this.Write(" = _request."); #line 124 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.PropertyName)); #line default #line hidden this.Write(";\r\n"); #line 125 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" "); #line 128 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Response response;\r\n do\r\n {\r\n"); #line 131 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" foreach(var inputToken in this.Operation.Paginators.InputTokens) { #line default #line hidden this.Write(" _request."); #line 135 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.PropertyName)); #line default #line hidden this.Write(" = "); #line 135 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(inputToken.Member.ArgumentName)); #line default #line hidden this.Write(";\r\n"); #line 136 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" response = await _client."); #line 139 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Name)); #line default #line hidden this.Write("Async(_request, cancellationToken).ConfigureAwait(false);\r\n"); #line 140 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" for(var i = 0; i < this.Operation.Paginators.InputTokens.Count; i++) { #line default #line hidden this.Write(" "); #line 144 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.InputTokens[i].Member.ArgumentName)); #line default #line hidden this.Write(" = response."); #line 144 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.OutputTokens[i].PropertyName)); #line default #line hidden this.Write(";\r\n"); #line 145 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" cancellationToken.ThrowIfCancellationRequested();\r\n " + " yield return response;\r\n }\r\n"); #line 151 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" if (this.Operation.Paginators.MoreResults != null) { #line default #line hidden this.Write(" while (response."); #line 155 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.MoreResults.PropertyName)); #line default #line hidden this.Write(");\r\n"); #line 156 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } else if (this.Operation.Paginators.InputTokens[0].IsListOrDict) { #line default #line hidden this.Write(" while ("); #line 161 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.InputTokens[0].Member.ArgumentName)); #line default #line hidden this.Write(".Count > 0);\r\n"); #line 162 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } else { #line default #line hidden this.Write(" while (!string.IsNullOrEmpty("); #line 167 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.Paginators.InputTokens[0].Member.ArgumentName)); #line default #line hidden this.Write("));\r\n"); #line 168 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" } #line default #line hidden this.Write(" }\r\n#endif\r\n }\r\n}\r\n \r\n"); return this.GenerationEnvironment.ToString(); } #line 176 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\BasePaginator.tt" // The operation the marshaller will be used on public Operation Operation { get; set; } #line default #line hidden } #line default #line hidden }