📄 datarecovery_impl.h
字号:
// DataRecovery_impl.h// 北京本地数据恢复服务接口DataRecovery.idl的实现//#ifndef __DataRecovery_impl_h__#define __DataRecovery_impl_h__#include <Thread.h>#include <STAR/CORBA.h>#include <STAR/Afls.h>#include <MTL/MTL.h>#include "DataRecovery_skel.h"#include "DataRecovery.h"#include "TimeOutThread.h"#include <checkConfig.h>//#include "SH_DataRecovery.h" //上海数据恢复服务的客户端代理(^)//#include "GZ_DataRecovery.h" //广州数据恢复服务的客户端代理(^)#include "RecoveryThread.h"#include <predefine.h>#include <TimeInterval.h>#include <queryserver.h>#include <divideserver.h>//用于获得表的信息#include <config.h>#include <tableinfo.h>#include <register.h>//用于取得文件的大小#include<sys/stat.h>#include<unistd.h>#include <CDataDistributionManager.h> //异地数据分布状态管理服务的客户端代理class CRecoveryThread; //为了解决头文件相互包含问题而做的typedef ThreadHandleT<CRecoveryThread> RecoveryThreadHandle;class DataRecovery_impl:public MTLMonitor, virtual public POA_DataRecovery, virtual public PortableServer::RefCountServantBase{ DataRecovery_impl(const DataRecovery_impl&); void operator=(const DataRecovery_impl&); //PortableServer::POA_var poa_; //poa,用于注销对象 PortableServer::POA_var m_poa; IQueryServer_var m_SServer; IDivideServer_var m_DivServer; char * m_AflsConfig; CORBA::ORB_var m_orb; //CConfCheck AflsConfCheck; CORBA::Object_var aflsobj; Afls_var afls; CConfig m_config; CDataDistributionManager* m_pDdmServer; char m_blockId [DXX_BLOCK_ID_LENGTH]; //char* m_beginTime; //char* m_endTime; TimeInterval m_time; char m_strProvinceCode[ MAX_PROVINCE_ID_STR_LENGTH ]; char m_TableName[ MAX_TABLE_NAME_LENGTH ]; char m_strStatement[ MAX_STATEMENT_LEN ]; int my_id; //北京 //当恢复数据为日志表时需要用的结构 Records_var m_values; Records_var test_values; IResult_var m_result; char m_MinDate[20]; //Date的长度为20 int m_nInterval; //分割单位为天数 //根据用户提交的nFileSize来确定每次返回给用户的最大纪录条数 int m_RecordsNum; int m_DXX_TABLE[25]; int m_nDXX_TABLE_FIELD; int m_nFieldCount; int m_nSDataLen; int m_nTableType; //COMMON_DXXs m_ComDxx; VDZFX_DXXs m_DzfxDxx; VDZCT_DXXs m_DzctDxx; VDZFD_DXXs m_DzfdDxx; VDZJS_DXXs m_DzjsDxx; VNRCT_DXXs m_NrctDxx; VNRFD_DXXs m_NrfdDxx; VNRJC_DXXs m_NrjcDxx; VNRJS_DXXs m_NrjsDxx; VJM_DXXs m_JmDxx; VBF_DXXs m_BfDxx; //数据恢复线程,主要的恢复过程在线程里面控制 RecoveryThreadHandle m_pRecoveryThread; int nFormSelectStatement(const char* blockId, const TimeInterval timeInter, const char* strProvinceCode, const char* TableName); int nInitORB(); int nLoadIn(); //超时更新最后的操作时间 void UpdateTime(); //时间 time_t last_int; //超时线程 TimeOutThreadHandle m_TimeThread; //获得最近一次操作的时间 int nGetLastTime(); //返回用户id //const char* getUserID(); //超时设置时间 CORBA::Short m_maxIdleTime; //CGZ_DataRecovery * m_pGZDataRecovery; //CSH_DataRecovery * m_pSHDataRecovery; public: DataRecovery_impl(PortableServer::POA_ptr poa, TimeOutThreadHandle ttTimeThread, CORBA::Short timeOut); ~DataRecovery_impl(); virtual PortableServer::POA_ptr _default_POA(); CORBA::Short loseData(const char* blockId, const char* beginTime, const char* endTime, const char* strProvinceCode, const char* TableName)throw(CORBA::SystemException); CORBA::Short nBeginGetData(const char* blockId, const char* beginTime, const char* endTime, const char* strProvinceCode, const char* strTableName, const char* strFileName, const char* strPathName, CORBA::Short nFileSize, CORBA::Short timeout, CORBA::Short nTableType, CORBA::Long_out lRealFileSize, CORBA::Short_out nExpdTimes)throw(CORBA::SystemException); //这个函数可能是用于给 CORBA::Short nGetNextData(Records_out values)throw(CORBA::SystemException); // // Operation declare nGetNextDataTJ // virtual CORBA::Short nGetNextDataTJ(CORBA::Short times, const char* TableName) throw(CORBA::SystemException); //可能是接受当中有问题,中途有问题,取消操作(供外界调用) CORBA::Short nCancel()throw(CORBA::SystemException); // // Operation declare nTableType // virtual CORBA::Short nTableType(const char* strTableName) throw(CORBA::SystemException); char* strErrorMessage(CORBA::Short nErrorId) throw(CORBA::SystemException); // // Operation declare transfer // virtual CORBA::Short transfer(DataRecovery::RECOVERED_DATA& R_Data) throw(CORBA::SystemException); float fEstimateFileSize(const char* strTableName); //是否超时 boolean isTimeOut(time_t curr_int); //释放结果集对象 virtual void destroy() throw(CORBA::SystemException); public: int nRecoveryProcess(); int nNeedRecovery(); int nRefuse();};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -