Chromium Code Reviews| Index: service/taskqueue/types.go |
| diff --git a/service/taskqueue/types.go b/service/taskqueue/types.go |
| index c8cde3996c2f3e96d8568ec529a2cc7b15b21f97..1ef481c73bd88a46f0801739360f915ad1d6ebf7 100644 |
| --- a/service/taskqueue/types.go |
| +++ b/service/taskqueue/types.go |
| @@ -97,3 +97,29 @@ type Task struct { |
| // Retry options for this task. May be nil. |
| RetryOptions *RetryOptions |
| } |
| + |
| +func (t *Task) Duplicate() *Task { |
| + ret := &Task{} |
|
dnj
2015/08/03 22:37:26
ret := *t
...
return &ret
iannucci
2015/08/04 01:21:21
Done.
|
| + *ret = *t |
| + |
| + if t.Header != nil { |
|
dnj
2015/08/03 22:37:25
len(t.Header) > 0
iannucci
2015/08/04 01:21:21
Done.
|
| + ret.Header = make(http.Header, len(t.Header)) |
| + for k, vs := range t.Header { |
| + newVs := make([]string, len(vs)) |
| + copy(newVs, vs) |
| + ret.Header[k] = newVs |
| + } |
| + } |
| + |
| + if t.Payload != nil { |
|
dnj
2015/08/03 22:37:26
len(t.Payload) > 0
iannucci
2015/08/04 01:21:21
Done.
|
| + ret.Payload = make([]byte, len(t.Payload)) |
| + copy(ret.Payload, t.Payload) |
| + } |
| + |
| + if t.RetryOptions != nil { |
| + ret.RetryOptions = &RetryOptions{} |
| + *ret.RetryOptions = *t.RetryOptions |
| + } |
| + |
| + return ret |
| +} |