@@ -0,0 +1,2129 @@
+/*%0A * Copyright 2016 higherfrequencytrading.com%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage net.openhft.chronicle.core.values;%0A%0A/**%0A * User: peter.lawrey Date: 10/10/13 Time: 07:11%0A */%0Apublic interface TwoLongValue extends LongValue %7B%0A    long getValue2();%0A%0A    void setValue2(long value2);%0A%0A    long getVolatileValue2();%0A%0A    void setOrderedValue2(long value);%0A%0A    long addValue2(long delta);%0A%0A    long addAtomicValue2(long delta);%0A%0A    boolean compareAndSwapValue2(long expected, long value);%0A%0A    default void setMaxValue2(long value) %7B%0A        for (; ; ) %7B%0A            long pos = getVolatileValue2();%0A            if (pos %3E= value)%0A                break;%0A            if (compareAndSwapValue2(pos, value))%0A                break;%0A        %7D%0A    %7D%0A%0A    default void setMinValue2(long value) %7B%0A        for (; ; ) %7B%0A            long pos = getVolatileValue2();%0A            if (pos %3C= value)%0A                break;%0A            if (compareAndSwapValue2(pos, value))%0A                break;%0A        %7D%0A    %7D%0A%0A    default void setValues(long value1, long value2) %7B%0A        setValue2(value2);%0A        setOrderedValue(value1);%0A    %7D%0A%0A    default void getValues(long%5B%5D values) %7B%0A        long value1 = getVolatileValue2();%0A        long value2 = getValue2();%0A        while (true) %7B%0A            long value1b = getVolatileValue2();%0A            long value2b = getValue2();%0A            if (value1 == value1b && value2 == value2b) %7B%0A                values%5B0%5D = value1;%0A                values%5B1%5D = value2;%0A                return;%0A            %7D%0A            value1 = value1b;%0A            value2 = value2b;%0A        %7D%0A    %7D%0A%7D%0A

Add support for two long references for Queue #404