diff --git a/src/main/java/com/rosetta/im/packet/runtime/SearchInfo.java b/src/main/java/com/rosetta/im/packet/runtime/SearchInfo.java new file mode 100644 index 0000000..2b284d4 --- /dev/null +++ b/src/main/java/com/rosetta/im/packet/runtime/SearchInfo.java @@ -0,0 +1,112 @@ +package com.rosetta.im.packet.runtime; + +import io.orprotocol.Stream; +import io.orprotocol.serializer.Serializable; + +public class SearchInfo implements Serializable { + + public String username; + public String title; + public String publicKey; + public int verified; + public NetworkStatus networkStatus; + + /** + * Получает имя пользователя. + * @return Имя пользователя. + */ + public String getUsername() { + return username; + } + + /** + * Устанавливает имя пользователя. + * @param username Имя пользователя. + */ + public void setUsername(String username) { + this.username = username; + } + + /** + * Получает заголовок пользователя. + * @return Заголовок пользователя. + */ + public String getTitle() { + return title; + } + + /** + * Устанавливает заголовок пользователя. + * @param title Заголовок пользователя. + */ + public void setTitle(String title) { + this.title = title; + } + + /** + * Получает публичный ключ пользователя. + * @return Публичный ключ пользователя. + */ + public String getPublicKey() { + return publicKey; + } + + /** + * Устанавливает публичный ключ пользователя. + * @param publicKey Публичный ключ пользователя. + */ + public void setPublicKey(String publicKey) { + this.publicKey = publicKey; + } + + /** + * Получает статус верификации пользователя. + * @return Статус верификации пользователя. + */ + public int getVerified() { + return verified; + } + + /** + * Устанавливает статус верификации пользователя. + * @param verified Статус верификации пользователя. + */ + public void setVerified(int verified) { + this.verified = verified; + } + + /** + * Получает сетевой статус пользователя. + * @return Сетевой статус пользователя. + */ + public NetworkStatus getNetworkStatus() { + return networkStatus; + } + + /** + * Устанавливает сетевой статус пользователя. + * @param networkStatus Сетевой статус пользователя. + */ + public void setNetworkStatus(NetworkStatus networkStatus) { + this.networkStatus = networkStatus; + } + + @Override + public void readFromStream(Stream stream) { + this.username = stream.readString(); + this.title = stream.readString(); + this.publicKey = stream.readString(); + this.verified = stream.readInt8(); + this.networkStatus = NetworkStatus.fromCode(stream.readInt8()); + } + + @Override + public void writeToStream(Stream stream) { + stream.writeString(this.username); + stream.writeString(this.title); + stream.writeString(this.publicKey); + stream.writeInt8(this.verified); + stream.writeInt8(this.networkStatus.getCode()); + } + +} diff --git a/src/main/java/io/orprotocol/serializer/Serializable.java b/src/main/java/io/orprotocol/serializer/Serializable.java new file mode 100644 index 0000000..7c1f90d --- /dev/null +++ b/src/main/java/io/orprotocol/serializer/Serializable.java @@ -0,0 +1,16 @@ +package io.orprotocol.serializer; + +import io.orprotocol.Stream; + +public interface Serializable { + /** + * Сериализует объект из потока данных. Используется при получении данных. + * @param stream Поток данных для сериализации + */ + void readFromStream(Stream stream); + /** + * Десериализует обьект в поток данных. Используется при отправке данных. + * @return Десериализованный объект + */ + void writeToStream(Stream stream); +}