package com.yanzuoguang.media;

/**
 * 视频缓存处理
 *
 * @author 颜佐光
 */
public interface MediaCacheBase {
    /**
     * 获取缓存是否正在执行
     *
     * @param req      需要运行的请求参数
     * @param runnable 当没有运行时,需要执行的函数
     * @return
     */
    MediaResVo start(MediaReqVo req, Runnable runnable);

    /**
     * 获取缓存是否正在运行
     *
     * @param req
     * @return
     */
    MediaResVo get(MediaReqVo req);

    /**
     * 写入处理结果到缓存中
     *
     * @param res
     */
    void sub(MediaResVo res);

    /**
     * 锁定临时文件,防止被人修改
     *
     * @param req
     * @param runnable
     */
    void lockTempFile(MediaReqVo req, Runnable runnable);
}