//Send Data With Header to Client void datasend(int sock,char* URL) { int m,n=BUF_SIZE,hlen;//hlen is header length FILE *fp; char *head=constructHeader(URL); char wbuf[BUF_SIZE]; bzero(wbuf,BUF_SIZE); fp=fopen(URL+1,"rb"); hlen=strlen(head); printf("%s\n",head); strcpy(wbuf,head); //printf("%d",hlen); //printf("%d",m); m=fread(wbuf+hlen,1,BUF_SIZE-hlen,fp);//combine header and data if (m < 0) error("ERROR read from file"); m=send (sock,wbuf,hlen+m,0); if (m < 0) error("ERROR writing to socket"); //printf("%s",wbuf); bzero(wbuf,BUF_SIZE); while (n == BUF_SIZE) {n=fread(wbuf,1,BUF_SIZE,fp); //printf("%d",n); if (n < 0) error("ERROR read from file"); m=send(sock,wbuf,BUF_SIZE,0); //printf("%s",wbuf); //printf("%d",m); if (m < 0) error("ERROR writing to socket"); bzero(wbuf,BUF_SIZE); //if(feof(fp)==0) break; } fclose(fp); }
BamCat( std::vector<std::string> const & rfilenames, bool const putrank = false, bool const rstreaming = false ) : BamAlignmentDecoder(putrank), streaming(rstreaming), infos(libmaus::bambam::BamAlignmentDecoderInfo::filenameToInfo(rfilenames)), Pwrappers(constructWrappers(infos,streaming)), Pheader(constructHeader(infos,Pwrappers)), header(*Pheader), fileid(-1), wrapper(), decoder(0) { }