123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package cache;
- import java.util.Arrays;
- /**
- *
- * @author Juninho Carlos
- */
- public class Bloco {
-
- private boolean isDirty;
- private Boolean[] palavraComErro;
- private boolean valido;
- private boolean firstWrite;
- private long limiteInf; //valor do menor endereço do bloco
- private long limiteSuperior; // valor do maior endereço do bloco
- private boolean cachavel;
-
- public Bloco(){
- this.cachavel = true;
- this.firstWrite = true;
- this.valido = false;
- this.isDirty = false;
- this.palavraComErro = new Boolean[32];
- Arrays.fill(palavraComErro, Boolean.FALSE);
- }
-
- public void setarComoInvalido(){
- this.cachavel = false;
- if(this.firstWrite == true){
- this.firstWrite = false;
- }
- }
-
- public boolean isCachavel(){
- return this.cachavel;
- }
-
- public void inserirErro(int palavra){
- this.palavraComErro[palavra] = true;
- }
-
- public boolean isFirstWrite(){
- return this.firstWrite;
- }
-
- public Boolean[] getErroDasPalavraDoBloco(){
- return this.palavraComErro;
- }
-
- public boolean isSujo(){
- return this.isDirty;
- }
-
- public boolean hasErrorInBloco() {
- Boolean[] palavras = this.palavraComErro;
- for (Boolean erro : palavras) {
- if (erro == true) {
- return true;
- }
- }
- return false;
- }
-
-
- public void setLimitesDoBloco(long limInf,long limSup){
- this.limiteInf = limInf;
- this.limiteSuperior = limSup;
- }
-
- public boolean getErroFromPalavra(int palavra){
- return this.palavraComErro[palavra];
- }
-
- public boolean verificaBloco(long address){
- return address >= limiteInf && address < limiteSuperior+4;
- }
-
- public void setValidadeDoBloco(boolean validade){
- this.valido = validade;
- if(this.firstWrite == true){
- this.firstWrite = false;
- }
- }
-
- public void setSujeira(boolean dirty){
- this.isDirty = dirty;
- }
-
- public boolean isValido(){
- return this.valido;
- }
-
- @Override
- public String toString() {
- String s;
- s = "Sujo: " + this.isDirty +"\n";
- s += "Valido: " + this.valido + "\n";
- s += "Erro: " + this.hasErrorInBloco() + "\n";
- s += "Cachavel: " + this.cachavel + "\n";
- s += "range: " + "[ " + this.limiteInf + " - " + this.limiteSuperior + " ]\n";
- /* s += "Palavras com erro: ";
- int i = 0;
- for (Boolean boolean1 : palavraComErro) {
- s += i + " " + boolean1 + "\n";
- i++;
- } */
- return s;
- }
-
-
- }
|