public void forEach(final MetaData metaData)
    {
        int counterId = 0;

        final AtomicBuffer metaDataBuffer = this.metaDataBuffer;

        for (int i = 0, capacity = metaDataBuffer.capacity(); i < capacity; i += METADATA_LENGTH)
        {
            final int recordStatus = metaDataBuffer.getIntVolatile(i);
            if (RECORD_ALLOCATED == recordStatus)
            {
                final int typeId = metaDataBuffer.getInt(i + TYPE_ID_OFFSET);
                final String label = labelValue(metaDataBuffer, i);
                final DirectBuffer keyBuffer = new UnsafeBuffer(metaDataBuffer, i + KEY_OFFSET, MAX_KEY_LENGTH);

                metaData.accept(counterId, typeId, keyBuffer, label);
            }
            else if (RECORD_UNUSED == recordStatus)
            {
                break;
            }

            counterId++;
        }
    }
public void forEach ( final MetaData metaData ) { int counterId = 0 ; final AtomicBuffer metaDataBuffer = this . metaDataBuffer ; for ( int i = 0 , capacity = metaDataBuffer . capacity ( ) ; i < capacity ; i += METADATA_LENGTH ) { final int recordStatus = metaDataBuffer . getIntVolatile ( i ) ; if ( RECORD_ALLOCATED == recordStatus ) { final int typeId = metaDataBuffer . getInt ( i + TYPE_ID_OFFSET ) ; final String label = labelValue ( metaDataBuffer , i ) ; final DirectBuffer keyBuffer = new UnsafeBuffer ( metaDataBuffer , i + KEY_OFFSET , MAX_KEY_LENGTH ) ; metaData . accept ( counterId , typeId , keyBuffer , label ) ; } else if ( RECORD_UNUSED == recordStatus ) { break ; } counterId ++ ; } }
Iterate over all the metadata in the buffer.

@param metaData function to be called for each metadata record.