Changeset 550 for trunk/zoo-project/zoo-kernel/service.h
- Timestamp:
- Feb 3, 2015, 12:59:21 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/zoo-project/zoo-kernel/service.h
r514 r550 566 566 } 567 567 568 static void loadMapBinary(map** out,map* in,int pos){ 569 map* size=getMap(in,"size"); 570 map *lout=*out; 571 if(size!=NULL && pos>0){ 572 char tmp[11]; 573 sprintf(tmp,"size_%d",pos); 574 size=getMap(in,tmp); 575 sprintf(tmp,"value_%d",pos); 576 map* tmpVin=getMap(in,tmp); 577 map* tmpVout=getMap(lout,tmp); 578 free(tmpVout->value); 579 tmpVout->value=(char*)malloc((atoi(size->value)+1)*sizeof(char)); 580 memmove(tmpVout->value,tmpVin->value,atoi(size->value)*sizeof(char)); 581 tmpVout->value[atoi(size->value)]=0; 582 }else{ 583 if(size!=NULL){ 584 map* tmpVin=getMap(in,"value"); 585 map* tmpVout=getMap(lout,"value"); 586 free(tmpVout->value); 587 tmpVout->value=(char*)malloc((atoi(size->value)+1)*sizeof(char)); 588 memmove(tmpVout->value,tmpVin->value,atoi(size->value)*sizeof(char)); 589 tmpVout->value[atoi(size->value)]=0; 590 } 591 } 592 } 593 594 static void loadMapBinaries(map** out,map* in){ 595 map* size=getMap(in,"size"); 596 map* length=getMap(in,"length"); 597 if(length!=NULL){ 598 int len=atoi(length->value); 599 int i=0; 600 for(i=0;i<len;i++){ 601 loadMapBinary(out,in,i); 602 } 603 } 604 else 605 if(size!=NULL) 606 loadMapBinary(out,in,-1); 607 char* tmpSized=NULL; 608 609 } 610 568 611 static maps* dupMaps(maps** mo){ 569 612 maps* _cursor=*mo; … … 575 618 res->next=NULL; 576 619 map* mc=_cursor->content; 577 map* tmp=getMap(mc,"size");578 char* tmpSized=NULL;579 if(tmp!=NULL){580 map* tmpV=getMap(mc,"value");581 tmpSized=(char*)malloc((atoi(tmp->value)+1)*sizeof(char));582 memmove(tmpSized,tmpV->value,atoi(tmp->value)*sizeof(char));583 }584 620 if(mc!=NULL){ 585 621 addMapToMap(&res->content,mc); 586 } 587 if(tmp!=NULL){ 588 map* tmpV=getMap(res->content,"value"); 589 free(tmpV->value); 590 tmpV->value=(char*)malloc((atoi(tmp->value)+1)*sizeof(char)); 591 memmove(tmpV->value,tmpSized,atoi(tmp->value)*sizeof(char)); 592 tmpV->value[atoi(tmp->value)]=0; 593 free(tmpSized); 622 loadMapBinaries(&res->content,mc); 594 623 } 595 624 res->next=dupMaps(&_cursor->next); … … 643 672 else 644 673 sprintf(tmp,"%s",key); 645 map* tmpSize=getMapArray(m, (char*)"size",index);674 map* tmpSize=getMapArray(m,"size",index); 646 675 if(tmpSize!=NULL && strncasecmp(key,"value",5)==0){ 647 676 #ifdef DEBUG … … 685 714 } 686 715 687 char *tmpV[ 8]={716 char *tmpV[11]={ 688 717 (char*)"size", 689 718 (char*)"value", 690 719 (char*)"uom", 691 720 (char*)"Reference", 721 (char*)"cache_file", 722 (char*)"fmimeType", 692 723 (char*)"xlink:href", 693 724 typ, 694 725 (char*)"schema", 695 (char*)"encoding" 726 (char*)"encoding", 727 (char*)"isCached" 696 728 }; 697 729 sprintf(tmpLen,"%d",len+1); 698 730 addToMap(_cursor->content,"length",tmpLen); 699 731 int i=0; 700 for(i=0;i< 8;i++){732 for(i=0;i<11;i++){ 701 733 map* tmpVI=getMap(tmp->content,tmpV[i]); 702 734 if(tmpVI!=NULL){ … … 704 736 fprintf(stderr,"%s = %s\n",tmpV[i],tmpVI->value); 705 737 #endif 706 if(i< 5)738 if(i<7) 707 739 setMapArray(_cursor->content,tmpV[i],len,tmpVI->value); 708 740 else 709 if(strncasecmp(tmpV[ 5],"mimeType",8)==0)741 if(strncasecmp(tmpV[7],"mimeType",8)==0) 710 742 setMapArray(_cursor->content,tmpV[i],len,tmpVI->value); 711 743 }
Note: See TracChangeset
for help on using the changeset viewer.