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
    }
Example #2
0
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;
}