示例#1
0
void sendPiece(int sockfd, int index, int begin, int len)
{
    unsigned char *send_buff = (unsigned char *)malloc(sizeof(int)*3+sizeof(unsigned char)*(1+len));
    memset(send_buff,0,sizeof(int)*3+sizeof(unsigned char)*(1+len));
    unsigned char* temp_buff = send_buff;

    int send_len = sizeof(int) * 2 + sizeof(char) * (1 + len);
    int send_len_n = htonl(send_len);
    printf("piece pack_len is %d,",send_len);
    memcpy(send_buff, (char*)&send_len_n, 4);
    assert(*(int *)send_buff == send_len_n);
    send_buff += 4;
    *send_buff ++ = 7;

    int index_n = htonl(index);
    printf("index is %d,",index);
    memcpy(send_buff, (char*)&index_n, 4);
    send_buff += 4;

    int begin_n = htonl(begin);
    printf("begin is %d\n",begin);
    memcpy(send_buff, (char*)&begin_n, 4);
    send_buff += 4;

    file2buffer(index, begin, len, send_buff);
    printf("Send piece pack\n");
    int n = send(sockfd, temp_buff, sizeof(int) * 3 + sizeof(unsigned char) * (1 + len), 0);
    //assert(sizeof(int)*3 + sizeof(unsigned char)*(1+len) == n);
    g_uploaded += len;
    free(temp_buff);
}
示例#2
0
void* DBLsg_get(char *pTblName)
{
	DB_Table *pTable = getTable(pTblName);
	if(!pTable){
		return NULL;
	}
	
	int iLen = 0;
	char *buffer = NULL;	
	if(!file2buffer(pTblName, &buffer, &iLen)){
		return NULL;
	}
	
	void *pObj = buffer2Obj(PRO[pTable->oIdx].pTbl,PRO[pTable->oIdx].oSize,buffer,iLen,NULL);
	free(buffer);
	
	return pObj;
}