/************************************************************************* 【文件名】 FlowTemplate.h 【功能模块和目的】 流程模板类头文件 【开发者及日期】 郑石诺 2015/01/27 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once class IFlowDataProvider; class CCellBase; /************************************************************************* 【类名】 CFlowTemplate 【功能】 【接口说明】 流程模板类 【开发者及日期】 郑石诺 2015/01/27 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CFlowTemplate { public: CFlowTemplate(void); ~CFlowTemplate(void); FlowType type(void) const { return m_Type; } const CString& name(void) const { return m_Name; } int concurrency(void) const { return m_Concurrency; } bool fillData(IFlowDataProvider& Provider); // 解析流程文件为数据字段赋值 void accept(int CellPos, CCellBase* pCell); // 填充cell map int getCellPos(const CString& CellName); // 根据节点名称获取节点编号 CCellBase* findCell(int CellPos); // 根据Cell节点号获取Cell int matchLine(UINT TrunkId); // 匹配线路0:不匹配;1:匹配;-1为默认流程 bool matchCaller(LPCTSTR Caller); // 根据主叫号码分析流程的适用性 bool isMatchedPreCall(void) const; // 是否匹配预测呼叫 private: void __release(void); // 释放所有cell private: FlowType m_Type; // 流程类型 int m_Concurrency; // 并发量 CString m_Name; // 流程名字 CString m_MatchedNum; // 当前流程匹配的被叫号码 CString m_MatchedLine; // 当前流程关联的外线ID列表,以 | 进行分隔, -1 表示本流程为默认流程 CMap m_CellMap; // cell链表 };