基础类一
CMsgTask & task 定义:此为队列类
作用:存储具体工单信息MAP<PS_ID,CBaseMsg*> m_mapMsg
同步工单<dead_line,PS_ID> m_multimapSyncMsgIndex
保存CBaseMsg具体工单信息
创建范围:在CPsTaskMap 中的NewTask方法中根据网元创建队列new
在CMsgTaskMap的析构函数中释放delete
数据:
CInt64Int64Multimap m_multimapSyncMsgIndex; //保存同步工单索引,key为dead_line,value为ps_id;
CInt64Int64Multimap m_multimapAsyncMsgIndex; //保存异步工单索引,key为dead_line,value为ps_id;
AISTD map <int64,CBaseMsg *> m_mapMsg; //保存具体的工单,key为ps_id;
CSynControl m_cSynControl;
CInt32BoolMap m_mapThreadId; //处理实时工单的工作线程ID
class CProvMsg : public CBaseMsg
定义:工单信息,对收到信息尽心解码等操作
public:
CProv m_cProv; //class CProv : public ISerializable
CBaseMsg 定义:此为具体工单的消息
作用:作为具体消息存储,解码,编码消息
创建范围:存储在CMsgTask队列中,在work函数中获得,然后删除在work中删除(delete)
数据信息:
CStringMap m_mapParam;//参数列表
int64 m_llMsgId; //消息编号
int32 m_iProcessType; //工单处理类型,1:实时工单,2:异步工单
int64 m_llPsId;//工单编号
int64 m_llActionId;//业务类型
int32 m_iStatus;//消息状态
AISTD string m_strErrorMsg;//错误消息
void * m_pResultQueue;//返回队列,又数据源中的结果map赋值,m_cResultMap。
void * m_pReserve;//保留
int64 m_llDeadLine;//dead_line,值越小越先处理
void * m_pSocketFd; //SOCKET描述符地址,用于后续回执时关联SOCKET连接用的
bool m_bCancel; //是否被CANCEL掉了
AISTD string m_strProcessName; //当前的进程名
int32 m_iMsgType; //消息类型
CMsgTaskMap 定义:连接与队列的定义
作用:一个socket对应一个消息队列
CPsTaskMap: 定义:定义网元与队列的对应关系
作用:在构造函数中根据网元代码,构造网元对应的消息队列CMsgTask(new)
创建范围:在CDataSourceList中使用
数据:
public:
typedef AISTD map<AISTD string, CMsgTask *> CTaskMap;
protected:
CStringList m_lstPsNetCode;
CTaskMap m_mapTask; //网元队列的列表
CSynControl m_cSyncControl;
CTaskMap : 定义:typedef AISTD map<AISTD string,CMsgTask *>CTaskMap 网元名与任务列表
作用:用于存储一个网元对应的队列
CSstringList:vector<string,string> m_lstPsNetCode 网元列表
class CCommTool:
public:
int32 m_iCommFd;
private:
AISTD string m_strErrInfo;
protected:
bool m_isConnect;
class CCommTCP : public CCommTool
定义:TCP连接类
数据:
protected:
int32 m_iIsClient; // 标志这个SOCKET是一个服务器还是客户端,1-客户端,0-服务器
int32 m_iIsClosed; // 这个套接口是否已经被关闭
int32 m_iIsBlocked; // 使用阻塞模式还是非阻塞模式,0-非阻塞模式,1-阻塞模式
int32 m_iIsInited;
int32 m_iIsConnecting; // 是否正在连接,非阻塞方式连接需要时间
int32 m_iIsConnOk; // 标志连接是否正常
struct sockaddr_in m_sockAddr; //
class CAiscHead:
定义:对接受的网络数据头部处理的类
数据:
public:
uint32 m_iBodyLen;
uint32 m_iMsgType;
class CClientNode:
定义:表示一个客户端连接节点,即每个accept文件描述符对应一个此对象,并且把
一个TCP连接赋予它的私有数据中m_pCommTcp
数据信息:
typedef AISTD map<int32*,CClientNode *> CClientMap;
public:
int32 m_iSocketFd; //对应的SOCKET描述符
CInt64StrMap m_mapCltPsId; //保存从客户端接收的工单的ps_id。在processinputMessage()函数
如果是工单信息,则添加此连接接受的工单
CStrInt64StrMapMap m_mapDisPsId; //保存工单调度和工单处理模块对应的ps_id
AISTD string m_strRecvBuffer; //接收缓冲区
CCommTCP *m_pCommTcp; //表示一个TCP连接,在数据源的listen函数中new
CSynControl m_cSynControl;
int64 m_iLastCommTime; //上一次有数据交互的时间
AISTD string m_strProcessName;
};
class CPoll:
定义:存储所有poll事件的列表
数据:
public:
pollfd *m_pHandleList;
int32 m_iHandleSize;
int32 m_iHandleMax;
浙公网安备 33010602011771号