OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file contains types which are mirrors/duplicates of the upstream SDK | 5 // This file contains types which are mirrors/duplicates of the upstream SDK |
6 // types. This exists so that users can depend solely on this wrapper library | 6 // types. This exists so that users can depend solely on this wrapper library |
7 // without necessarially needing an SDK implementation present. | 7 // without necessarially needing an SDK implementation present. |
8 // | 8 // |
9 // This was done (instead of type-aliasing from the github version of the SDK) | 9 // This was done (instead of type-aliasing from the github version of the SDK) |
10 // because some of the types need to be tweaked (like Task.RetryOptions) to | 10 // because some of the types need to be tweaked (like Task.RetryOptions) to |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 | 90 |
91 // The number of times the task has been dispatched or leased. | 91 // The number of times the task has been dispatched or leased. |
92 RetryCount int32 | 92 RetryCount int32 |
93 | 93 |
94 // Tag for the task. Only used when Method is PULL. | 94 // Tag for the task. Only used when Method is PULL. |
95 Tag string | 95 Tag string |
96 | 96 |
97 // Retry options for this task. May be nil. | 97 // Retry options for this task. May be nil. |
98 RetryOptions *RetryOptions | 98 RetryOptions *RetryOptions |
99 } | 99 } |
| 100 |
| 101 func (t *Task) Duplicate() *Task { |
| 102 ret := *t |
| 103 |
| 104 if len(t.Header) > 0 { |
| 105 ret.Header = make(http.Header, len(t.Header)) |
| 106 for k, vs := range t.Header { |
| 107 newVs := make([]string, len(vs)) |
| 108 copy(newVs, vs) |
| 109 ret.Header[k] = newVs |
| 110 } |
| 111 } |
| 112 |
| 113 if len(t.Payload) > 0 { |
| 114 ret.Payload = make([]byte, len(t.Payload)) |
| 115 copy(ret.Payload, t.Payload) |
| 116 } |
| 117 |
| 118 if t.RetryOptions != nil { |
| 119 ret.RetryOptions = &RetryOptions{} |
| 120 *ret.RetryOptions = *t.RetryOptions |
| 121 } |
| 122 |
| 123 return &ret |
| 124 } |
OLD | NEW |