/*
 * Copyright (c) 2023 codvision.com All Rights Reserved.
 */

package com.codvision.monitor.entity.server;


import com.codvision.monitor.support.Arith;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;

/**
 * 內存相关信息
 *
 * @author hxl
 */
@Builder
@ApiModel
public class Mem {

    @ApiModelProperty("内存总量")
    private double total;
    @ApiModelProperty("已用内存")
    private double used;
    @ApiModelProperty("剩余内存")
    private double free;

    public double getTotal() {
        return Arith.div(total, (1024 * 1024 * 1024), 2);
    }

    public void setTotal(long total) {
        this.total = total;
    }

    public double getUsed() {
        return Arith.div(used, (1024 * 1024 * 1024), 2);
    }

    public void setUsed(long used) {
        this.used = used;
    }

    public double getFree() {
        return Arith.div(free, (1024 * 1024 * 1024), 2);
    }

    public void setFree(long free) {
        this.free = free;
    }

    public double getUsage() {
        return Arith.mul(Arith.div(used, total, 4), 100);
    }
}

