package storage

import "github.com/astaxie/beego/orm"

type cacheTask struct {
	execTask     Task
	rollbackTask Task
}

func (ct *cacheTask) Exec(db orm.Ormer) error {
	if ct.execTask != nil {
		return ct.execTask(db)
	}
	return nil
}

func (ct *cacheTask) Rollback(db orm.Ormer) error {
	if ct.rollbackTask != nil {
		return ct.rollbackTask(db)
	}
	return nil
}

func GenerateCacheTask(execTask Task, rollbackTask Task) DbaTasker {
	return &cacheTask{
		execTask:     execTask,
		rollbackTask: rollbackTask,
	}
}
