Files
autobuild-tools/code/sys_nicmonitor/include/db_com/CRepSet.h
Wei, Jing 5c462e7adb [Issue #2 ] 南瑞郭海龙交接最终版2.0
1.由于郭海龙修改了提供的库,导致增加了大量南瑞的头文件,
  所以新建include目录用于存放所有的南瑞提供的同文件。

2. 修复sys_nicmonitor进程重启后,调用接口告警问题。

3. 增加USER_NUSP宏,用于nusp用户。

4. 由于新增了许多头文件且需交接给郭海龙,所以独立了一版2.0版本以用于区分。

	修改:     code/README
	新文件:   code/dep/42/dotconf#1.0.13-1.pkg.tar.gz
	新文件:   code/dep/42/run.sh
	新文件:   code/dep/90/libdotconf-dev_1.3-0.2_amd64.deb
	新文件:   code/dep/90/libdotconf-dev_1.3-0.2_arm64.deb
	新文件:   code/dep/90/libdotconf0_1.3-0.2_amd64.deb
	新文件:   code/dep/90/libdotconf0_1.3-0.2_arm64.deb
	新文件:   code/dep/90/run.sh
	新文件:   code/dep/libproc_common.so
	新文件:   code/dep/old/libman.so
	新文件:   code/dep/proc_common.cpp
	新文件:   code/sys_nicmonitor-code.tar.gz
	修改:     code/sys_nicmonitor/Makefile
	修改:     code/sys_nicmonitor/README
	新文件:   code/sys_nicmonitor/include/common_types.h
	新文件:   code/sys_nicmonitor/include/d5000_err.h
	新文件:   code/sys_nicmonitor/include/db_api/DeleteRecorder.h
	新文件:   code/sys_nicmonitor/include/db_api/codb_net.h
	新文件:   code/sys_nicmonitor/include/db_api/mc_rtdb_m.h
	新文件:   code/sys_nicmonitor/include/db_api/mc_rtdb_mng.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_apinet.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_apinet_rtdb_key.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_apiop.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_apiop.h.old
	新文件:   code/sys_nicmonitor/include/db_api/odb_app2id.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_autolock.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_baseindex.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_ckeymanager.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_common.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_define.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_double_overflow_hashindex.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_field.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_hashindex.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_hashpk.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_intel_ptr.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_lock.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_net.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_net_m.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_netfactory.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_nooverflow_pk.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_orbmgr.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_profile.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_prv_struct.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_public.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_rtdbbase.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_rtdbfactory.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_rtdbop.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_rtdbtable.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_struct.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_system.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_table.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_tablebase.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_tablemgr.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_tablenet.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_tableop.h
	新文件:   code/sys_nicmonitor/include/db_api/odb_where.h
	新文件:   code/sys_nicmonitor/include/db_api/pub_buf.h
	新文件:   code/sys_nicmonitor/include/db_api/rtdb_graph_name_list.h
	新文件:   code/sys_nicmonitor/include/db_api/server2proto.h
	新文件:   code/sys_nicmonitor/include/db_api/tab2idx.h
	新文件:   code/sys_nicmonitor/include/db_api/vl_get_data.h
	新文件:   code/sys_nicmonitor/include/db_api/vl_struct.h
	新文件:   code/sys_nicmonitor/include/db_api/vl_struct_m.cpp
	新文件:   code/sys_nicmonitor/include/db_api/vl_struct_m.h
	新文件:   code/sys_nicmonitor/include/db_com/CAppNo.h
	新文件:   code/sys_nicmonitor/include/db_com/CCharArray.h
	新文件:   code/sys_nicmonitor/include/db_com/CDataStream.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbCommitClient.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbMonitorClient.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbMonitorLocal.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbMonitorShm.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbRepSet.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbSem.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbSemUse.h
	新文件:   code/sys_nicmonitor/include/db_com/CDbShm.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyCfgLocal.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyCommitClient.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyMonitorClient.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyMonitorLocal.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyMonitorShm.h
	新文件:   code/sys_nicmonitor/include/db_com/CDySem.h
	新文件:   code/sys_nicmonitor/include/db_com/CDySemUse.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyShm.h
	新文件:   code/sys_nicmonitor/include/db_com/CDyTagShmInfo.h
	新文件:   code/sys_nicmonitor/include/db_com/CErrorLog.h
	新文件:   code/sys_nicmonitor/include/db_com/CFindFile.h
	新文件:   code/sys_nicmonitor/include/db_com/CPrecTime.h
	新文件:   code/sys_nicmonitor/include/db_com/CRecordSet.h
	新文件:   code/sys_nicmonitor/include/db_com/CRedisAccess.h
	新文件:   code/sys_nicmonitor/include/db_com/CRepSet.h
	新文件:   code/sys_nicmonitor/include/db_com/CSaveReCommitSql.h
	新文件:   code/sys_nicmonitor/include/db_com/CSqlResultAlign.h
	新文件:   code/sys_nicmonitor/include/db_com/CSqlResultAlignClient.h
	新文件:   code/sys_nicmonitor/include/db_com/CSqlResultAlignClient2.h
	新文件:   code/sys_nicmonitor/include/db_com/DBAccess.h
	新文件:   code/sys_nicmonitor/include/db_com/DBCipher.h
	新文件:   code/sys_nicmonitor/include/db_com/DBConnectPool.h
	新文件:   code/sys_nicmonitor/include/db_com/DbFileNetIf.h
	新文件:   code/sys_nicmonitor/include/db_com/Hbase.h
	新文件:   code/sys_nicmonitor/include/db_com/Hbase_constants.h
	新文件:   code/sys_nicmonitor/include/db_com/Hbase_types.h
	新文件:   code/sys_nicmonitor/include/db_com/MyMutex.h
	新文件:   code/sys_nicmonitor/include/db_com/cross_region_sync_client.h
	新文件:   code/sys_nicmonitor/include/db_com/database_rep_m.h
	新文件:   code/sys_nicmonitor/include/db_com/db_commit_define.h
	新文件:   code/sys_nicmonitor/include/db_com/db_commit_m.h
	新文件:   code/sys_nicmonitor/include/db_com/db_error_define.h
	新文件:   code/sys_nicmonitor/include/db_com/db_extern.h
	新文件:   code/sys_nicmonitor/include/db_com/db_global.h
	新文件:   code/sys_nicmonitor/include/db_com/db_micro_define.h
	新文件:   code/sys_nicmonitor/include/db_com/db_monitor_define.h
	新文件:   code/sys_nicmonitor/include/db_com/db_monitor_define.h.old
	新文件:   code/sys_nicmonitor/include/db_com/db_monitor_extern.h
	新文件:   code/sys_nicmonitor/include/db_com/db_monitor_global.h
	新文件:   code/sys_nicmonitor/include/db_com/db_monitor_m.h
	新文件:   code/sys_nicmonitor/include/db_com/db_monitor_m.h.old
	新文件:   code/sys_nicmonitor/include/db_com/db_rep_lib_define.h
	新文件:   code/sys_nicmonitor/include/db_com/db_stat_m.h
	新文件:   code/sys_nicmonitor/include/db_com/db_stat_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/ds_log.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_commit_m.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_monitor_define.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_monitor_m.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_public_m.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_sample_define_m.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_sample_define_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_stat_m.h
	新文件:   code/sys_nicmonitor/include/db_com/dy_stat_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/hiredis.h
	新文件:   code/sys_nicmonitor/include/db_com/interpreter_define.h
	新文件:   code/sys_nicmonitor/include/db_com/interpreter_struct.h
	新文件:   code/sys_nicmonitor/include/db_com/lexical_anls.h
	新文件:   code/sys_nicmonitor/include/db_com/public_m.h
	新文件:   code/sys_nicmonitor/include/db_com/query_sample_m.h
	新文件:   code/sys_nicmonitor/include/db_com/query_sample_pi.h
	新文件:   code/sys_nicmonitor/include/db_com/query_sample_pi_m.h
	新文件:   code/sys_nicmonitor/include/db_com/query_sample_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/query_sample_service_pi_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/query_stat_m.h
	新文件:   code/sys_nicmonitor/include/db_com/query_stat_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/rdb_commit_client.h
	新文件:   code/sys_nicmonitor/include/db_com/rdb_commit_m.h
	新文件:   code/sys_nicmonitor/include/db_com/rdb_define.pb.h
	新文件:   code/sys_nicmonitor/include/db_com/read.h
	新文件:   code/sys_nicmonitor/include/db_com/rtdbkey_defs.h
	新文件:   code/sys_nicmonitor/include/db_com/sample_data_client_base.h
	新文件:   code/sys_nicmonitor/include/db_com/sample_data_m.h
	新文件:   code/sys_nicmonitor/include/db_com/sample_define_m.h
	新文件:   code/sys_nicmonitor/include/db_com/sample_define_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/sample_modify_m.h
	新文件:   code/sys_nicmonitor/include/db_com/sample_modify_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/sds.h
	新文件:   code/sys_nicmonitor/include/db_com/server_define.h
	新文件:   code/sys_nicmonitor/include/db_com/sheetdataclient.h
	新文件:   code/sys_nicmonitor/include/db_com/sheetdataclient.h0604
	新文件:   code/sys_nicmonitor/include/db_com/sql_sp_client_base.h
	新文件:   code/sys_nicmonitor/include/db_com/sql_sp_define.h
	新文件:   code/sys_nicmonitor/include/db_com/sql_sp_m.h
	新文件:   code/sys_nicmonitor/include/db_com/sql_sp_send_client_base.h
	新文件:   code/sys_nicmonitor/include/db_com/sql_syntax_anls.h
	新文件:   code/sys_nicmonitor/include/db_com/sql_to_cime.h
	新文件:   code/sys_nicmonitor/include/db_com/sqlite_access.h
	新文件:   code/sys_nicmonitor/include/db_com/sqlite_server_client.h
	新文件:   code/sys_nicmonitor/include/db_com/sqlite_srv_m.h
	新文件:   code/sys_nicmonitor/include/db_com/store_access_client.h
	新文件:   code/sys_nicmonitor/include/db_com/trigger_sample_m.h
	新文件:   code/sys_nicmonitor/include/db_com/trigger_sample_service_interface.h
	新文件:   code/sys_nicmonitor/include/db_com/wholepubtools.h
	新文件:   code/sys_nicmonitor/include/db_com/wholesampledata.h
	新文件:   code/sys_nicmonitor/include/db_com/wholesqlsp.h
	新文件:   code/sys_nicmonitor/include/log_api.h
	新文件:   code/sys_nicmonitor/include/log_define.h
	新文件:   code/sys_nicmonitor/include/logclient.h
	新文件:   code/sys_nicmonitor/include/port_def.h
	新文件:   code/sys_nicmonitor/include/proc_common.h
	新文件:   code/sys_nicmonitor/include/scn_common.h
	新文件:   code/sys_nicmonitor/include/sysadm/proc_define.h
	新文件:   code/sys_nicmonitor/include/sysadm/scn_define.h
	新文件:   code/sys_nicmonitor/include/system.h
	修改:     code/sys_nicmonitor/mnic.c
	修改:     code/sys_nicmonitor/nicinfo_shm.c
	修改:     code/sys_nicmonitor/test.c
	修改:     code/sys_nicmonitor/version.h
	新文件:   code/test/test_nic
	新文件:   code/test/test_nic.cpp
	新文件:   packages/sys_nicmonitor-2.0-linx90-aarch64-bin-d5000.tar.gz
	新文件:   packages/sys_nicmonitor-2.0-linx90-aarch64-bin-nusp.tar.gz
	新文件:   packages/sys_nicmonitor-2.0-linx90-x86_64-bin-d5000.tar.gz
	新文件:   packages/sys_nicmonitor-2.0-linx90-x86_64-bin-nusp.tar.gz
	重命名:   sys_nicmonitor-arm-bin.tar.gz -> packages/sys_nicmonitor-arm-bin.tar.gz
	重命名:   sys_nicmonitor-arm.tar.gz -> packages/sys_nicmonitor-arm.tar.gz
	新文件:   packages/sys_nicmonitor-mips64-bin.tar.gz
	新文件:   packages/sys_nicmonitor-mips64.tar.gz

Signed-off-by: Wei, Jing <jwei@linx-info.com>
2020-10-22 19:15:38 +08:00

406 lines
15 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*************************************************
Copyright (C), 1988-1999, Nari Tech. Co., Ltd.
File name: CRepSet.h
Author: LH
Version: 1.0
Date: 2011.8.24
Description: 复制动态库头文件
Function List:
1.int InitReplicateSet(void); 初始化复制动态库
2.int ReplicateSql(const vector<string> &sqlVec); 复制sql请求至同步文件
Datetime Action Author Modify
-------------------------------------------------------------------
2011.8.24 Creation LH
2014.03.25 add wp
目前版本具有两套功能, 每套功能 的接口不能混用:
1.复制sql请求至同步文件(原有功能)
相关接口:
int InitReplicateSet(void);
int ReplicateSql(const vector<string> &sqlVec);
int WriteRepSql(const vector<string> &sql_vector);
int LogRepWrite(const string remote_db_name, const string &err_msg, int log_flag = 0);
int MoveInFileToOutFile(string inFilePath, string outFilePath, string remote_db_name);
int MoveFileToCommitDir(string &err_msg);
int GetAllDbPubPath(void);
int CheckCommitSysFile(string remote_db_name, string uncommit_file_path, vector<string> &commit_sql_vec);
int isAutoRep(void);
2.记录复制sql、回滚信息、回滚触发信息至同一个同步文件(新增功能) 可以多线程调用。
调用顺序: 先调用InitReplicateSet初始化GetRepFileName获取文件名然后就可以调用函数写入RepSql、RollbackInfo和RollbackTri
相关接口:
int InitReplicateSet(int thread_id);
int GetRepFileName(const string keyid, const string user_name,string & str_filename);
int WriteRepSqlByFilename(const string rep_file_name, const vector<string> &sql_vector);
int WriteRollbackInfoByFilename(const string rep_file_name, const vector<string> &sql_vector);
int WriteRollbackTriByFilename(const string rep_file_name, const vector<string> &sql_vector);
int WriteCommonInfoByFilename(const string rep_file_name, const vector<string> &sql_vector);
int WriteOrigStatusByFilename(const string rep_file_name, const string &sql_string);
int WriteModifiedStatusByFilename(const string rep_file_name, const string &sql_string);
int MoveFileToCommitDir (vector<string> file_name_vec, string &err_msg);
int MoveInFileToOutFileByFilename(string file_name);//WriteRepSqlByFilename调用此接口来移动文件到out目录中
int ReadRepSqlByFilename( const string file_name, vector<string> &str_sql_vec);
int ReadRollbackInfoByFilename( const string file_name, vector<string> &rollback_info_vec);
int ReadRollbackTriByFilename( const string file_name, vector<string> &rollback_tri_vec);
int ReadCommonInfoByFilename( const string file_name, vector<string> &common_vec);
int ReadOrigStatusByFilename( const string file_name, string &orig_string;
int ReadModifiedStatusByFilename( const string file_name, string &modify_string);
int GetAllDbPubPath(void);
int GetAutoRepFlag(void);
int CheckCommitSysFile(string remote_db_name, string uncommit_file_path, vector<string> &commit_sql_vec);
int LogRepWrite(const string dir_name, const string &err_msg, int log_flag, int thread_id);
int WriteByFilenameAndSeparator(const string file_name,const string dir_name, const string separator_begin, const string separator_end, const vector<string> &sql_vector);
int isAutoRep(void);
*************************************************/
#ifndef _CREPSET_H
#define _CREPSET_H
#ifdef _WINDOWS64
#ifdef DB_REP_LIB_EXPORTS
#define DB_REP_LIB_API __declspec(dllexport)
#else
#define DB_REP_LIB_API __declspec(dllimport)
#endif
#else
#define DB_REP_LIB_API
#endif
#include <algorithm>
#include <numeric>
#include <map>
#include <vector>
#include "paramanage.h"
#include "system.h"
#include "db_com/wholepubtools.h"
#include "db_com/server_define.h"
#define ROLLBACK_MAXLINE 8000
const int MAX_PARA_NAME = 64;
const int MAX_FILE_NAME = 128;
const string FILE_SEPARATOR = "\n_NARI_D5000_NORMAL_SQL_\n";
#ifndef _WINDOWS64
const string FILE_END = "\n_FILE_END_\n";
#else
const string _FILE_END_ = "\n_FILE_END_\n";
#define FILE_END _FILE_END_;
#endif
const string REPSQL = "<RepSQL>";
const string REPSQL_END = "</RepSQL>";
const string ROLLBACKINFO = "<RollbackInfo>";
const string ROLLBACKINFO_END = "</RollbackInfo>";
const string ROLLBACKTRI = "<RollbackTriggedInfo>";
const string ROLLBACKTRI_END = "</RollbackTriggedInfo>";
const string COMMONINFO = "<CommonInfo>";
const string COMMONINFO_END = "</CommonInfo>";
const string ORIGINALSTATUS = "<OriginalStatus>";
const string ORIGINALSTATUS_END = "</OriginalStatus>";
const string MODIFIEDSTATUS = "<ModifiedStatus>";
const string MODIFIEDSTATUS_END = "</ModifiedStatus>";
const string ROLLBACKSQL = "[ROLLBACKSQL]";
const string COMMIT_DIR = "commit";
const string INTERFACE_ONE = "INTERFACE_ONE"; //第一套接口
const string INTERFACE_TWO = "INTERFACE_TWO"; //第二套接口
const int SCAN_DIR_NUM_ONE_TIME = 60;
const int SCAN_FILE_NUM_ONE_TIME = 36000;
class DB_REP_LIB_API CRepSet
{
public:
CRepSet();
~CRepSet();
public:
/* 初始化复制动态库*/
int InitReplicateSet (void);
/*************************************************
Function: InitReplicateSet(int)
Description: 初始化复制动态库
Calls: GetAllDbPubPath
Input: void
Output: void
Return: 0:成功
-1:失败
*************************************************/
int InitReplicateSet (int thread_id);
/*************************************************
Function: GetRepFileName
Description: 获取一个带本地时标的文件名(<128字符)。以便后续向此文件中写入复制内容。
Input: str_filename: 文件名的字符数组名
keyid: 设备keyid
user_name: 用户名
op_type: 操作类型MODIFY_OP_INSERT, MODIFY_OP_DELETE, MODIFY_OP_UPDATE, MODIFY_OP_DELALL
Output: 将生成的文件名填充到输入参数str_filename中
Return: 0:成功 -1:gettimeofday调用失败 -2: localtime_r调用失败
*************************************************/
int GetRepFileName (const string keyid, const string user_name, int op_type,
string & str_filename);
/* sql请求复制至文件中
* 返回值1 成功
* -1 失败
* */
int ReplicateSql (const vector<string> &sqlVec);
/*************************************************
Function: WriteRepSqlByFilename
Description: 写入复制sql至指定的rep_file_name同步文件
Input: const vector<string> &sqlVec const string rep_file_name文件名
Output: void
Return: 0:成功
-1:失败
*************************************************/
int WriteRepSqlByFilename (const string rep_file_name,
const vector<string> &sql_vector);
/*************************************************
Function: WriteRollbackInfoByFilename
Description: 写入回滚信息至指定的rep_file_name同步文件
Input: const vector<string> &sqlVec const string rep_file_name文件名
Output: void
Return: 0:成功
-1:失败
*************************************************/
int WriteRollbackInfoByFilename (const string rep_file_name,
const vector<string> &sql_vector);
/*************************************************
Function: WriteRollbackTriByFilename
Description: 写入回滚触发信息至指定的rep_file_name同步文件
Input: const vector<string> &sqlVec const string rep_file_name文件名
Output: void
Return: 0:成功
-1:失败
*************************************************/
int WriteRollbackTriByFilename (const string rep_file_name,
const vector<string> &sql_vector);
/*************************************************
Function: WriteCommonInfoByFilename
Description: 写入回滚触发信息至指定的rep_file_name同步文件
若为手动则写入manual目录中
Input: const string rep_file_name文件名
sql_vector为写入的内容: 回滚信息
Output: void
Return: 0:成功
-1:失败
*************************************************/
int WriteCommonInfoByFilename (const string rep_file_name,
const vector<string> &sql_vector);
/*************************************************
Function: WriteOrigStatusByFilename
Description: 写入原始信息至指定的rep_file_name同步文件
若为手动则写入manual目录中
Input: const string rep_file_name文件名
sql_string为写入的内容: 原始信息
Output: void
Return: 0:成功
-1:失败
*************************************************/
int WriteOrigStatusByFilename (const string rep_file_name,
const string &sql_string);
/*************************************************
Function: WriteModifiedStatusByFilename
Description: 写入修改后的信息至指定的rep_file_name同步文件
若为手动则写入manual目录中
Input: const string rep_file_name文件名
sql_string为写入的内容: 修改后的信息
Output: void
Return: 0:成功
-1:失败
*************************************************/
int WriteModifiedStatusByFilename (const string rep_file_name,
const string &sql_string);
/*将SQL、commit.sys等类型文件转移至同步目录中
* 返回值1 成功
* -1 失败
* */
int MoveFileToCommitDir (string &err_msg);
int MoveFileToCommitDir (vector<string> file_name_vec, string &err_msg);
//将图形文件转移至图形专用目录中
// int MoveGraphFileToCommitDir(vector<string> file_path_vec, string &err_msg);
/*************************************************
Function: MoveInFileToOutFileByFilename
Description: 根据文件名将in目录中同步文件移至out目录中. 根据FileName移动所有远端数据名下的in文件
移动之前,在文件中加入文件结束符,表示其文件完整性
Input: string FileName
Output: void
Return: 0:成功
-1:失败
*************************************************/
int MoveInFileToOutFileByFilename (string file_name);
/*************************************************
Function: ReadRepSqlFromFile
Description: 1.根据file_name,获取文件下所有sql
Calls:
Input: 1.file_name
Output: 1.vector<string> str_sql_vec
Return: 0:成功
-1:失败
*************************************************/
int ReadRepSqlByFilename (const string file_name, vector<string> &str_sql_vec);
/*************************************************
Function: ReadRollbackInfoByFilename
Description: 1.根据全路径文件名file_name,获取文件下回滚信息
Calls:
Input: 1.file_name
Output: 1.vector<string> rollback_info_vec回滚信息
Return: 0:成功 -1:失败
*************************************************/
int ReadRollbackInfoByFilename (const string file_name,
vector<string> &rollback_info_vec);
/*************************************************
Function: ReadRollbackTriFromFile
Description: 1.根据全路径文件名file_name,获取文件下回滚触发信息
Calls:
Input: 1.file_name
Output: 1.vector<string> rollback_tri_vec回滚信息
Return: 0:成功 -1:失败
*************************************************/
int ReadRollbackTriByFilename (const string file_name,
vector<string> &rollback_tri_vec);
/*************************************************
Function: ReadCommonInfoByFilename
Description: 1.根据全路径文件名file_name,获取文件下回滚信息
Input: 1.file_name
Output: 1.vector<string> rollback_tri_vec回滚信息
Return: 0:成功
-1:失败
*************************************************/
int ReadCommonInfoByFilename (const string file_name,
vector<string> &common_vec);
/*************************************************
Function: ReadOrigStatusByFilename
Description: 1.根据全路径文件名file_name,获取文件下原始信息
Input: 1.file_name
Output: 1.string orig_string原始信息
Return: 0:成功
-1:失败
*************************************************/
int ReadOrigStatusByFilename (const string file_name, string &orig_string);
/*************************************************
Function: ReadModifiedStatusByFilename
Description: 1.根据全路径文件名file_name,获取文件下修改后的信息
Input: 1.file_name
Output: 1.string modify_string修改后的信息
Return: 0:成功
-1:失败
*************************************************/
int ReadModifiedStatusByFilename (const string file_name,
string &modify_string);
/*************************************************
Function: isAutoRep
Description: 获取同步方式:手动/自动
Input: void
Output: int
Return: >=0:成功. =0手动.=1自动
*************************************************/
int isAutoRep (void);
private:
bool m_isRepFlag;
bool m_isAutoRep;
int m_nPid;
int m_nThreadid;
string m_PubPath;
string m_InterfaceIdentity; //标识是使用的哪一组功能接口:INTERFACE_ONE 还是INTERFACE_TWO. 调用InitReplicateSet时确定m_InterfaceIdentity的值
//使用不同组的接口会报错。
vector<string> m_DbNameVec; //所有需要同步的数据库名
map<string, string> m_remote_in_path_map;
map<string, string> m_remote_out_path_map;
map<string, string> m_remote_backup_path_map;
map<string, string> m_remote_base_path_map;
private:
/*获取所有同步文件存放路径*/
int GetAllDbPubPath (void);
/*************************************************
Function: GetAutoRepFlag
Description: 根据db_rep.sys文件读取是否自动[auto_replicate]is_auto_replicate=1的部分
Calls: CFindFile::CheckPath()
Input: void
Output: void
Return: 1:成功
-1:失败
*************************************************/
int GetAutoRepFlag (void);
/*获取部分复制数据库信息*/
int GetAllPartlyRepInfo (void);
int CheckCommitSysFile (string remote_db_name, string uncommit_file_path,
vector<string> &commit_sql_vec);
string IntToStr (int value);
/*写同步文件*/
int WriteRepSql (const vector<string> &sql_vector);
/*记录日志函数,默认log_flag为0,记录生成sql文件make日志*/
int LogRepWrite (const string remote_db_name, const string &err_msg,
int log_flag = 0);
/*************************************************
Function: LogRepWrite(const string dir_name, const string &err_msg, int log_flag, int thread_id)
Description: 记录日志函数,默认log_flag为0,记录生成sql文件make日志.
多线程版本,将不同线程的日志写入不同的文件中
Calls: CFindFile findfile;
Input: const string &err_msg 写入的信息
const string dir_name 目标目录名
int log_flag,
int thread_id 传入的线程号
Output: void
Return: 1:成功
-1:失败
*************************************************/
int LogRepWrite (const string dir_name, const string &err_msg, int log_flag,
int thread_id);
/*将同步文件从in 移送至out目录中*/
int MoveInFileToOutFile (string inFilePath, string outFilePath,
string remote_db_name);
/*************************************************
Function: WriteByFilenameAndSeprator
Description: 写入信息至指定的file_name文件
Input: const vector<string> &sqlVec const string file_name文件名
const string dir_name文件所在远端数据库名: 如huazhong . 当m_isAutoRep == false时参数需要为manual
const string separator_begin, const string separator_end 开始和结束的分隔符
Output: void
Return: 1:成功
-1:失败
*************************************************/
int WriteByFilenameAndSeparator (const string file_name, const string dir_name,
const string separator_begin, const string separator_end,
const vector<string> &sql_vector);
};
#endif