changed receiver to work with many writer threads for only receiver without compression

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@707 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2013-12-16 10:07:08 +00:00
parent d2958eb0a4
commit a485e33e82
7 changed files with 1237 additions and 1303 deletions

View File

@ -541,7 +541,7 @@ enum communicationProtocol{
};
int ReceiveDataOnly(void* buf,int length){
int ReceiveDataOnly(void* buf,int length=0){
if (buf==NULL) return -1;
@ -562,16 +562,26 @@ enum communicationProtocol{
break;
case UDP:
if (socketDescriptor<0) return -1;
// while(length>0){
for(int i=0;i<packets_per_frame;i++){
nsending=packet_size;
//nsending = (length>packet_size) ? packet_size:length;
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
if(!nsent) break;
length-=nsent;
total_sent+=nsent;
//if length given
if(length){
while(length>0){
nsending=packet_size;
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
if(!nsent) break;
length-=nsent;
total_sent+=nsent;
}
}
//depends on packets per frame
else{
for(int i=0;i<packets_per_frame;i++){
nsending=packet_size;
nsent = recvfrom(socketDescriptor,(char*)buf+total_sent,nsending, 0, (struct sockaddr *) &clientAddress, &clientAddress_length);
if(!nsent) break;
length-=nsent;
total_sent+=nsent;
}
}
break;
default:
;