?? datarecovery_impl.h
字號:
// DataRecovery_impl.h// 北京本地數(shù)據(jù)恢復服務接口DataRecovery.idl的實現(xiàn)//#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" //上海數(shù)據(jù)恢復服務的客戶端代理(^)//#include "GZ_DataRecovery.h" //廣州數(shù)據(jù)恢復服務的客戶端代理(^)#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> //異地數(shù)據(jù)分布狀態(tài)管理服務的客戶端代理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; //北京 //當恢復數(shù)據(jù)為日志表時需要用的結構 Records_var m_values; Records_var test_values; IResult_var m_result; char m_MinDate[20]; //Date的長度為20 int m_nInterval; //分割單位為天數(shù) //根據(jù)用戶提交的nFileSize來確定每次返回給用戶的最大紀錄條數(shù) 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; //數(shù)據(jù)恢復線程,主要的恢復過程在線程里面控制 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); //這個函數(shù)可能是用于給 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); //可能是接受當中有問題,中途有問題,取消操作(供外界調(diào)用) 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 + -