All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.pcp.parfait.dxm.semantics.PcpScale Maven / Gradle / Ivy

Go to download

Java implementation of the PCP MMV (Memory-Mapped Values) format, offering extremely efficient real time communication between the JVM and PCP

The newest version!
/*
 * Copyright 2009-2017 Aconex
 *
 * Licensed under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied.  See the License for the specific language governing
 * permissions and limitations under the License.
 */

package io.pcp.parfait.dxm.semantics;

import static tech.units.indriya.AbstractUnit.ONE;

import tech.units.indriya.unit.Units;

import systems.uom.quantity.Information;
import systems.uom.unicode.CLDR;

import javax.measure.quantity.Dimensionless;
import javax.measure.quantity.Time;
import javax.measure.Quantity;
import javax.measure.Unit;

interface PcpScale extends UnitValued {
    public Unit getUnit();

    static enum SpaceScale implements PcpScale {
        BYTE(0, CLDR.BYTE),
        KILOBYTE(1, CLDR.BYTE.multiply(1L << 10)),
        MEGABYTE(2, CLDR.BYTE.multiply(1L << 20)),
        GIGABYTE(3, CLDR.BYTE.multiply(1L << 30)),
        TERABYTE(4, CLDR.BYTE.multiply(1L << 40)),
        PETABYTE(5, CLDR.BYTE.multiply(1L << 50)),
        EXABYTE(6, CLDR.BYTE.multiply(1L << 60));

        private final int pmUnitsValue;
        private final Unit unit;

        private SpaceScale(int pmUnitsValue, Unit unit) {
            this.pmUnitsValue = pmUnitsValue;
            this.unit = unit;
        }

        @Override
        public Unit getUnit() {
            return unit;
        }

        @Override
        public int getPmUnitsValue() {
            return pmUnitsValue;
        }
    }

    static enum TimeScale implements PcpScale




© 2015 - 2025 Weber Informatics LLC | Privacy Policy