亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c_shm_merge.cpp

?? HP共享內(nèi)存實(shí)現(xiàn),只要將sql語句配置好,裝載共享內(nèi)存即可
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
	temp.seq = field_seq;
	temp.pos = pos;
	temp.size = p_field_info[field_seq].field_size;
	temp.type = p_field_info[field_seq].field_type;
	g_main_key.push_back(temp);

	main_key_size += p_field_info[field_seq].field_size;
	return 0;
}

int c_shm_merge::setItemKey( const int field_seq )
{
	v_item_key.push_back( field_seq );
	return 0;
}

int c_shm_merge::setItem( const int field_seq )
{
	v_item_seq.push_back( field_seq );
	return 0;
}

int c_shm_merge::getMergeItemSeq( const void * p_main )
{
	long* p_long = (long*)p_main;
	if( p_long == NULL )
	{
		return 0;
	}
	else
	{
		return (*p_long % 100) / 10;
	}
	/*char* p_temp = (char*) p_main;
	int len = strlen(p_temp);
	int tmp;
	if( len <= 0 )
	{
		tmp = 0;
	}
	else if( len == 1 )
		tmp = p_temp[0] - '0';
	else
	{
		tmp = p_temp[len-2] - '0';
	}

	if( tmp >= MAX_ITEM_COUNT )
	{
		return tmp % MAX_ITEM_COUNT;
	}
	else if( tmp < 0 )
	{
		return 0;
	}
	else
	{
		return tmp;
	}*/	
}

void c_shm_merge::displayElement( const void * p_main )
{
	//確定是在哪一個(gè)小塊中
	int mem_seq = getMergeItemSeq( p_main );
	SHM_MERGE_LIST* p_find = p_merge_item[mem_seq]->find( p_main );
	////////////////只用1塊
	//SHM_MERGE_LIST* p_find = p_merge_item[0]->find( p_main );

	SHM_MERGE_LIST_ITEM* p_list;
	if( p_find == NULL )
	{
		//printf("Cannot find %s\n", (char*)p_main);
	}
	else
	{
		//printf("find!%d\n", p_find->item_pos);
		p_list = &(p_merge_addition->p_merge_list_item[p_find->item_pos]);
		int i;
		while( p_list->next_pos != -1 )
		{
			for( i = 0 ; i < MAX_LIST_COUNT ; i ++ )
			{
				printf("key:%d, fee:%d\n", p_list->acctFee[i].key, p_list->acctFee[i].fee);
			}
			printf("nextpos:%d\n", p_list->next_pos);
			p_list = &(p_merge_addition->p_merge_list_item[p_list->next_pos]);
		}
		if(p_list!=NULL)
		{
			for( i = 0 ; i < MAX_LIST_COUNT ; i ++ )
			{
				printf("key:%d, fee:%d\n", p_list->acctFee[i].key, p_list->acctFee[i].fee);
			}
			printf("nextpos:%d\n", p_list->next_pos);
		}
	}
}

int c_shm_merge::getMainElement( const void * p_main )
{
	int mem_seq = getMergeItemSeq( p_main );
	SHM_MERGE_LIST* p_find = p_merge_item[mem_seq]->find( p_main );
	if( p_find == NULL )
	{
		get_next_pos = -1;
		return -1;
	}
	else
	{
		get_next_pos = p_find->item_pos;
	}	
	return 0;
}

int c_shm_merge::setBillingCycelID( const int billing_cycle_id )
{
	p_serial_list[1] = billing_cycle_id;
	p_serial_list[0] = 0;
	p_serial_list[2] = 0;
	memset( &(p_serial_list[3]), 0, sizeof(int)*(MAX_SERIAL_COUNT-3) );
	return 0;
}

