package com.github.ompc.greys.core.manager; import com.github.ompc.greys.core.Advice; import com.github.ompc.greys.core.TimeFragment; import com.github.ompc.greys.core.manager.impl.DefaultTimeFragmentManager; import java.util.ArrayList; import java.util.Date; /** * 时间片段管理 * Created by oldmanpushcart@gmail.com on 15/10/3. */ public interface TimeFragmentManager { /** * 生成全局过程ID * * @return 过程ID */ int generateProcessId(); /** * 追加时间片段 * * @param processId 过程ID * @param advice 通知数据 * @param gmtCreate 记录时间戳 * @param cost 片段耗时 * @param stack 片段堆栈 * @return 时间片段 */ TimeFragment append(int processId, Advice advice, Date gmtCreate, long cost, String stack); /** * 列出所有时间碎片 * * @return 时间碎片列表 */ ArrayList<TimeFragment> list(); /** * 搜索碎片内容 * * @param express 搜索表达式 * @return 搜索时间碎片集合 */ ArrayList<TimeFragment> search(String express); /** * 根据ID获取时间碎片 * * @param id 时间碎片ID * @return 时间碎片 */ TimeFragment get(int id); /** * 根据ID删除时间碎片 * * @param id 时间碎片ID * @return 被的时间碎片;若时间碎片不存在返回null */ TimeFragment delete(int id); /** * 清除所有的时间碎片 * * @return 清除的时间碎片数量 */ int clean(); /** * 工厂 */ class Factory { private static volatile TimeFragmentManager instance = null; public static TimeFragmentManager getInstance() { if (null == instance) { synchronized (TimeFragmentManager.class) { if (instance == null) { instance = new DefaultTimeFragmentManager(); } } } return instance; } } }