;+ ; Description of the object datadir_list which contains a ; pointer towards a table of pointers towards objects ; directories in the DATA_RPWS directory ; ; :Author: ; Gaƫlle Boisnard ; ; :History: ; 2007/01/16: Created ; ; 2009/11/24: Last Edit ;- ;---------------------------------------------------- FUNCTION datadir_list::init, path ;---------------------------------------------------- ; files: useful directories files=['Earth/', 'Ico_m14/', 'Turn_on/', 'Venus1/', 'Venus2/','????_???_???'] ndirnames = 7 dirnames=make_array(ndirnames, /ptr) found = intarr(ndirnames) path1=path cd, path1, current=olddir for i=0, 4 do begin dirnames[i]=ptr_new(file_search( files[i], count=found1, fully_qualify_path=0)) found[i]=found1 endfor cd, path1, current=olddir dirnames[6]=ptr_new(file_search( files[5], count=found1, fully_qualify_path=0)) found[6]=found1 cd, getenv('ROOT_RPWS')+'/pro' nfiles=total(found) dirlist=make_array(nfiles, /ptr) k=0 for i=0, ndirnames-1 do begin for j=0, found[i]-1 do begin dirlist[k]=ptr_new(obj_new('directory', (*(dirnames[i]))[j], path)) k=k+1 endfor ptr_free, dirnames[i] endfor if k gt 0 then begin self.dirs=ptr_new(dirlist[0:k-1]) endif else self.dirs=ptr_new() return, 1 end ;---------------------------------------------------- PRO datadir_list::cleanup ;---------------------------------------------------- for i=0, n_elements(*self.dirs) do begin ptr_free, (*self.dirs)[i] endfor ptr_free, self.dirs end ;---------------------------------------------------- FUNCTION datadir_list::getdirnames ;---------------------------------------------------- if (ptr_valid(self.dirs)) then begin length=(size(*self.dirs))[1] dirnames=strarr(length) for i=0, length-1 do begin dirnames[i]=(*(*self.dirs)[i])->getname() endfor p_dirnames=ptr_new(dirnames) endif else begin p_dirnames=ptr_new() endelse return, p_dirnames end ;---------------------------------------------------- FUNCTION datadir_list::getdirs ;---------------------------------------------------- return, self.dirs end ;+ ; Description of the object datadir_list which contains a ; pointer towards a table of pointers towards objects ; directories in the DATA_RPWS directory ;- PRO datadir_list__define define={DATADIR_LIST, $ dirs:ptr_new()} ; dirs->tab(->directory) end