Beispiel #1
0
  private void copyObjects(
      final FastBlobStateEngine otherStateEngine,
      final String serializerName,
      final int numThreads,
      final int threadNumber) {
    FastBlobTypeDeserializationState<?> typeDeserializationState =
        getTypeDeserializationState(serializerName);
    int maxOrdinal = typeDeserializationState.maxOrdinal() + 1;
    if (maxOrdinal < threadNumber) {
      return;
    }

    FastBlobTypeSerializationState<?> typeSerializationState =
        getTypeSerializationState(serializerName);
    boolean imageMembershipsFlags[] = new boolean[numberOfConfigurations];

    for (int i = threadNumber; i < maxOrdinal; i += numThreads) {
      Object obj = typeDeserializationState.get(i);
      if (obj != null) {
        for (int imageIndex = 0; imageIndex < numberOfConfigurations; imageIndex++) {
          imageMembershipsFlags[imageIndex] =
              typeSerializationState.getImageMembershipBitSet(imageIndex).get(i);
        }
        otherStateEngine.add(
            typeSerializationState.getSchema().getName(),
            obj,
            FastBlobImageUtils.toLong(imageMembershipsFlags));
      }
    }
  }