From b7a2b0f794a91e01b7f3385a2abc6aa85558c679 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 16 Oct 2024 23:35:52 -0700 Subject: [PATCH] [ntcore] Move metatopic creation from SetLocal to constructor --- .../main/native/cpp/server/ServerClientLocal.cpp | 12 ++++++++++++ .../src/main/native/cpp/server/ServerClientLocal.h | 3 +-- ntcore/src/main/native/cpp/server/ServerImpl.cpp | 14 +++----------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ntcore/src/main/native/cpp/server/ServerClientLocal.cpp b/ntcore/src/main/native/cpp/server/ServerClientLocal.cpp index 36c99d9ae1d..e99ca4f9785 100644 --- a/ntcore/src/main/native/cpp/server/ServerClientLocal.cpp +++ b/ntcore/src/main/native/cpp/server/ServerClientLocal.cpp @@ -8,6 +8,18 @@ using namespace nt::server; +ServerClientLocal::ServerClientLocal(ServerStorage& storage, int id, + wpi::Logger& logger) + : ServerClient4Base{"", "", true, [](uint32_t) {}, storage, id, logger} { + // create local client meta topics + m_metaPub = storage.CreateMetaTopic("$serverpub"); + m_metaSub = storage.CreateMetaTopic("$serversub"); + + // update meta topics + UpdateMetaClientPub(); + UpdateMetaClientSub(); +} + void ServerClientLocal::SendValue(ServerTopic* topic, const Value& value, net::ValueSendMode mode) { if (m_local) { diff --git a/ntcore/src/main/native/cpp/server/ServerClientLocal.h b/ntcore/src/main/native/cpp/server/ServerClientLocal.h index 4ddd73365f0..16d0efafa25 100644 --- a/ntcore/src/main/native/cpp/server/ServerClientLocal.h +++ b/ntcore/src/main/native/cpp/server/ServerClientLocal.h @@ -13,8 +13,7 @@ namespace nt::server { class ServerClientLocal final : public ServerClient4Base { public: - ServerClientLocal(ServerStorage& storage, int id, wpi::Logger& logger) - : ServerClient4Base{"", "", true, [](uint32_t) {}, storage, id, logger} {} + ServerClientLocal(ServerStorage& storage, int id, wpi::Logger& logger); bool ProcessIncomingText(std::string_view data) final { return false; } bool ProcessIncomingBinary(std::span data) final { diff --git a/ntcore/src/main/native/cpp/server/ServerImpl.cpp b/ntcore/src/main/native/cpp/server/ServerImpl.cpp index 8265ac71fda..3c92488c973 100644 --- a/ntcore/src/main/native/cpp/server/ServerImpl.cpp +++ b/ntcore/src/main/native/cpp/server/ServerImpl.cpp @@ -33,6 +33,9 @@ ServerImpl::ServerImpl(wpi::Logger& logger) m_clients.emplace_back( std::make_unique(m_storage, 0, logger)); m_localClient = static_cast(m_clients.back().get()); + + // create server meta topics + m_metaClients = m_storage.CreateMetaTopic("$clients"); } std::pair ServerImpl::AddClient(std::string_view name, @@ -169,17 +172,6 @@ void ServerImpl::SetLocal(net::ServerMessageHandler* local, net::ClientMessageQueue* queue) { DEBUG4("SetLocal()"); m_localClient->SetLocal(local, queue); - - // create server meta topics - m_metaClients = m_storage.CreateMetaTopic("$clients"); - - // create local client meta topics - m_localClient->m_metaPub = m_storage.CreateMetaTopic("$serverpub"); - m_localClient->m_metaSub = m_storage.CreateMetaTopic("$serversub"); - - // update meta topics - m_localClient->UpdateMetaClientPub(); - m_localClient->UpdateMetaClientSub(); } bool ServerImpl::ProcessIncomingText(int clientId, std::string_view data) {