| Index: filter/count/tq.go
 | 
| diff --git a/filter/count/tq.go b/filter/count/tq.go
 | 
| index 054dae7eee59d74fd02c86ee3b3605b89201dfcf..65f0955b054e86be5a6027f843ba783f7579a4a4 100644
 | 
| --- a/filter/count/tq.go
 | 
| +++ b/filter/count/tq.go
 | 
| @@ -12,70 +12,40 @@ import (
 | 
|  
 | 
|  // 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
 | 
| +	Stats       Entry
 | 
|  }
 | 
|  
 | 
|  type tqCounter struct {
 | 
|  	c *TQCounter
 | 
|  
 | 
| -	tq tq.Interface
 | 
| +	tq tq.RawInterface
 | 
|  }
 | 
|  
 | 
| -var _ tq.Interface = (*tqCounter)(nil)
 | 
| +var _ tq.RawInterface = (*tqCounter)(nil)
 | 
|  
 | 
| -func (t *tqCounter) Add(task *tq.Task, queueName string) (*tq.Task, error) {
 | 
| -	ret, err := t.tq.Add(task, queueName)
 | 
| -	return ret, t.c.Add.up(err)
 | 
| +func (t *tqCounter) AddMulti(tasks []*tq.Task, queueName string, cb tq.RawTaskCB) error {
 | 
| +	return t.c.AddMulti.up(t.tq.AddMulti(tasks, queueName, cb))
 | 
|  }
 | 
|  
 | 
| -func (t *tqCounter) Delete(task *tq.Task, queueName string) error {
 | 
| -	return t.c.Delete.up(t.tq.Delete(task, queueName))
 | 
| -}
 | 
| -
 | 
| -func (t *tqCounter) AddMulti(tasks []*tq.Task, queueName string) ([]*tq.Task, error) {
 | 
| -	ret, err := t.tq.AddMulti(tasks, queueName)
 | 
| -	return ret, t.c.AddMulti.up(err)
 | 
| -}
 | 
| -
 | 
| -func (t *tqCounter) DeleteMulti(tasks []*tq.Task, queueName string) error {
 | 
| -	return t.c.DeleteMulti.up(t.tq.DeleteMulti(tasks, queueName))
 | 
| -}
 | 
| -
 | 
| -func (t *tqCounter) Lease(maxTasks int, queueName string, leaseTime int) ([]*tq.Task, 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) ([]*tq.Task, error) {
 | 
| -	ret, err := t.tq.LeaseByTag(maxTasks, queueName, leaseTime, tag)
 | 
| -	return ret, t.c.LeaseByTag.up(err)
 | 
| -}
 | 
| -
 | 
| -func (t *tqCounter) ModifyLease(task *tq.Task, queueName string, leaseTime int) error {
 | 
| -	return t.c.ModifyLease.up(t.tq.ModifyLease(task, queueName, leaseTime))
 | 
| +func (t *tqCounter) DeleteMulti(tasks []*tq.Task, queueName string, cb tq.RawCB) error {
 | 
| +	return t.c.DeleteMulti.up(t.tq.DeleteMulti(tasks, queueName, cb))
 | 
|  }
 | 
|  
 | 
|  func (t *tqCounter) Purge(queueName string) error {
 | 
|  	return t.c.Purge.up(t.tq.Purge(queueName))
 | 
|  }
 | 
|  
 | 
| -func (t *tqCounter) QueueStats(queueNames []string) ([]tq.Statistics, error) {
 | 
| -	ret, err := t.tq.QueueStats(queueNames)
 | 
| -	return ret, t.c.QueueStats.up(err)
 | 
| +func (t *tqCounter) Stats(queueNames []string, cb tq.RawStatsCB) error {
 | 
| +	return t.c.Stats.up(t.tq.Stats(queueNames, cb))
 | 
|  }
 | 
|  
 | 
|  // FilterTQ installs a counter TaskQueue filter in the context.
 | 
|  func FilterTQ(c context.Context) (context.Context, *TQCounter) {
 | 
|  	state := &TQCounter{}
 | 
| -	return tq.AddFilters(c, func(ic context.Context, tq tq.Interface) tq.Interface {
 | 
| +	return tq.AddRawFilters(c, func(ic context.Context, tq tq.RawInterface) tq.RawInterface {
 | 
|  		return &tqCounter{state, tq}
 | 
|  	}), state
 | 
|  }
 | 
| 
 |