Files
autobuild-tools/code/sys_nicmonitor/include/db_api/odb_struct.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

459 lines
11 KiB
C++
Raw Blame History

#ifndef __ODB_STRUCT_H__
#define __ODB_STRUCT_H__
#ifndef _WINDOWS64
#include <sys/mman.h>
#endif
#include <map>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include "db_api/odb_define.h"
#include "common_types.h"
#include "db_com/rtdbkey_defs.h"
////////////////////////////////////////////////////////
struct SCENARIO_PARA
{
std::string scenario;
unsigned int scenario_id;//note: scenario_id is not used in comparasion, to avoid inconsistent with scenario
unsigned int scenario_inst;
std::string sub_scenario;
unsigned int sub_scenario_id;//note: sub_scenario_id is not used in comparasion, to avoid inconsistent with sub_scenario
unsigned int sub_scenario_inst;
public:
SCENARIO_PARA& operator=(const SCENARIO_PARA& _right);
bool operator==(const SCENARIO_PARA& _right) const;
bool operator<(const SCENARIO_PARA& _right) const;
bool operator<=(const SCENARIO_PARA& _right) const;
bool operator>(const SCENARIO_PARA& _right) const;
bool operator>=(const SCENARIO_PARA& _right) const;
std::string to_string() const;
};
#ifndef _BIGENDIAN
struct KEY_STRU
{
int key;
short field_id;
short table_no;
};
struct KEY_STRU_AREA
{
int key:24;
int area:8;
short field_id;
short table_no;
};
#else
struct KEY_STRU
{
short table_no;
short field_id;
int key;
};
struct KEY_STRU_AREA
{
short table_no;
short field_id;
int area:8;
int key:24;
};
#endif
struct SCENARIO_ID_INFO
{
unsigned int scenario_id;
unsigned int scenario_inst;
unsigned int sub_scenario_id;
unsigned int sub_scenario_inst;
public:
//struct SCENARIO_ID_INFO():scenario_id(0),scenario_inst(0),sub_scenario_id(0),sub_scenario_inst(0){}
//SCENARIO_PARA& operator=(const SCENARIO_ID_INFO& _right);
bool operator==(const SCENARIO_ID_INFO& _right) const;
bool operator<(const SCENARIO_ID_INFO& _right) const;
bool operator<=(const SCENARIO_ID_INFO& _right) const;
bool operator>(const SCENARIO_ID_INFO& _right) const;
bool operator>=(const SCENARIO_ID_INFO& _right) const;
bool operator!=(const SCENARIO_ID_INFO& _right) const;
std::string to_string() const;
std::string FormCommonSqlStringID() const;
};
typedef cmnInt64 KEY_ID_STRU;
typedef cmnUint32 TABLE_NO_T;
typedef cmnUint32 COLUMN_NO_T;
typedef cmnUint64 ARA_SER_NO_T;
struct RTDB_KEY_STRU
{
cmnUint64 key_id1; //indicate table_id
cmnUint64 key_id2; //indicate area_id_serial_no && column_no(4)
//Constructor
RTDB_KEY_STRU() : key_id1(0), key_id2(0) { }
RTDB_KEY_STRU(const TABLE_NO_T table_no, const ARA_SER_NO_T area_serial_no, const COLUMN_NO_T column_no = 0);
RTDB_KEY_STRU(const std::string &stringid);
//creator
//RTDB_KEY_STRU(){key_id1=0;key_id2=0;}
inline void create_key(const TABLE_NO_T table_no, const ARA_SER_NO_T area_serial_no, const COLUMN_NO_T column_no = 0);
void create_key(const std::string &stringid); //<2F><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD>̫<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>
//operator
bool operator==(const RTDB_KEY_STRU &right) const;
bool operator!=(const RTDB_KEY_STRU &right) const;
bool operator>(const RTDB_KEY_STRU &right) const;
bool operator<(const RTDB_KEY_STRU &right) const;
bool operator<=(const RTDB_KEY_STRU &right) const;
bool operator>=(const RTDB_KEY_STRU &right) const;
RTDB_KEY_STRU& operator=(const RTDB_KEY_STRU &right);
inline bool is_null() const { return key_id1 == 0 && key_id2 == 0;}
inline void set_null() { key_id1 = 0; key_id2 = 0;}
//Get Function
inline TABLE_NO_T GetTableID() const;
inline ARA_SER_NO_T GetAreaSerialNo() const;
inline COLUMN_NO_T GetColumnNo() const;
//Set Function
void SetTableID(TABLE_NO_T table_no);
void SetAreaSerialNo(ARA_SER_NO_T area_serial_no);
void SetColumnNo(COLUMN_NO_T column_no);
std::string FormStringID() const;
std::string FormSgID() const;
std::string FormCommonSqlStringID() const;
int FormSqlStr(char* sql_value, const int length) const;
};
struct APP_KEY_STRU
{
int app_id;
RTDB_KEY_STRU key_id;
bool operator>(const APP_KEY_STRU &kr) const;
bool operator<(const APP_KEY_STRU &kr) const;
bool operator==(const APP_KEY_STRU &kr) const;
bool operator!=(const APP_KEY_STRU &kr) const;
std::string FormCommonSqlStringID() const;
int FormSqlStr(char* sql_value, const int length) const;
};
struct SCN_ID_STRU
{
struct SCENARIO_ID_INFO scn_info;
RTDB_KEY_STRU key_id;
bool operator>(const SCN_ID_STRU &kr) const;
bool operator<(const SCN_ID_STRU &kr) const;
bool operator==(const SCN_ID_STRU &kr) const;
bool operator!=(const SCN_ID_STRU &kr) const;
std::string FormCommonSqlStringID() const;
std::string FormStringID();
int FormSqlStr(char* sql_value, const int length) const;
};
struct APP_ID_STRU
{
int app_id;
RTDB_KEY_STRU key_id;
bool operator>(const APP_ID_STRU &kr) const;
bool operator<(const APP_ID_STRU &kr) const;
bool operator==(const APP_ID_STRU &kr) const;
bool operator!=(const APP_ID_STRU &kr) const;
std::string FormCommonSqlStringID() const;
int FormSqlStr(char* sql_value, const int length) const;
};
#ifdef _BIGENDIAN
struct COMM_KEY_STRU
{
short table_no;
short column_id;
int record_id;
};
#else
struct COMM_KEY_STRU
{
int record_id;
short column_id;
short table_no;
};
#endif
#ifdef _BIGENDIAN
struct COMM_KEY_AREA_STRU
{
short table_no;
short column_id;
int area_id:8;
int record_id:24;
};
#else
struct COMM_KEY_AREA_STRU
{
int record_id:24;
int area_id:8;
short column_id;
short table_no;
};
#endif
struct _RTDB_KEY_STRU //as same as RTDB_KEY_STRU, to solve the problem that RTDB_KEY_STRU need constructor
{
cmnUint64 key_id1;
cmnUint64 key_id2;
bool operator==(const _RTDB_KEY_STRU &right) const;
bool operator!=(const _RTDB_KEY_STRU &right) const;
bool operator>(const _RTDB_KEY_STRU &right) const;
bool operator<(const _RTDB_KEY_STRU &right) const;
inline cmnUint32 GetTableID() const;
inline cmnUint64 GetAreaSerialNo() const;
inline cmnUint32 GetColumnNo() const;
};
struct _SCN_ID_STRU
{
struct SCENARIO_ID_INFO scn_info;
_RTDB_KEY_STRU key_id;
bool operator>(const _SCN_ID_STRU &kr) const;
bool operator<(const _SCN_ID_STRU &kr) const;
bool operator==(const _SCN_ID_STRU &kr) const;
bool operator!=(const _SCN_ID_STRU &kr) const;
std::string FormCommonSqlStringID() const;
int FormSqlStr(char* sql_value, const int length) const;
};
struct _APP_KEY_STRU //as same as APP_KEY_STRU
{
int app_id;
_RTDB_KEY_STRU key_id;
bool operator>(const _APP_KEY_STRU &kr) const;
bool operator<(const _APP_KEY_STRU &kr) const;
bool operator==(const _APP_KEY_STRU &kr) const;
bool operator!=(const _APP_KEY_STRU &kr) const;
};
struct _APP_ID_STRU
{
int app_id;
_RTDB_KEY_STRU key_id;
bool operator>(const _APP_ID_STRU &kr) const;
bool operator<(const _APP_ID_STRU &kr) const;
bool operator==(const _APP_ID_STRU &kr) const;
bool operator!=(const _APP_ID_STRU &kr) const;
};
//
//data define for record sort of real time db
//
union SORT_DATA_TYPE
{
char to_str[CHN_NAME_LEN];
int to_int;
float to_float;
double to_double;
cmnInt64 to_long;
unsigned int to_uint;
//KEY_ID_STRU to_key;
_APP_KEY_STRU to_appkey;
_APP_ID_STRU to_appid;
unsigned char to_uchar;
_RTDB_KEY_STRU to_rtdbkey;
_RTDB_KEY_STRU to_measrtdbkey;
_SCN_ID_STRU to_scn_id;
};
//lmj add 2004.0521
struct INT_VALUE_STATUS
{
int value;
int status;
};
struct FLOAT_VALUE_STATUS
{
float value;
int status;
};
struct CHAR_VALUE_STATUS
{
// char value[CHN_NAME_LEN];
unsigned char value;
int status;
};
struct LONG_VALUE_STATUS
{
cmnInt64 value;
int status;
};
struct UNION_VALUE_STATUS
{
SORT_DATA_TYPE value;
int status;
};
struct KEY_ID_STA_STRU
{
RTDB_KEY_STRU key_id_stru;
int status_field;
};
////////////////// file mapping cache //////////////////////////
#define RDB_MAX_MAP_LEN 8000000000
#define RDB_FILE_NAME_LEN 256
typedef cmnInt64 MAP_FILE_KEY;
struct MapItem
{
char *map_file_ptr;
char file_name[RDB_FILE_NAME_LEN];
unsigned int map_size;
int counter;
MAP_FILE_KEY map_id;
MapItem *p_next;
MapItem *p_prev;
MapItem()
{
map_file_ptr = NULL;
map_size = 0;
counter = 0;
map_id = 0;
memset(file_name, 0, RDB_FILE_NAME_LEN);
p_next = NULL;
p_prev = NULL;
}
};
struct CMmapList
{
struct MapItem *m_list;
struct MapItem *m_ptail; //tail of list
long m_length;
unsigned int m_item_num;
CMmapList()
{
m_list = NULL;
m_ptail = NULL;
m_length = 0;
m_item_num = 0;
}
};
#define MAP_ID_SYSTEM 1
#if 0
struct MAP_FILE_KEY
{
#ifndef _BIGENDIAN
int area_no:8;
short table_no;
int app_no;
int ctx_no:8;
#else
int ctx_no:8;
int app_no;
short table_no;
int area_no:8;
#endif
bool operator>(const MAP_FILE_KEY& kr) const
{
// return ( (this-> > kr.app_id) ||
// ((this->app_id == kr.app_id) && (this->key_id > kr.key_id)) );
return (*(cmnInt64*)this > (const cmnInt64&)kr);
}
bool operator<(const MAP_FILE_KEY& kr) const
{
// return ( (this->ctx_no < kr.ctx_no) ||
// ((this->ctx_no == kr.ctx_no) && (this->app_no < kr.app_no)) );
return (*(cmnInt64*)this < (const cmnInt64&)kr);
}
bool operator==(const MAP_FILE_KEY& kr) const
{
// return ( (this->ctx_no == kr.ctx_no) && (this->app_no == kr.app_no)
// && (this->table_no == kr.table_no) && (this->area_no == kr.area_no));
return (*(cmnInt64*)this == (const cmnInt64&)kr);
}
bool operator!=(const MAP_FILE_KEY& kr) const
{
/*
if(this->ctx_no != kr.ctx_no)
return true;
if(this->app_no != kr.app_no)
return true;
if(this->table_no != kr.table_no)
return true;
if(this->area_no != kr.area_no)
return true;
return false;
*/
return (*(cmnInt64*)this != (const cmnInt64&)kr);
}
};
#endif
typedef struct map_file_value
{
char *map_file_ptr;
char file_name[256];
unsigned int map_size;
int counter;
}RDB_MAP_FILE_VALUE;
typedef std::map<MAP_FILE_KEY, RDB_MAP_FILE_VALUE> RDB_FILE_MAP;
typedef struct map_file_struct
{
RDB_FILE_MAP map_file_list;
cmnInt64 m_total_cache;
}MMapInfoList;
#endif