enum metaBigFileType isBigWigOrBed(char* filename) /* Peak at a file to see if it's bigWig */ { enum metaBigFileType ret = isNotBig; bits32 magic; struct udcFile* udc; udc = udcFileOpen(filename, udcDefaultDir()); /* Read magic number at head of file and use it to see if we are proper file type, and * see if we are byte-swapped. */ udcMustRead(udc, &magic, sizeof(magic)); if (magic == bigWigSig) ret = isaBigWig; else if (magic == bigBedSig) ret = isaBigBed; if (ret != isNotBig) { udcFileClose(&udc); return ret; } magic = byteSwap32(magic); if (magic == bigWigSig) ret = isaBigWig; else if (magic == bigBedSig) ret = isaBigBed; udcFileClose(&udc); return ret; }
static int kuClose(knetFile *fp) /* Close and free fp->udcf. */ { verbose(2, "udcClose(%lu)\n", (unsigned long)(fp->udcf)); udcFileClose(&(fp->udcf)); return 0; }
static void aswClose(struct annoStreamer **pVSelf) /* Free wiggleDataStream and self. */ { if (pVSelf == NULL) return; struct annoStreamWig *self = *(struct annoStreamWig **)pVSelf; udcFileClose(&(self->wibFH)); freeMem(self->wibFile); annoStreamerFree(pVSelf); }
void bptFileClose(struct bptFile **pBpt) /* Close down and deallocate index file. */ { struct bptFile *bpt = *pBpt; if (bpt != NULL) { udcFileClose(&bpt->udc); freeMem(bpt->fileName); bptFileDetach(pBpt); } }
void cirTreeFileClose(struct cirTreeFile **pCrt) /* Close and free up cirTree file opened with cirTreeFileAttach. */ { struct cirTreeFile *crt = *pCrt; if (crt != NULL) { freez(&crt->fileName); udcFileClose(&crt->udc); cirTreeFileDetach(pCrt); } }
void crTreeFileClose(struct crTreeFile **pCrt) /* Close and free up crTree file opened with crTreeFileAttach. */ { struct crTreeFile *crt = *pCrt; if (crt != NULL) { cirTreeFileDetach(&crt->cir); bptFileDetach(&crt->chromBpt); udcFileClose(&crt->udc); freez(&crt->fileName); freez(pCrt); } }
void bbiFileClose(struct bbiFile **pBwf) /* Close down a big wig/big bed file. */ { struct bbiFile *bwf = *pBwf; if (bwf != NULL) { cirTreeFileDetach(&bwf->unzoomedCir); slFreeList(&bwf->levelList); slFreeList(&bwf->levelList); bptFileDetach(&bwf->chromBpt); udcFileClose(&bwf->udc); freeMem(bwf->fileName); freez(pBwf); } }
static void checkWibFile(struct annoStreamWig *self, char *wibFile) /* If self doesn't have a .wib file name and handle open, or if the new wibFile is * not the same as the old one, update self to use new wibFile. */ { char *realWibFile = hReplaceGbdb(wibFile); if (self->wibFile == NULL || !sameString(self->wibFile, realWibFile)) { udcFileClose(&self->wibFH); freeMem(self->wibFile); self->wibFile = cloneString(realWibFile); self->wibFH = udcFileMayOpen(self->wibFile, NULL); if (self->wibFH == NULL) errAbort("annoStreamWig: udc can't open wibFile '%s'", self->wibFile); } freeMem(realWibFile); }