;+ ; Describes directory objects. It contains all useful ; informations about a directory. ; ; :Author: ; Gaƫlle Boisnard ; ; :History: ; 2004/07/23: Created ; ; 2004/07/23: Last Edit ;- ;---------------------------------------------------- FUNCTION directory::init, name, path ;---------------------------------------------------- self.name=name self.path=path return, 1 end ;---------------------------------------------------- PRO directory::cleanup ;---------------------------------------------------- length=(size(*p_kfiles))[1] for i=0, length-1 do begin ptr_free, (*p_kfiles)[i] endfor ptr_free, p_kfiles length=(size(*p_n1files))[1] for i=0, length-1 do begin ptr_free, (*p_n1files)[i] endfor ptr_free, p_n1files length=(size(*p_n2files))[1] for i=0, length-1 do begin ptr_free, (*p_n2files)[i] endfor ptr_free, p_n2files length=(size(*p_n3files))[1] for i=0, length-1 do begin ptr_free, (*p_n3files)[i] endfor ptr_free, p_n3files length=(size(*p_n3afiles))[1] for i=0, length-1 do begin ptr_free, (*p_n3afiles)[i] endfor ptr_free, p_n3afiles length=(size(*p_n3bfiles))[1] for i=0, length-1 do begin ptr_free, (*p_n3bfiles)[i] endfor ptr_free, p_n3bfiles length=(size(*p_n3cfiles))[1] for i=0, length-1 do begin ptr_free, (*p_n3cfiles)[i] endfor ptr_free, p_n3cfiles length=(size(*p_n3dfiles))[1] for i=0, length-1 do begin ptr_free, (*p_n3dfiles)[i] endfor ptr_free, p_n3dfiles end ;---------------------------------------------------- FUNCTION directory::findfiles ;---------------------------------------------------- files=findfile(self.path+'/'+self.name+'/k/', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/k/')) endfor self.p_kfiles=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n1', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/n1/')) endfor self.p_n1files=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n2', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/n2/')) endfor self.p_n2files=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n3', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/n3/')) endfor self.p_n3files=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n3a', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i, self.path+'/'+self.name+'/n3a/'])) endfor self.p_n3afiles=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n3b', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/n3b/')) endfor self.p_n3bfiles=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n3c', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/n3c/')) endfor self.p_n3cfiles=ptr_new(fileslist) endif files=findfile(self.path+'/'+self.name+'/n3d', count=found) if (found gt 0) then begin fileslist=make_array(found, /ptr) for i=0, found-1 do begin fileslist[i]=ptr_new(obj_new('file', files[i], self.path+'/'+self.name+'/n3d/')) endfor self.p_n3dfiles=ptr_new(fileslist) endif return, 1 end ;---------------------------------------------------- FUNCTION directory::getname ;---------------------------------------------------- return, self.name end ;---------------------------------------------------- FUNCTION directory::getkfiles ;---------------------------------------------------- if (ptr_valid(self.p_kfiles) eq 0) then begin a=self->findfiles() endif return, self.p_kfiles end ;---------------------------------------------------- FUNCTION directory::getn1files ;---------------------------------------------------- if (ptr_valid(self.p_n1files) eq 0) then begin a=self->findfiles() endif return, self.p_n1files end ;---------------------------------------------------- FUNCTION directory::getn2files ;---------------------------------------------------- if (ptr_valid(self.p_n2files) eq 0) then begin a=self->findfiles() endif return, self.p_n2files end ;---------------------------------------------------- FUNCTION directory::getn3files ;---------------------------------------------------- if (ptr_valid(self.p_n3files) eq 0) then begin a=self->findfiles() endif return, self.p_n3files end ;---------------------------------------------------- FUNCTION directory::getn3afiles ;---------------------------------------------------- if (ptr_valid(self.p_n3afiles) eq 0) then begin a=self->findfiles() endif return, self.p_n3afiles end ;---------------------------------------------------- FUNCTION directory::getn3bfiles ;---------------------------------------------------- if (ptr_valid(self.p_n3bfiles) eq 0) then begin a=self->findfiles() endif return, self.p_n3bfiles end ;---------------------------------------------------- FUNCTION directory::getn3cfiles ;---------------------------------------------------- if (ptr_valid(self.p_n3cfiles) eq 0) then begin a=self->findfiles() endif return, self.p_n3cfiles end ;---------------------------------------------------- FUNCTION directory::getn3dfiles ;---------------------------------------------------- if (ptr_valid(self.p_n3dfiles) eq 0) then begin a=self->findfiles() endif return, self.p_n3dfiles end ;+ ; Describes directory objects. It contains all useful ; informations about a directory. ;- PRO directory__define define={DIRECTORY, $ name:'', $ path:'', $ p_kfiles:ptr_new(), $ p_n1files:ptr_new(), $ p_n2files:ptr_new(), $ p_n3files:ptr_new(), $ p_n3afiles:ptr_new(), $ p_n3bfiles:ptr_new(), $ p_n3cfiles:ptr_new(), $ p_n3dfiles:ptr_new(), $ p_pdffiles:ptr_new(), $ p_lisfiles:ptr_new()} end