int c_shm_merge::addSerial( const int serial_no, const int billing_cycle_id )
{
	if( p_serial_list[1] != billing_cycle_id )
	{
		//帳期不符
		return -2;
	}
	append_key_mutex.enterMutex();
	/*cout<<p_serial_list[0]<<"|"<<p_serial_list[2]<<":::";
	for( int i = 0; i< p_serial_list[0]; i++)
		cout<<p_serial_list[i+3]<<" ";
	cout<<"::::";
	for( i=0; i<p_serial_list[2]; i++ )
		cout<<p_serial_list[i+UNSORT_SERIAL_POS]<<" ";
	cout<<endl;
	*/
	//查找
	int* p_find = (int*)bsearch( &serial_no, &(p_serial_list[3]), p_serial_list[0], sizeof(int), serialComp );
	if( p_find == NULL )
	{
		if( p_serial_list[2] == 0 )
		{
			//初始化			
			p_serial_list[UNSORT_SERIAL_POS] = serial_no;
			p_serial_list[2] ++;
			append_key_mutex.leaveMutex();
			return 0;
		}
		else
		{
			//插入
			p_find = (int*)bsearch( &serial_no, &(p_serial_list[UNSORT_SERIAL_POS]), p_serial_list[2], sizeof(int), serialComp );
			if( p_find == NULL )
			{
				p_serial_list[UNSORT_SERIAL_POS+p_serial_list[2]] = serial_no;
				p_serial_list[2] ++;				
				if( p_serial_list[2] >= MAX_UNSORT_SERIAL_COUNT )
				{
					memcpy( &(p_serial_list[p_serial_list[0]+3]), &(p_serial_list[UNSORT_SERIAL_POS]), sizeof(int)*p_serial_list[2] );
					p_serial_list[0] += p_serial_list[2];
					qsort(&(p_serial_list[3]), p_serial_list[0], sizeof(int), serialComp);
					memset( &(p_serial_list[UNSORT_SERIAL_POS]), 0, sizeof(int)*p_serial_list[2] );
					p_serial_list[2] = 0;
				}
				else
				{
					qsort( &(p_serial_list[UNSORT_SERIAL_POS]), p_serial_list[2], sizeof(int), serialComp);
				}
				append_key_mutex.leaveMutex();
				return 0;
			}
			else
			{
				append_key_mutex.leaveMutex();
				return -1;
			}
		}
	}
	else
	{
		append_key_mutex.leaveMutex();
		return -1;
	}
	/*
	if( p_serial_list[1] != billing_cycle_id )
	{
		return -2;
	}

	//cout<<"add serial:"<<p_serial_list[0]<<"|"<<serial_no<<endl;
	if( p_serial_list[0] == 0 )
	{
		p_serial_list[0] ++;
		p_serial_list[p_serial_list[0]+1] = serial_no;
		return 0;
	}
	
	int* p_find = (int*)bsearch( &serial_no, &(p_serial_list[2]), p_serial_list[0], sizeof(int), serialComp );
	if( p_find == NULL )
	{
		p_serial_list[0] ++;
		p_serial_list[p_serial_list[0]+1] = serial_no;
		qsort(&(p_serial_list[2]), p_serial_list[0], sizeof(int), serialComp);
		return 0;
	}
	else
	{
		return -1;
	}
	*/
}


void c_shm_merge::showLastSerial()
{
	int last_serial;
	append_key_mutex.enterMutex();
	
	if( p_serial_list[2] == 0 )
	{
		if( p_serial_list[0] == 0 )
		{
			last_serial = -1;
		}
		else
		{
			last_serial = p_serial_list[ p_serial_list[0]+3 ];
		}
	}
	else
	{
		last_serial = p_serial_list[UNSORT_SERIAL_POS+p_serial_list[2]-1];
	}
	append_key_mutex.leaveMutex();
	cout<<"最后處理的文件系列ID是:"<<last_serial<<endl;
	return ;
}

void c_shm_merge::showAllSerial()
{
	append_key_mutex.enterMutex();
	append_key_mutex.leaveMutex();
}

int c_shm_merge::backupShm()
{	
	int backup_num = 0;
	try
	{
		g_statement.setSQLString("select BACKUP_NUM from shm_backup_info where backup_date = (select max(backup_date) from shm_backup_info)");
		g_statement.execute();
		while(g_statement>>backup_num)
			;
	}
	catch(Exception& ex )
	{
		cout<<"錯(cuò)誤:select BACKUP_NUM from shm_backup_info where backup_date = (select max(backup_date) from shm_backup_info)"<<endl<<ex.what();
	}
	if( backup_num <= 0 )
	{
		backup_num = 1;
	}
	else if ( backup_num >= max_backup_num )
	{
		backup_num = 1;
	}
	else
	{
		backup_num ++;
	}

	char file_name[60];
	sprintf( file_name, "%d", backup_num );
	//strcpy(file_name, ltoa( backup_num ));

	char full_name[300];
	strcpy( full_name, backup_dir );
	strcat( full_name, "/" );
	strcat( full_name, file_name );
	if( saveFile( full_name ) == 0 )
	{
		//m_sql = "alter session set NLS_DATE_FORMAT = yyyymmddhh24miss";
		try
		{
			g_statement.setSQLString( "alter session set NLS_DATE_FORMAT = yyyymmddhh24miss" );
			g_statement.execute();

			g_statement.setSQLString("insert into shm_backup_info ( BACKUP_DIR, BACKUP_FILENAME, BACKUP_NUM, BACKUP_DATE ) values (:dir, :filename, :num, SYSDATE)");
			g_statement<<backup_dir<<file_name<<backup_num;
			g_statement.execute();
			conn.commit();
		}
		catch( Exception& ex )
		{
			cout<<"錯(cuò)誤:insert into shm_backup_info ( BACKUP_DIR, BACKUP_FILENAME, BACKUP_NUM, BACKUP_DATE ) values (:dir, :filename, :num, SYSDATE)"<<endl
				<<ex.what();
		}

		return 0;
	}
	else
	{
		return -2;
	}
}

int c_shm_merge::restoreShm()
{
	int backup_num = 0;
	char file_name[60];
	char file_dir[120];
	char full_name[300];
	try
	{
		g_statement.setSQLString("select BACKUP_NUM, BACKUP_DIR, BACKUP_FILENAME from shm_backup_info where backup_date = (select max(backup_date) from shm_backup_info)");
		g_statement.execute();
		while( g_statement>>backup_num>>file_dir>>file_name )
			;
	}
	catch( Exception& ex )
	{
		cout<<"錯(cuò)誤:select BACKUP_NUM, BACKUP_DIR, BACKUP_FILENAME from shm_backup_info where backup_date = (select max(backup_date) from shm_backup_info)"<<endl
			<<ex.what();
	}
	if( backup_num <= 0 )
	{
		return -1;
	}
	else
	{
		strcpy( full_name, file_dir );
		strcat( full_name, "/" );
		strcat( full_name, file_name );
		if( loadFile( full_name ) == 0 )
		{
			return 0;
		}
		else
		{
			return -2;
		}
	}
}

int c_shm_merge::saveFile(const char* file_name)
{
	char fileName[150];
	//strcpy( fileName, backup_dir );
	//strcat( fileName , "/");
	strcpy( fileName, file_name );

	FILE * fp;
	fp = fopen( fileName, "wb");
	if( fp == NULL )
	{
		printf("文件[%s]打開錯(cuò)誤\n",  file_name );
		return -1;
	}

	//寫頭信息
	//信息頭指針
	//STSHAREINFO* p_stShareInfo;
	fwrite( p_stShareInfo, sizeof(STSHAREINFO), 1, fp );
	//配置信息頭指針
	//SHARE_MEM_INFO* p_share_mem_info;
	fwrite( p_share_mem_info, sizeof(SHARE_MEM_INFO), 1, fp );
	//獲取配置信息的類  
	//c_share_info* p_share_info;	
	//fwrite( p_share_info, sizeof(c_share_info), 1, fp );
	//寫main_key_size
	fwrite( &main_key_size, sizeof(int), 1, fp );
//printf("main_key_size:%d\n", main_key_size);
	//寫serial_list
	fwrite( p_serial_list, sizeof(int), p_serial_list[0]+2, fp );
	//寫十個(gè)子塊
	for( int i=0; i<MAX_ITEM_COUNT; i++ )
	{
		fwrite( p_merge_item[i]->p_merge_info, sizeof(SHM_MERGE_INFO), 1, fp );
		//printf("%drecord count:%d,%d\n", i,p_merge_item[i]->p_merge_info->record_count, p_merge_item[i]->p_merge_info->add_record_count);
		fwrite( p_merge_item[i]->p_merge_list, sizeof(SHM_MERGE_LIST), p_merge_item[i]->p_merge_info->record_count, fp );
		fwrite( p_merge_item[i]->p_add_merge_list, sizeof(SHM_MERGE_LIST), p_merge_item[i]->p_merge_info->add_record_count, fp );
	}

	//寫附加塊
	fwrite( p_merge_addition->p_merge_info, sizeof(SHM_MERGE_INFO), 1, fp );
	fwrite( p_merge_addition->p_merge_list_item, sizeof(SHM_MERGE_LIST_ITEM), p_merge_addition->p_merge_info->record_count, fp );

	return 0;
}

int c_shm_merge::loadFile(const char* file_name)
{
	char fileName[150];
	//strcpy( fileName, backup_dir );
	//strcat( fileName , "/");
	strcpy( fileName, file_name );

	FILE * fp;
	fp = fopen( fileName, "rb");
	if( fp == NULL )
	{
		printf("文件[%s]打開錯(cuò)誤\n",  file_name );
		return -1;
	}

	//寫頭信息
	//信息頭指針
	//STSHAREINFO* p_stShareInfo;	
	fread( p_stShareInfo, sizeof(STSHAREINFO), 1, fp );
	//配置信息頭指針
	//SHARE_MEM_INFO* p_share_mem_info;
	fread( p_share_mem_info, sizeof(SHARE_MEM_INFO), 1, fp );
	//獲取配置信息的類  
	//c_share_info* p_share_info;	
	//fread( p_share_info, sizeof(c_share_info), 1, fp );
	//寫main_key_size
	int key_size;
	fread( &key_size, sizeof(int), 1, fp );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品国产.久久久久久| 美国十次综合导航| 日韩美女一区二区三区四区| 国产精品综合视频| 亚洲黄色片在线观看| 日韩三级在线观看| 色拍拍在线精品视频8848| 经典三级视频一区| 天天影视涩香欲综合网| 国产精品福利一区| 久久午夜国产精品| 欧美一区二区三区喷汁尤物| 色婷婷精品久久二区二区蜜臀av | 最新不卡av在线| 精品久久久久久久人人人人传媒| 欧美亚洲一区三区| 9久草视频在线视频精品| 黄色精品一二区| 视频一区二区三区在线| 最新热久久免费视频| 久久亚洲精华国产精华液 | 国产一区二区调教| 日韩av一区二区三区| 亚洲综合色网站| 亚洲人吸女人奶水| 1024成人网色www| 国产精品久久久爽爽爽麻豆色哟哟| 日韩欧美久久一区| 日韩视频一区二区| 日韩无一区二区| 欧美浪妇xxxx高跟鞋交| 欧美在线观看你懂的| 91视频你懂的| 色综合久久中文字幕| 色婷婷综合视频在线观看| av不卡免费电影| 91亚洲午夜精品久久久久久| 99精品偷自拍| 色综合久久88色综合天天| 99久久99久久精品免费观看| jlzzjlzz国产精品久久| av高清久久久| 色视频成人在线观看免| 欧美吻胸吃奶大尺度电影 | 欧美成人在线直播| 日韩免费视频线观看| 欧美sm美女调教| 精品av久久707| 久久久久久一级片| 中文文精品字幕一区二区| 国产精品情趣视频| 亚洲欧美经典视频| 亚洲国产精品久久人人爱| 日本大胆欧美人术艺术动态| 蜜臀av一级做a爰片久久| 狠狠色综合播放一区二区| 国产精品99久久久久久久女警| 国产黑丝在线一区二区三区| 国产一区二区0| av亚洲精华国产精华精| 色综合久久中文字幕| 欧美精品在线观看播放| 精品国产一区久久| 国产精品三级在线观看| 一区二区三区在线高清| 美女mm1313爽爽久久久蜜臀| 国产精品影视天天线| 97超碰欧美中文字幕| 91精彩视频在线观看| 日韩一区二区三区av| 久久精品一区二区三区不卡牛牛| 亚洲欧洲精品一区二区三区| 亚洲午夜久久久久久久久久久| 日本aⅴ免费视频一区二区三区| 国产最新精品精品你懂的| a4yy欧美一区二区三区| 91麻豆精品国产自产在线观看一区| 精品国产乱子伦一区| 美国av一区二区| 国产69精品久久99不卡| 色综合久久综合中文综合网| 日韩欧美国产精品| 亚洲三级理论片| 久久精品72免费观看| 91丨porny丨最新| 日韩一区二区影院| 亚洲欧美在线观看| 日本不卡在线视频| 91亚洲国产成人精品一区二三| 91精品在线观看入口| 国产精品久久久99| 美女一区二区三区| 91麻豆6部合集magnet| 精品久久国产97色综合| 亚洲自拍偷拍麻豆| 成人影视亚洲图片在线| 日韩一区二区三区三四区视频在线观看| 中文字幕在线观看一区二区| 麻豆成人久久精品二区三区红| 91同城在线观看| 国产午夜一区二区三区| 日韩精品免费专区| 91免费国产在线| 欧美激情一区二区三区在线| 日韩专区一卡二卡| 91久久精品国产91性色tv| 欧美激情一区二区三区蜜桃视频| 青青草国产精品97视觉盛宴| 91黄色在线观看| 国产精品素人一区二区| 久久99国产精品尤物| 7777女厕盗摄久久久| 有码一区二区三区| 丁香天五香天堂综合| 精品国产成人系列| 强制捆绑调教一区二区| 欧美日韩国产三级| 亚洲激情欧美激情| 国产精品网站一区| 精品一区二区精品| 日韩精品一区二区三区中文精品| 亚洲韩国一区二区三区| 色噜噜狠狠一区二区三区果冻| 国产精品毛片久久久久久| 国产最新精品精品你懂的| 精品国产污污免费网站入口 | 亚洲欧美一区二区久久| 成人91在线观看| 中文字幕乱码亚洲精品一区 | 色综合视频一区二区三区高清| 中文字幕第一区| 成人午夜在线播放| 国产精品你懂的| 成人精品国产免费网站| 国产精品丝袜黑色高跟| 成人91在线观看| 日韩美女视频一区| 色婷婷久久久久swag精品| 亚洲一区在线看| 欧美美女直播网站| 日韩精品亚洲专区| 91精品国产一区二区三区蜜臀| 日本91福利区| 精品国产乱码久久久久久1区2区| 久久国产精品99精品国产| 欧美精品一区视频| 国产精选一区二区三区| 国产精品萝li| 91黄色激情网站| 日本不卡一二三| 日本中文字幕一区二区视频| 337p亚洲精品色噜噜| 老司机午夜精品99久久| 国产亚洲一区二区在线观看| 成人av免费在线观看| 亚洲精品成人在线| 4438x亚洲最大成人网| 精品一二三四在线| 国产精品毛片高清在线完整版 | 日韩亚洲欧美成人一区| 国产一区在线精品| 国产精品国模大尺度视频| 欧美性色黄大片| 另类小说一区二区三区| 中文字幕乱码久久午夜不卡 | 亚洲一区二区三区国产| 日韩午夜在线观看| 成人午夜精品在线| 亚洲国产婷婷综合在线精品| 欧美成人免费网站| 色综合久久88色综合天天 | 欧美在线三级电影| 久久成人久久爱| 亚洲色图.com| 日韩欧美成人一区| 91麻豆swag| 精品一区二区三区视频| 日韩理论片在线| 日韩网站在线看片你懂的| 91丨porny丨最新| 精品一区二区三区香蕉蜜桃 | 日本vs亚洲vs韩国一区三区二区| 国产欧美视频一区二区| 欧美高清性hdvideosex| 懂色av一区二区三区免费观看| 亚洲午夜日本在线观看| 欧美激情一区二区三区| 欧美美女喷水视频| 成人av电影免费观看| 捆绑调教一区二区三区| 樱花草国产18久久久久| 精品成人一区二区| 欧美嫩在线观看| av一二三不卡影片| 国产精品一区在线| 日本视频在线一区| 一区二区三区久久| 国产精品欧美久久久久无广告| 日韩一级精品视频在线观看| 精品视频在线免费看|