@Override
 public void close() {
   bitSet.close();
   indexDataBuffer.close();
   bitSet = null;
   indexDataBuffer = null;
 }
 public FixedBitSingleValueMultiColWriter(
     PinotDataBuffer dataBuffer,
     int rows,
     int cols,
     int[] columnSizesInBits,
     boolean[] hasNegativeValues)
     throws Exception {
   init(rows, cols, columnSizesInBits, hasNegativeValues);
   this.indexDataBuffer = dataBuffer;
   bitSet = PinotDataCustomBitSet.withDataBuffer(bytesRequired, indexDataBuffer);
 }
 public FixedBitSingleValueMultiColWriter(File file, int rows, int cols, int[] columnSizesInBits)
     throws Exception {
   init(rows, cols, columnSizesInBits);
   this.indexDataBuffer =
       PinotDataBuffer.fromFile(
           file,
           0,
           bytesRequired,
           ReadMode.mmap,
           FileChannel.MapMode.READ_WRITE,
           file.getAbsolutePath() + this.getClass().getCanonicalName());
   bitSet = PinotDataCustomBitSet.withDataBuffer(bytesRequired, indexDataBuffer);
 }
 /**
  * @param row
  * @param col
  * @param val
  */
 public void setInt(int row, int col, int val) {
   assert val >= minValues[col] && val <= maxValues[col];
   long bitOffset = ((long) rowSizeInBits) * row + columnOffsetsInBits[col];
   val = val + offsets[col];
   bitSet.writeInt(bitOffset, colSizesInBits[col], val);
 }