Files
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

376 lines
11 KiB
C++
Raw Permalink 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.
/*******************************************************************************
ModuleName: ODB Real Time Database management system
FileName: publics.h
DESCRIPTION: public define
FUNCTION LIST:
COMMENT: 操作相关结构定义 同odb_api_struct.h
History:
Date Version Modifier Activities
2002-09-01 1.0 modify
================================================================================
2002-09-01 1.0 created
*******************************************************************************/
#ifndef __ODB_PUBLIC_H__
#define __ODB_PUBLIC_H__
//公共头文件
#ifndef _WINDOWS64
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <fcntl.h>
#include <signal.h>
#include <errno.h>
#include <unistd.h>
#ifndef _HPUX
#include <pthread.h>
#else
#include <sys/pthread.h>
#endif
#include <dirent.h>
#include <sys/mman.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <sys/time.h>
#include <sys/times.h>
#else
#include <winsock2.h>
#include <windows.h>
#include <direct.h>
#include <io.h>
#include <process.h>
#include <time.h>
#include <sys/timeb.h>
//#include <afxmt.h>
#endif
#include <string>
#include <vector>
#include <map>
#include <memory>
#include <algorithm>
#include <utility>
#include <iostream>
#include "ThreadKit/ThreadKit.h"
#ifndef __ODB_DEFINE_H__
#include "db_api/odb_define.h"
#endif
#include "db_api/odb_struct.h"
//namespace ODB
//{
struct TABLE_PARA
{
char table_name_eng[ENG_NAME_LEN];
char table_name_chn[CHN_NAME_LEN];
int key_len;
int subkey_num;
int record_number;
int record_size;
short field_sum;
unsigned char is_auto_generated; //key_generate_type
};
struct FIELD_PARA
{
int table_id; //表ID号 INT
short field_id; //域ID号 SHORT
short column_id; //域内部ID号 SHORT
char field_name_eng[ENG_NAME_LEN]; //域英文名 STRING(32)
char field_name_chn[CHN_NAME_LEN]; //域中文名 STRING(64)
short field_length; //数据长度 SHORT
unsigned char data_type; //数据类型 UCHAR
unsigned char is_keyword; //是否主键 UCHAR
unsigned char allow_null; //是否允许空值 UCHAR
int app_type; //应用类型 INT
unsigned char is_app_syn; //是否更新时全应用同步 UCHAR
unsigned char index_order_no; //检索器索引顺序号 UCHAR
unsigned char sort_order_no; //默认排序顺序号 UCHAR
// // // // //
unsigned char is_input; //是否允许输入 UCHAR
unsigned char is_display; //是否显示 UCHAR
short display_order_no; //显示顺序号 SHORT
unsigned char is_fix; //卷滚时是否固定 UCHAR
short display_length; //默认显示长度 SHORT
unsigned char display_precision; //小数显示精度 UCHAR
unsigned char align_type; //对齐方式 UCHAR
unsigned char display_type; //显示类型 UCHAR
char menu_name[MENU_NAME_LEN]; //菜单名 STRING(40)
unsigned char reference_flag; //数据引用类型 UCHAR
unsigned char reference_mode; //数据引用方式 UCHAR
int reference_table; //引用表名 INT
short reference_column; //引用域号 SHORT
unsigned char reference_display; //被引用时是否显示 UCHAR
char init_value[DEFAULT_VALUE_LEN]; //缺省值 STRING(20)
char min_value[DEFAULT_VALUE_LEN]; //最小值 STRING(20)
char max_value[DEFAULT_VALUE_LEN]; //最大值 STRING(20)
int column_special; //域特殊属性 INT
unsigned char auto_meas_type; //自动生成量测类型 UCHAR
short gen_array_dimension; //数组维数 SHORT
char gen_array_name[ARRAY_NAME_LEN]; //数组名称 STRING(32)
char column_description[DESCRIPTION_LEN]; //域描述信息 STRING(100)
unsigned char is_index; //
int offset; //added by RTDBMS
};
////////////////////////////////////////////////////////////////////////////////
// for down load //
// //
////////////////////////////////////////////////////////////////////////////////
/*============================================================================*/
struct STDB_CREAT_REQ
{
int app_no;
int table_no;
int table_version;
int field_sum; //short
#ifdef _APP_SYS_SUBSTATION
int bit_field_sum;
int vir_field_sum;
#endif
char table_name_eng[ENG_NAME_LEN];
char table_name_chn[CHN_NAME_LEN];
int record_num;
int record_sum;
int record_length; //short
unsigned char is_system_table;
unsigned char is_auto_generated; //key_generate_type;
unsigned char is_record_apped;
unsigned char is_record_lock;
unsigned char is_record_resp;
DB_MEDIA_T stdb_media; //no used
ACCESS_METHODS_T access_meth; //
int seq_field_no; //
char passwd[MAX_NAME_STRING_LEN]; //
int table_type; //for graph, etc
/******Added for index begin ************/
int pk_index_method;
int pk_storage_type;//主键存储方法,譬如共享内存或者文件映射内存。
int pk_mem_alloc_type;//主键内存分配方法譬如带溢出HASH的分配方法无溢出的HASH分配方法。
/******Added for index end**************/
int reserved_1;
int reserved_2;
int reserved_3;
int reserved_4;
int reserved_5;
int area_num;
int area_no[MAX_AREA_NUM];
char area_name[MAX_AREA_NUM][ENG_NAME_LEN];
int slice_flag;
};
struct FIELD_CREAT_REQ
{
int app_no; //app_type
short field_no;
short r_field_no;
short field_id;
short column_id;
short field_length;
#ifdef _APP_SYS_SUBSTATION
short is_bit_field;
#endif
char field_name_eng[ENG_NAME_LEN];
char field_name_chn[CHN_NAME_LEN];
int column_special;
int ref_tableno; //long reference_table;
short ref_fieldno; //short reference_column;
unsigned char reference_flag;
unsigned char reference_mode;
unsigned char reference_display;
unsigned char data_type;
unsigned char allow_null;
unsigned char is_keyword;
unsigned char display_type;
unsigned char is_index; //octet index_order_no;
unsigned char sort_order_no;
unsigned char is_app_syn;
unsigned char auto_meas_type;
char menu_name[MENU_NAME_LEN];
char default_asciival[DEFAULT_VALUE_LEN]; //init_value
char min_asciival[DEFAULT_VALUE_LEN]; //min_value
char max_asciival[DEFAULT_VALUE_LEN]; //max_value
int search_attribute; // 检索器的域特性 //Added 2003-09-01
int statics_attribute; // 统计的域特性
int reserved_1; // 系统保留
int reserved_2; // 系统保留
int reserved_3; // 系统保留
int reserved_4; // 系统保留
int reserved_5; // 系统保留
};
#ifdef _APP_SYS_SUBSTATION
struct VIR_FIELD_CREAT_REQ
{
short v_field_no; //rtdbms
short vr_field_no;
short r_field_no; //bit field no
short bit_no;
char vir_field_name_eng[ENG_NAME_LEN];
char vir_field_name_chn[CHN_NAME_LEN];
};
#endif
struct STDB_DELETE_REQ
{
int app_no;
int table_no;
char passwd[MAX_PASSWD_LEN];
};
//struct FIELD_TYPE
//{
// short field_no;
// short field_type; //data type for get; byte len for write
//};
struct FIELD_BASE_INFO
{
int offset;
int field_length;
short field_no;
unsigned char data_type;
unsigned char is_keyword;
};
#ifndef __i386
static char strFILE[100];
static int iLINE;
#endif
#ifndef __i386
// #define TRACE strFILE = __FILE__; iLINE = __LINE__; odb_trace
#define TRACE strcpy(strFILE, __FILE__); iLINE = __LINE__; printf("\t%s:%d-->",strFILE,iLINE); odb_trace
#else
#define TRACE(...) odb_trace(__FILE__, __LINE__, __VA_ARGS__)
#endif
#ifndef _WINDOWS64
#ifndef __i386
inline void odb_trace(const char *p,...)
{
#else
inline void odb_trace(const char *strFILE, const int iLINE, const char *p,...)
{
printf("\t%s:%d-->",strFILE,iLINE);
#endif
/*
#ifndef __i386
static char strFILE[100];
static int iLINE;
// #define TRACE strFILE = __FILE__; iLINE = __LINE__; odb_trace
#define TRACE strcpy(strFILE, __FILE__); iLINE = __LINE__; printf("\t%s:%d-->",strFILE,iLINE); odb_trace
inline void odb_trace(const char *p,...)
{
#else
#define TRACE(...) odb_trace(__FILE__, __LINE__, __VA_ARGS__)
inline void odb_trace(const char *strFILE, const int iLINE, const char *p,...)
{
printf("\t%s:%d-->",strFILE,iLINE);
#endif
*/
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
va_list va;
va_start(va,p);
pthread_mutex_lock(&lock);
vfprintf(stdout,p,va);
fflush(stdout);
pthread_mutex_unlock(&lock);
va_end(va);
}
#else
inline void odb_trace(const char *p,...)
{
/*
//printf("\t%s:%d-->",strFILE,iLINE);
static CRITICAL_SECTION cs; //定义临界区
InitializeCriticalSection(&cs);//初始化临界区
va_list va;
va_start(va,p);
EnterCriticalSection(&cs);//加锁
vfprintf(stdout,p,va);
fflush(stdout);
LeaveCriticalSection(&cs);//解锁
va_end(va);
*/
//printf("\t%s:%d-->",strFILE,iLINE);
THREADKIT::Mutex g_mutex;
va_list va;
va_start(va,p);
{
THREADKIT::Guard<THREADKIT::Mutex> guard(g_mutex);
vfprintf(stdout,p,va);
fflush(stdout);
}
va_end(va);
}
#endif
class SecClock
{
public:
SecClock(int time_out):timer(time(NULL)),time_out(time_out){}
bool TimeOut(){return time(NULL)-timer>time_out;}
private:
time_t timer;
int time_out;
};
/*============================================================================*/
extern "C"
{
void do_nothing1(int nn);
void do_nothing2(int nn);
}
//}
#endif