📄 dbinterface.hpp
字号:
#ifndef _DB_INTERFACE_H_
#define _DB_INTERFACE_H_
#define _MULTITHREAD_SUPPORT_
#undef _MULTITHREAD_SUPPORT_
#ifdef _MULTITHREAD_SUPPORT_
#include <pthread.h>
#include <asm/atomic.h>
#include <string.h>
#endif
typedef struct RealTimeStatus
{
char UpdateTime[32];
char NEname[64];
int NEid;
int NEavailability;
float NEcpu;
float NEram;
float NEhd;
}RealTimeStatus;
typedef struct AlarmsTable
{
char DateTime[32];
struct AlarmCode
{
/* 告警分类*/
unsigned long type : 4;
/* 告警代码*/
unsigned long code : 8;
/*告警级别*/
unsigned long level : 2;
/*告警设备名称*/
unsigned long nename : 4;
/* 告警设备编号*/
unsigned long neid : 4;
/*导致告警具体板卡、端口等*/
unsigned long nesub : 8;
/* 备用*/
unsigned long spare : 2;
}AlarmCode;
char Info[256];
}AlarmsTable;
typedef struct SendStrategy
{
int InfoType;
char AlarmMode;
int DelayTime;
int DelayCount;
char MSISDN_AlarmList[128];
}SendStrategy;
typedef struct SMSendRecord
{
int AlarmCode;
char SendTime[32];
int InfoType;
char Info[256];
}SMSendRecord;
typedef struct GSMOntime
{
char ACCOUNT[30]; /***--0,计费号码****/
char SERVICEID[30]; /***---1,接入号****/
char CALLED[250]; /***----2,被叫号****/
char CONTENT[250]; /***----3,内容***/
char SRVPARAM[250]; /***---4,服务参数****/
char SENDTIME[250]; /***- --5,发送时间****/
char CURSRVDT[19]; /***----6,本次服务时间****/
char STARTDT[19]; /***----7,服务起始时间****/
char STOPDT[19]; /***----8,服务截止时间****/
char REGISTDT[19]; /**--9,登记时间***/
int REGIDX; /***--********/
int CONTENTTYPE; /***--11,内容类型****/
int CALLEDTYPE; /***--12,被叫类型****/
int SRVTIMES; /***--13,当前服务次数***/
int TIMESLIMIT; /***--14,服务次数限制***/
int RESENDCOUNT; /***--15,失败重发次数限制****/
char REGSRC[30]; /***--16,登记来源***/
char PARAM1[80]; /***--17,参数1***/
char PARAM2[160]; /***--18,参数2****/
char PARAM3[250]; /***--19,参数3****/
}GSMOntime;
typedef struct GSMRECV
{
char wdt[20]; //-- 0,插入时间
char gwdt[20]; //-- 1,网关启动时间
int port_com; //-- 接收端口(Modem)
int mtype; //-- 信息类型
int portr; //-- 接收端口号
char dtr[20]; //-- 接收时间
char tel[22]; //-- 源手机号码
char ser[22]; //-- 序列号
int count_snd; //-- 已发送次数
int ports; //-- 提交端口
char act[22]; //-- 发送者帐号信息
int stype; //-- 发送类型:0-普通信息,1-PUSH信息
char sser[22]; //-- 发送序列号
char mess[200]; //-- 接收内容
int test; //-- 测试标记,0-正常,1-测试
}*LPGSMRECV,GSMRECV;
#ifdef __cplusplus
extern "C"{
#endif
/*
* function : 建立数据库连接
* uname : 用户名
* pwd : 密码
* srv : 服务器名
* return value: >0 调用成功,返回值为为该连接分配的ID值;1 调用失败。getLastError() 获取详细的失败原因。
* note :
*/
int connectDb(char *uname, char *pwd, char *srv);
/*
* function : 断开连接
* id : id = 0 断开所以连接;否则断开指定连接(id为调用connectDb的返回值)
* return value: 0调用成功;1 调用失败。getLastError() 获取详细的失败原因。
* note :
*/
int disconnectDb(int id);
/*
* function : 向TBL_ATDR表中插入一条记录
* pATDR : 指向stACDR结构的指针,必须是一个有效指针。
* id : id = 0 在当前连接上执行操作;否则在指定的连接上执行操作(id为调用connectDb的返回值)
* return value: 0调用成功;1 调用失败。getLastError() 获取详细的失败原因。
* NOTE : 该函数是不可重入的,不能在多线程中调用。TODO: 多线程支持
*/
/*
* function : 向TBL_ACDR表中插入一条记录
* pACDR : 指向stACDR结构的指针,必须是一个有效指针。
* return value: 0调用成功;1 调用失败。getLastError() 获取详细的失败原因。
* NOTE : 该函数是不可重入的,不能在多线程中调用。TODO: 多线程支持
*/
/*
* function : 向TBL_EventIndex表中插入一条记录
* pEvt : 指向stEvtIndex结构的指针,必须是一个有效指针。
* return value: 0调用成功;1 调用失败。getLastError() 获取详细的失败原因。
* NOTE : 该函数是不可重入的,不能在多线程中调用。TODO: 多线程支持
*/
/*
* function : 向TBL_SMDR表中插入一条记录
* pSMDR : 指向stASMDR结构的指针,必须是一个有效指针。
* id : id = 0 在当前连接上执行操作;否则在指定的连接上执行操作(id为调用connectDb的返回值)
* return value: 0调用成功;1 调用失败。getLastError() 获取详细的失败原因。
* NOTE : 该函数是不可重入的,不能在多线程中调用。TODO: 多线程支持
*/
/*
* function : 读取TBL_MonitorCondition表
* pCnd : 指向stMonitorCondition结构的指针,必须是一个有效指针,如果函数调用成功,则该指针
* 指向的结构用从数据库中读取到的值填充。
* id : id = 0 在当前连接上执行操作;否则在指定的连接上执行操作(id为调用connectDb的返回值)
* isFromBegin : 非0表示重新从头开始读取记录;0表示接着上次继续读取下一条记录。
* return value: < 0 调用失败;0 调用成功,但没有记录返回;1 调用成功,有记录返回
* note : 该函数是不可重入的,不能用于多线程调用。TODO: 多线程支持
* example :
*
* int ret = readMonitorCndtn(pCnd, 1);
* if(ret < 0)
* {
* handle_error(); // 出错处理
* }
* else if(ret == 0)
* {
* return; //没有记录返回
* }
* else if(ret > 0)
* {
* handle_data(); // 处理记录
* while(1)
* {
* ret = readMonitorCndtn(pCnd, 0); // 读取下一条记录
* if(ret < 0)
* {
* handle_error();
* break;
* }
* else if(ret == 0)
* {
* break; //
* }
* else if(ret > 0)
* {
* handle_data();
* }
* }
* }
*/
/**********************************************/
int readAlarmsTable(AlarmsTable* pNums, int isFromBegin, int id);
int ReadSMSendStrategy(SendStrategy* pNums, int isFromBegin, int id);
int ReadSMSendRecord(SMSendRecord* pNums, int isFromBegin, int id);
int WriteSendRecord(SMSendRecord* Record, int id);
int GetAlarmsInfo(SendStrategy* pNums, int isFromBegin, int id);
//写易新数据库,发短信
int SendGSMOntime(GSMOntime* pOntime, int id);
int ReadGSMRecvTable(LPGSMRECV pNums, int isFromBegin, int id);
char* getLastError();
void CommitWork();
int WriteTest(AlarmsTable *test1);
int WriteStrategyTable(void *test1);
int ReadGSMOntime(GSMOntime* pOntime, int isFromBegin,int id);
int WriteGSMRecvTable(LPGSMRECV pNums);
int DeleteTable();
int WriteRealtimeStatus(RealTimeStatus * pTimeStatus);
#ifdef __cplusplus
};
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -