Exemplo n.º 1
0
int writeBuffer(TBuffer *buffer, char *data, int size)
{
	if(size>resOfBuffer(buffer)) size=resOfBuffer(buffer);
	memcpy(buffer->bufPtr, data, size);
	buffer->bufPtr+=size;
	return size;
}
Exemplo n.º 2
0
static int post_buf_to_svr(int max_left_len,trans_info_t*info,char *file)
{
	int sendcount=0;
	char url[1024];
	char *table_name = info->list->table_name;
	int ret = 0;
	static int fp_count = 0;

	/*服务器查询时上传数据,时间戳设为为0*/
	if (info->upload_mode == UPLOADE_MODE_NOR) {
		snprintf(url, sizeof(url),"%s%u", info->url, (size_t)(info->cur_trans_log_time));
	} else {
		sprintf(url, "%s%u", info->url,(size_t)(info->starting_time));
	}
	if (strncasecmp(table_name, "fingertmp", strlen("fingertmp")+1) == 0) {
		fp_count++;
	}
	if (strlen(file) > 0) {
		info->file_path = file;
		if (cache_data_to_svr(url, info)) {
			info->file_path = NULL;
			ret = 1;
		} else {
			ret = -2;
		}
	} else if ((resOfBuffer(info->cache) < max_left_len)  || \
		(info->count >= info->opt->trans_max_rec)|| \
		(fp_count > 2)||\
		(strncasecmp(table_name, "USERPIC", strlen("USERPIC")) == 0)) {
		if (cache_data_to_svr(url, info)) {
			ret = 1;
			if ( info->opt->trans_max_rec < 140) {
				info->opt->trans_max_rec += 10;
			}
		} else {
			ret = -1;
			if ( info->opt->trans_max_rec > 30) {
				info->opt->trans_max_rec -= 30;
			}
		}
	} 
	
	if (ret == 1) {
		if ((info->list->auto_push_flag) && \
		    (info->upload_mode == UPLOADE_MODE_NOR))  {
			info->list->last_stamp = info->cur_trans_log_time;
		} 
		fp_count = 0;
		sendcount = info->count;
		info->count = 0;
		clearBuffer(info->cache);	
		memset(info->cache->buffer,0,info->cache->bufferSize);
		return sendcount;
	} else if (ret < 0){
		info->error = -1;
	}
	return ret;
}
Exemplo n.º 3
0
int writeBufferAuto(TBuffer *buffer, char *data, int size)
{
	int len=size-resOfBuffer(buffer);
	if(len>0)
	{
		if(len<10*1024) len=10*1024;
		len+=buffer->bufferSize;
		if(resizeRamBuffer(buffer, len)!=len) return 0;
	}
    memcpy(buffer->bufPtr, data, size);
	buffer->bufPtr+=size;
	return size;
}
Exemplo n.º 4
0
int insertBufferAuto(TBuffer *buffer, char *data, int size, int offset)
{
	unsigned char *p;
	int i,len=size-resOfBuffer(buffer);
	if(len>0)
	{
		if(len<10*1024) len=10*1024;
		len+=buffer->bufferSize;
		if(resizeRamBuffer(buffer, len)!=len) return 0;
	}
	p=buffer->bufPtr+size-1;
	for(i=buffer->bufPtr-buffer->buffer-offset;i>0;i--){ *p=*(p-size); p--;}
    memcpy(buffer->buffer+offset, data, size);
	buffer->bufPtr+=size;
	return size;
}