Doxygen Source Code Documentation
        
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search   
thd_checkidc.c
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 #include "mrilib.h"
00008 #include "thd.h"
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 void THD_check_idcodes( THD_sessionlist * ssl )
00017 {
00018    int iss , idd,jdd , ivv , dsnum , nd ;
00019    THD_session * sess ;
00020    THD_3dim_dataset * dset , ** dsl ;
00021 
00022 ENTRY("THD_check_idcodes") ;
00023 
00024    
00025 
00026    if( ! ISVALID_SESSIONLIST(ssl) || ssl->num_sess <= 0 ) EXRETURN ;
00027 
00028    
00029 
00030    for( dsnum=iss=0 ; iss < ssl->num_sess ; iss++ ){
00031       sess = ssl->ssar[iss] ;
00032       for( idd=0 ; idd < sess->num_dsset ; idd++ ){
00033          for( ivv=FIRST_VIEW_TYPE ; ivv <= LAST_VIEW_TYPE ; ivv++ ){
00034             dset = sess->dsset[idd][ivv] ;
00035             if( ISVALID_DSET(dset) ) dsnum++ ;
00036          }
00037       }
00038    }
00039 
00040    
00041 
00042    dsl = (THD_3dim_dataset **) malloc( sizeof(THD_3dim_dataset *) * dsnum ) ;
00043 
00044    for( nd=iss=0 ; iss < ssl->num_sess ; iss++ ){
00045       sess = ssl->ssar[iss] ;
00046       for( idd=0 ; idd < sess->num_dsset ; idd++ ){
00047          for( ivv=FIRST_VIEW_TYPE ; ivv <= LAST_VIEW_TYPE ; ivv++ ){
00048             dset = sess->dsset[idd][ivv] ;
00049             if( ISVALID_DSET(dset) ) dsl[nd++] = dset ;
00050          }
00051       }
00052    }
00053 
00054    
00055 
00056    for( iss=idd=0 ; idd < dsnum-1 ; idd++ ){
00057      nd = 0 ;
00058      for( jdd=idd+1 ; jdd < dsnum ; jdd++ ){
00059        if( DUPLICATE_DSETS(dsl[idd],dsl[jdd]) ){ 
00060          fprintf(stderr,
00061                  "\n*** WARNING: Identical ID codes in %s and %s",
00062                  DSET_HEADNAME(dsl[idd]) , DSET_HEADNAME(dsl[jdd]) ) ;
00063          iss++ ;
00064        }
00065      }
00066    }
00067 
00068    if( iss > 0 ) fprintf(stderr,"\n") ;
00069 
00070    free(dsl) ; EXRETURN ;
00071 }