RunLengthBitVectorStream(std::istream & rin, uint64_t const rbaseoffset = 0) : in(rin), blocksize(readBlockSize(in)), n(readN(in)), indexpos(readIndexPos(in)), blocks(readBlocks(in,indexpos)), pointerarrayoffset(indexpos + 1*sizeof(uint64_t)), baseoffset(rbaseoffset), rankaccbits(libmaus::rank::RunLengthBitVectorBase::getRankAccBits()) { #if 0 std::cerr << "indexpos=" << indexpos << std::endl; std::cerr << "blocksize=" << blocksize << std::endl; std::cerr << "blocks=" << blocks << std::endl; std::cerr << "n=" << n << std::endl; #endif }
int main ( int argc, char *argv[] ) { char *diskFileName = argv[1]; char *hostFileName = argv[2]; FILE* diskFile; diskFile = fopen(diskFileName,"r"); FILE* hostFile; hostFile = fopen(hostFileName,"r"); if(diskFile == NULL) { printf("File not found.\n"); return 0; } if(hostFile == NULL) { printf("File not found.\n"); return 0; } fclose(hostFile); int blockSize = readBlockSize(diskFile); int fatStart = readFATStart(diskFile); int numFatBlocks = readFATBlocks(diskFile); int rootDirStart = readDirStart(diskFile); int numRootDirBlocks = readDirBlocks(diskFile); int* fatInfo; fatInfo = findFATBlocks(diskFile, fatStart, numFatBlocks, blockSize); int availableBlocks = fatInfo[0]; fclose(diskFile); putFileOnClient(diskFileName, hostFileName, availableBlocks, rootDirStart, numRootDirBlocks, blockSize, fatStart, numFatBlocks); return 1; }