| Index: service/taskqueue/types.go
|
| diff --git a/service/taskqueue/types.go b/service/taskqueue/types.go
|
| index c8cde3996c2f3e96d8568ec529a2cc7b15b21f97..7bc6a130432d3738859b8175d262995a1419691e 100644
|
| --- a/service/taskqueue/types.go
|
| +++ b/service/taskqueue/types.go
|
| @@ -97,3 +97,28 @@ type Task struct {
|
| // Retry options for this task. May be nil.
|
| RetryOptions *RetryOptions
|
| }
|
| +
|
| +func (t *Task) Duplicate() *Task {
|
| + ret := *t
|
| +
|
| + if len(t.Header) > 0 {
|
| + 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 len(t.Payload) > 0 {
|
| + 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
|
| +}
|
|
|