30 PacketPriority mPriority;
31 NetworkPeer::Reliability mReliability;
32 SubClientId mSenderSubId;
33 Compressibility mCompressible;
35 [[nodiscard]]
constexpr explicit Packet(
36 PacketPriority priority = PacketPriority::MediumPriority,
37 NetworkPeer::Reliability reliability = NetworkPeer::Reliability::ReliableOrdered,
38 SubClientId clientSubId = SubClientId::PrimaryClient,
41 : mPriority(priority),
42 mReliability(reliability),
43 mSenderSubId(clientSubId),
44 mCompressible(compress ? Compressibility::Compressible : Compressibility::Incompressible) {}
46 virtual ~Packet() =
default;
50 [[nodiscard]] virtual ::std::string_view getName()
const = 0;
52 [[nodiscard]]
virtual PacketRuntimeId getRuntimeId()
const;
54 LLAPI
void sendToServer()
const;
55 LLAPI
void sendToClient(
::NetworkIdentifier const& identifier, ::SubClientId clientId)
const;
57 LLAPI
void sendToClients(::std::vector<::NetworkIdentifierWithSubId>
const&);
58 LLAPI
void sendBroadcast();
99 static bool ensureRegistered() {
100 return detail::packetRegistration<Derived>;
104 using Packet::Packet;
107 [[nodiscard]] ::std::string_view getName()
const override {
108 return reflection::type_unprefix_name_v<Derived>;
110 [[nodiscard]] PacketRuntimeId getRuntimeId()
const override {
111 constexpr PacketRuntimeId runtimeId = ll::hash_utils::doHash(reflection::type_unprefix_name_v<Derived>);
115 inline static bool sRegistered = ensureRegistered();