mirror of
https://github.com/binlaab/nanofiles.git
synced 2026-07-01 18:36:30 +02:00
práctica 3, falta la última parte
This commit is contained in:
60
es/um/redes/nanoFiles/tcp/message/PeerMessageOps.java
Normal file
60
es/um/redes/nanoFiles/tcp/message/PeerMessageOps.java
Normal file
@@ -0,0 +1,60 @@
|
||||
package es.um.redes.nanoFiles.tcp.message;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class PeerMessageOps {
|
||||
|
||||
public static final byte OPCODE_INVALID_CODE = 0;
|
||||
|
||||
/*
|
||||
* TODO: (Boletín MensajesBinarios) Añadir aquí todas las constantes que definen
|
||||
* los diferentes tipos de mensajes del protocolo de comunicación con un par
|
||||
* servidor de ficheros (valores posibles del campo "operation").
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* TODO: (Boletín MensajesBinarios) Definir constantes con nuevos opcodes de
|
||||
* mensajes definidos anteriormente, añadirlos al array "valid_opcodes" y añadir
|
||||
* su representación textual a "valid_operations_str" EN EL MISMO ORDEN.
|
||||
*/
|
||||
private static final Byte[] _valid_opcodes = { OPCODE_INVALID_CODE,
|
||||
|
||||
|
||||
|
||||
};
|
||||
private static final String[] _valid_operations_str = { "INVALID_OPCODE",
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
private static Map<String, Byte> _operation_to_opcode;
|
||||
private static Map<Byte, String> _opcode_to_operation;
|
||||
|
||||
static {
|
||||
_operation_to_opcode = new TreeMap<>();
|
||||
_opcode_to_operation = new TreeMap<>();
|
||||
for (int i = 0; i < _valid_operations_str.length; ++i) {
|
||||
_operation_to_opcode.put(_valid_operations_str[i].toLowerCase(), _valid_opcodes[i]);
|
||||
_opcode_to_operation.put(_valid_opcodes[i], _valid_operations_str[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforma una cadena en el opcode correspondiente
|
||||
*/
|
||||
protected static byte operationToOpcode(String opStr) {
|
||||
return _operation_to_opcode.getOrDefault(opStr.toLowerCase(), OPCODE_INVALID_CODE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforma un opcode en la cadena correspondiente
|
||||
*/
|
||||
public static String opcodeToOperation(byte opcode) {
|
||||
return _opcode_to_operation.getOrDefault(opcode, null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user