⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dnnode.h

📁 SMS gateway. SMS protocol for CHINA mobile, unicom, lingtong. Using mysql to exchange message.
💻 H
字号:
/**********************************************************************
  FileName            : DnNode.h
  Description         : 下节点类头文件
  Version             : 1.0
  Date                : 2003年7月9日
  Author              : 刘荣辉
  Other               : 下属SP
***********************************************************************/
#ifndef _DNNODE_H_
#define _DNNODE_H_

#include <pthread.h>
#include "socket.h"
#include "FileOpr.h"
#include "DB_MySQL.h"
#include "ConnectionPool.h"
#include "md5.h"

#define MFXX "MFXX"		//业务代码:免费信息

class CDnNode
{
  public:
	 //构造、析构函数
     CDnNode();
     virtual ~CDnNode();
	
	 int NodeInit();	//初始化(队列参数)
     int MakeRspPack(void *ReqPack, void **RspPack);	//形成CMPP应答包,返回值为状态码
	 int DnSentQCheck(DB_MySQL *, int);			//下端已发送队列检查模块????????
	 
     int GetSequence();		//互斥地获得当前流水号,并加1
     int PutActiveTest();	//往发送队列中放ActiveTest包,不负责接收应答
	 int PutDeliver(void * , char *, int );	//往发送队列中放Deliver包

  	 int LoadQueue();	//下节点数据装载恢复模块????????????????
	 int NodeExit();	//下节点安全退出模块(数据保护)????????????

	
  public:

	 int  ToExit;		//节点退出标识,0为不退出,1为正在退出
	 int Num;			//在下节点信息结构体数组(常驻内存)中的下标
	 TCPsocket TcpSock; //TCP套接字对象
     int  State;        //节点状态:0表示连接正常,1表示正在建立连接,2表示连接已断
     int  SeqId;		//流水号
	 int  NodeID;		//下节点的节点编号,与CP服务代码同

     FIFO_RecvQ *RecvQ;		//请求包接收缓冲队列
     FIFO_RecvQ *RspQ;		//应答包接收缓冲队列
     FIFO_SendQ *SendQ;		//发送缓冲队列
     CIntStructMap  SentQ;	//已发送队列,等待应答/重发,滑动窗口
     pthread_t SendThr; 
     pthread_mutex_t  SentQ_Lock;  //已发送队列互斥锁
     pthread_mutex_t  SeqId_Lock;  //流水号互斥锁
	 FileOpr *WrSystemLog;	//写系统日志文件(系统事件/连接事件/异常错误)的对象

	 int  WaitTest;		//已等待ActiveTest的时间
	 /*-----------在配置文件中获取的参数-----------*/
	 char ServiceCode[12];	//CP服务代码(接入号:638805),CGateWay::Console()中已假定其大于1000。
	 char ServiceID[12];	//业务代码,如"MFXX"
	 char ServiceName[17];	//业务名,如"对对配"
	 int  CPID;				//业务所属的CP编号
	 int  InterfaceType;	//CP的接入方式,0-CMPP,1-HTTP,2-数据表(本地业务接入时)
	 char MOTable[20];	//本地业务的MO接口表名
	 char NodeIp[16];	//CP的接入服务器IP,每个ServiceCode只能对应一个IP
	 char Username[16];	//Http连接时的用户名
	 char Secret[20];	//CP的登陆密码
	 int  WantReport;	//是否需要状态报告
	 int  TestTime;		//发送ActiveTest请求的周期(秒)
	 int  RecvQ_Size;	//CP收、发队列大小(缓存数据包的最大数目)
	 int  SendQ_Size;
	 int  SentW_Size;	//CP(已发送)滑动窗口大小
	 char FeeType[3];	//收费类别
	 char FeeCode[7];	//资费代码
	 int  Encoding;		//MO的消息编码
	 int  ShowLog;		//CP的日志显示标识
	 char Seperator[5];	//MO信息内容的分隔符
	 char URL[200];		//HTTP方式的Post路径

};

#endif //_DNNODE_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -