eis/inc/pmg/PlanFactory.h

91 lines
1.8 KiB
C++

/*********************************************************************
*
* 版权所有: Shanghai Baosight Software Co., Ltd.
*
* 概述:
* 版本历史
* 1.0 2014-08-18 jamie 增加注释
*
*********************************************************************/
#ifndef _PLANFACTORY_H
#define _PLANFACTORY_H
#include <pmg/Plan.h>
using namespace baosight;
class PLAN_TYPE
{
public:
static const int SEQ = 0;
static const int PDI = 1;
static const int ROLL = 2;
};
class PLAN_CASE
{
public:
static const int REQUEST = 0;
static const int RECEIVE = 1;
static const int REVOKE = 2;
static const int CREATE = 3;
static const int ADJUST = 4;
static const int ANSWER = 5;
};
static string CASE_INFO[10] = { "request","receive","revoke","create","adjust","answer",};
class PlanFactory
{
private:
PlanFactory();
virtual ~PlanFactory();
public:
//处理计划顺相关事件
virtual int planSeq(int caseNo,int eventNo,const Ice::ByteSeq& seq);
//处理原始数据相关事件
virtual int planPDI(int caseNo,int eventNo,const Ice::ByteSeq& seq);
//处理轧辊数据相关事件
virtual int planRoll(int caseNo,int eventNo,const Ice::ByteSeq& seq);
public:
//计划置next
virtual int planNext(int eventNo,const Ice::ByteSeq& seq);
//计划删除
virtual int planDel(int eventNo,const Ice::ByteSeq& seq);
//执行sql
virtual int exesql(int eventNo,const Ice::ByteSeq& seq);
//默认消息
virtual int defaultMsg(int eventNo,const Ice::ByteSeq& seq);
public:
static PlanFactory* GetInstancePtr();
static PlanFactory& GetInstance();
static bool release(void);
private:
// 概述: 计划功能分派
virtual int dispatch(int planType,int caseNo,int eventNo,const Ice::ByteSeq& seq);
private:
static PlanFactory* mp_singleton;
private:
map<int,Plan*> mplan;
private:
DataAccess* mp_dataAccess;
AutoTele* mp_tele;
char almsg[512];
};
#endif