public void update()

in mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/OffHeapSnapshotCycleHandler.java [41:71]


    public void update(long totNumReports, long lastMsgSeqNumProcessed, int securityId, long noChunks, long currentChunk) {
        if(currentChunk > noChunks) {
            logger.error("Current chunk number '{}' is more than noChunks number '{}' for securityId '{}'", currentChunk, noChunks, securityId);
            return;
        }
        if(dataSize != totNumReports){
            dataSize = (int)totNumReports;
            dataCache.putAll(data);
            data.clear();
        }
        MutableLongToObjPair<LongArray> securityIdMetaData = data.computeIfAbsent(securityId, ignore -> {
            if (dataCache.containsKey(securityId)) {
                return dataCache.remove(securityId);
            } else {
                long arrayLength = noChunks > MAX_NO_CHUNK_VALUE ? noChunks : MAX_NO_CHUNK_VALUE;
                LongArray newArray = new LongArray(arrayLength);
                clearArray(newArray);
                return new MutableLongToObjPair<>(noChunks, newArray);
            }
        });

        LongArray currentArray = securityIdMetaData.getValue();
        if(securityIdMetaData.getKey() != noChunks) {
            if(currentArray.getLength() < noChunks) {
                currentArray.reInit(noChunks);
            }
            securityIdMetaData.setKey(noChunks);
            clearArray(currentArray);
        }
        currentArray.setValue(currentChunk - 1, lastMsgSeqNumProcessed);
    }