Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1277)

Unified Diff: go/src/infra/gae/libs/gae/filters/count/tq.go

Issue 1239103003: Add "filters/count" filter. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@add_filters
Patch Set: more better now Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: go/src/infra/gae/libs/gae/filters/count/tq.go
diff --git a/go/src/infra/gae/libs/gae/filters/count/tq.go b/go/src/infra/gae/libs/gae/filters/count/tq.go
new file mode 100644
index 0000000000000000000000000000000000000000..eee25b42179bc0c37f299f9e8767b964ea5ed882
--- /dev/null
+++ b/go/src/infra/gae/libs/gae/filters/count/tq.go
@@ -0,0 +1,81 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package count
+
+import (
+ "golang.org/x/net/context"
+
+ "infra/gae/libs/gae"
+)
+
+// TQCounter is the counter object for the TaskQueue service.
+type TQCounter struct {
+ Add Entry
+ Delete Entry
+ AddMulti Entry
+ DeleteMulti Entry
+ Lease Entry
+ LeaseByTag Entry
+ ModifyLease Entry
+ Purge Entry
+ QueueStats Entry
+}
+
+type tqCounter struct {
+ c *TQCounter
+
+ tq gae.TaskQueue
+}
+
+var _ gae.TaskQueue = (*tqCounter)(nil)
+
+func (t *tqCounter) Add(task *gae.TQTask, queueName string) (*gae.TQTask, error) {
+ ret, err := t.tq.Add(task, queueName)
+ return ret, t.c.Add.up(err)
+}
+
+func (t *tqCounter) Delete(task *gae.TQTask, queueName string) error {
+ return t.c.Delete.up(t.tq.Delete(task, queueName))
+}
+
+func (t *tqCounter) AddMulti(tasks []*gae.TQTask, queueName string) ([]*gae.TQTask, error) {
+ ret, err := t.tq.AddMulti(tasks, queueName)
+ return ret, t.c.AddMulti.up(err)
+}
+
+func (t *tqCounter) DeleteMulti(tasks []*gae.TQTask, queueName string) error {
+ return t.c.DeleteMulti.up(t.tq.DeleteMulti(tasks, queueName))
+}
+
+func (t *tqCounter) Lease(maxTasks int, queueName string, leaseTime int) ([]*gae.TQTask, error) {
+ ret, err := t.tq.Lease(maxTasks, queueName, leaseTime)
+ return ret, t.c.Lease.up(err)
+}
+
+func (t *tqCounter) LeaseByTag(maxTasks int, queueName string, leaseTime int, tag string) ([]*gae.TQTask, error) {
+ ret, err := t.tq.LeaseByTag(maxTasks, queueName, leaseTime, tag)
+ return ret, t.c.LeaseByTag.up(err)
+}
+
+func (t *tqCounter) ModifyLease(task *gae.TQTask, queueName string, leaseTime int) error {
+ return t.c.ModifyLease.up(t.tq.ModifyLease(task, queueName, leaseTime))
+}
+
+func (t *tqCounter) Purge(queueName string) error {
+ return t.c.Purge.up(t.tq.Purge(queueName))
+}
+
+func (t *tqCounter) QueueStats(queueNames []string) ([]gae.TQStatistics, error) {
+ ret, err := t.tq.QueueStats(queueNames)
+ return ret, t.c.QueueStats.up(err)
+}
+
+// FilterTQ installs a counter TaskQueue filter in the context.
+func FilterTQ(c context.Context) (context.Context, *TQCounter) {
+ state := &TQCounter{}
+ return gae.AddTQFilters(c, func(ic context.Context, tq gae.TaskQueue) gae.TaskQueue {
+ return &tqCounter{state, tq}
+ }), state
+}

Powered by Google App Engine
This is Rietveld 408576698