Улучшенная организация кода
This commit is contained in:
147
src/main/java/im/rosetta/packet/Packet26SignalPeer.java
Normal file
147
src/main/java/im/rosetta/packet/Packet26SignalPeer.java
Normal file
@@ -0,0 +1,147 @@
|
||||
package im.rosetta.packet;
|
||||
|
||||
import im.rosetta.packet.runtime.NetworkSignalType;
|
||||
import io.orprotocol.Stream;
|
||||
import io.orprotocol.packet.Packet;
|
||||
|
||||
/**
|
||||
* Пакет cигналинга для совершения звонка. Учавствует в обмене ключами,
|
||||
* иницилизации звонка.
|
||||
*/
|
||||
public class Packet26SignalPeer extends Packet {
|
||||
|
||||
/**
|
||||
* Идентификатор отправителя сигнала, обычно это PK пользователя, который отправляет пакет
|
||||
*/
|
||||
private String src;
|
||||
/**
|
||||
* Идентификатор получателя сигнала, обычно это PK пользователя, который должен принять пакет
|
||||
*/
|
||||
private String dst;
|
||||
|
||||
/**
|
||||
* Если сигнал предназначен для обмена ключами, то в это поле
|
||||
* будет помещаться sharedPublic публичная часть ключа DH алгоритма
|
||||
*/
|
||||
private String sharedPublic;
|
||||
|
||||
/**
|
||||
* Тип сигнала
|
||||
*/
|
||||
private NetworkSignalType signalType;
|
||||
|
||||
/**
|
||||
* Идентификатор комнаты, в которой происходит звонок, заполняется если тип сигнала CREATE_ROOM, иначе null
|
||||
*/
|
||||
private String roomId;
|
||||
|
||||
@Override
|
||||
public void read(Stream stream) {
|
||||
this.signalType = NetworkSignalType.fromCode(stream.readInt8());
|
||||
this.src = stream.readString();
|
||||
this.dst = stream.readString();
|
||||
if (signalType == NetworkSignalType.KEY_EXCHANGE) {
|
||||
this.sharedPublic = stream.readString();
|
||||
}
|
||||
if(signalType == NetworkSignalType.CREATE_ROOM) {
|
||||
this.roomId = stream.readString();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream write() {
|
||||
Stream stream = new Stream();
|
||||
stream.writeInt16(this.packetId);
|
||||
stream.writeInt8(this.signalType.getCode());
|
||||
stream.writeString(this.src);
|
||||
stream.writeString(this.dst);
|
||||
if (signalType == NetworkSignalType.KEY_EXCHANGE) {
|
||||
stream.writeString(this.sharedPublic);
|
||||
}
|
||||
if(signalType == NetworkSignalType.CREATE_ROOM) {
|
||||
stream.writeString(this.roomId);
|
||||
}
|
||||
return stream;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить идентификатор отправителя сигнала
|
||||
* @return идентификатор отправителя сигнала
|
||||
*/
|
||||
public String getSrc() {
|
||||
return src;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить идентификатор отправителя сигнала
|
||||
* @param src идентификатор отправителя сигнала
|
||||
*/
|
||||
public void setSrc(String src) {
|
||||
this.src = src;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить идентификатор получателя сигнала
|
||||
* @return идентификатор получателя сигнала
|
||||
*/
|
||||
public String getDst() {
|
||||
return dst;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить идентификатор получателя сигнала
|
||||
* @param dst идентификатор получателя сигнала
|
||||
*/
|
||||
public void setDst(String dst) {
|
||||
this.dst = dst;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить публичную часть ключа DH алгоритма, если сигнал предназначен для обмена ключами
|
||||
* @return публичная часть ключа DH алгоритма или null, если сигнал не предназначен для обмена ключами
|
||||
*/
|
||||
public String getSharedPublic() {
|
||||
return sharedPublic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить публичную часть ключа DH алгоритма, если сигнал предназначен для обмена ключами
|
||||
* @param sharedPublic публичная часть ключа DH алгоритма
|
||||
*/
|
||||
public void setSharedPublic(String sharedPublic) {
|
||||
this.sharedPublic = sharedPublic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить тип сигнала
|
||||
* @return тип сигнала
|
||||
*/
|
||||
|
||||
public NetworkSignalType getSignalType() {
|
||||
return signalType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить тип сигнала
|
||||
* @param signalType тип сигнала
|
||||
*/
|
||||
public void setSignalType(NetworkSignalType signalType) {
|
||||
this.signalType = signalType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить идентификатор созданной комнаты, если тип сигнала CREATE_ROOM
|
||||
* @return идентификатор комнаты, если тип сигнала CREATE_ROOM, иначе null
|
||||
*/
|
||||
public String getRoomId() {
|
||||
return roomId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить идентификатор комнаты, в которой происходит звонок, если тип сигнала CREATE_ROOM
|
||||
* @param roomId идентификатор комнаты, если тип сигнала CREATE_ROOM
|
||||
*/
|
||||
public void setRoomId(String roomId) {
|
||||
this.roomId = roomId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user