Ejemplo n.º 1
0
    static EWAHBoolArray<uint64_t>* readOneBitmap(ifstream* inputStream) {
        EWAHBoolArray<uint64_t>* ewah = new EWAHBoolArray<uint64_t>;

        uint32_t sizeInBits = 0;
        inputStream->read((char *)&sizeInBits, 4);
        sizeInBits = swapBytesIfNecessary(sizeInBits);

        uint32_t numberOfOnes = 0;
        inputStream->read((char *)&numberOfOnes, 4);
        numberOfOnes = swapBytesIfNecessary(numberOfOnes);

        uint32_t tmp = 0;
        for (unsigned long i = 0; i<numberOfOnes; ++i) {
            inputStream->read((char *)&tmp, 4);
            tmp = swapBytesIfNecessary(tmp);
            ewah->set(tmp);
        }

        ewah->setSizeInBits(sizeInBits);
        return ewah;
    }