group between client and provider

This commit is contained in:
Iuri Matias
2026-02-02 18:45:40 -05:00
parent 5f34c03212
commit 5d8a0eeeef
10 changed files with 89 additions and 48 deletions
+18 -3
View File
@@ -18,6 +18,8 @@ pkgs.stdenv.mkDerivation {
# Install headers with proper structure
mkdir -p $out/include/core
mkdir -p $out/include/logos-cpp-sdk
mkdir -p $out/include/logos-cpp-sdk/client
mkdir -p $out/include/logos-cpp-sdk/provider
mkdir -p $out/include/logos-transport
# Install core headers
@@ -25,14 +27,27 @@ pkgs.stdenv.mkDerivation {
cp src/core/interface.h $out/include/core/
fi
# Install logos-cpp-sdk headers and sources
for file in logos_api.cpp logos_api.h logos_api_client.cpp logos_api_client.h \
token_manager.cpp token_manager.h module_proxy.cpp module_proxy.h; do
# Install logos-cpp-sdk root headers and sources
for file in logos_api.cpp logos_api.h token_manager.cpp token_manager.h; do
if [ -f src/logos-cpp-sdk/$file ]; then
cp src/logos-cpp-sdk/$file $out/include/logos-cpp-sdk/
fi
done
# Install logos-cpp-sdk client headers and sources
for file in logos_api_client.cpp logos_api_client.h; do
if [ -f src/logos-cpp-sdk/client/$file ]; then
cp src/logos-cpp-sdk/client/$file $out/include/logos-cpp-sdk/client/
fi
done
# Install logos-cpp-sdk provider headers and sources
for file in module_proxy.cpp module_proxy.h; do
if [ -f src/logos-cpp-sdk/provider/$file ]; then
cp src/logos-cpp-sdk/provider/$file $out/include/logos-cpp-sdk/provider/
fi
done
# Install logos-transport headers and sources
for file in logos_api_consumer.cpp logos_api_consumer.h logos_api_provider.cpp logos_api_provider.h \
logos_mode.h plugin_registry.h; do
+19 -7
View File
@@ -13,12 +13,12 @@ find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core RemoteObjects)
set(SDK_SOURCES
logos-cpp-sdk/logos_api.cpp
logos-cpp-sdk/logos_api.h
logos-cpp-sdk/logos_api_client.cpp
logos-cpp-sdk/logos_api_client.h
logos-cpp-sdk/module_proxy.cpp
logos-cpp-sdk/module_proxy.h
logos-cpp-sdk/token_manager.cpp
logos-cpp-sdk/token_manager.h
logos-cpp-sdk/client/logos_api_client.cpp
logos-cpp-sdk/client/logos_api_client.h
logos-cpp-sdk/provider/module_proxy.cpp
logos-cpp-sdk/provider/module_proxy.h
)
# Transport sources (Qt RemoteObjects layer)
@@ -41,6 +41,8 @@ target_link_libraries(logos_sdk PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSIO
target_include_directories(logos_sdk PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/logos-cpp-sdk
${CMAKE_CURRENT_SOURCE_DIR}/logos-cpp-sdk/client
${CMAKE_CURRENT_SOURCE_DIR}/logos-cpp-sdk/provider
${CMAKE_CURRENT_SOURCE_DIR}/logos-transport
${CMAKE_CURRENT_SOURCE_DIR}/core
)
@@ -57,15 +59,25 @@ install(TARGETS logos_sdk
RUNTIME DESTINATION bin
)
# Install SDK headers
# Install SDK root headers
install(FILES
logos-cpp-sdk/logos_api.h
logos-cpp-sdk/logos_api_client.h
logos-cpp-sdk/module_proxy.h
logos-cpp-sdk/token_manager.h
DESTINATION include/logos-cpp-sdk
)
# Install SDK client headers
install(FILES
logos-cpp-sdk/client/logos_api_client.h
DESTINATION include/logos-cpp-sdk/client
)
# Install SDK provider headers
install(FILES
logos-cpp-sdk/provider/module_proxy.h
DESTINATION include/logos-cpp-sdk/provider
)
# Install transport headers
install(FILES
logos-transport/logos_api_consumer.h
+45 -31
View File
@@ -46,7 +46,7 @@ else
fi
# Add local include paths for the new directory structure
LOCAL_INCLUDES="-I. -Ilogos-cpp-sdk -Ilogos-transport -Icore"
LOCAL_INCLUDES="-I. -Ilogos-cpp-sdk -Ilogos-cpp-sdk/client -Ilogos-cpp-sdk/provider -Ilogos-transport -Icore"
echo "Using Qt includes: $QT_INCLUDES"
echo "Using local includes: $LOCAL_INCLUDES"
@@ -57,21 +57,31 @@ CXXFLAGS="-std=c++17 -fPIC"
# Generate MOC files for headers with Q_OBJECT
echo "Generating MOC files..."
# SDK headers that need MOC processing
SDK_MOC_HEADERS=(
# SDK root headers that need MOC processing
SDK_ROOT_MOC_HEADERS=(
"logos-cpp-sdk/logos_api.h"
"logos-cpp-sdk/logos_api_client.h"
"logos-cpp-sdk/module_proxy.h"
"logos-cpp-sdk/token_manager.h"
)
# SDK client headers that need MOC processing
SDK_CLIENT_MOC_HEADERS=(
"logos-cpp-sdk/client/logos_api_client.h"
)
# SDK provider headers that need MOC processing
SDK_PROVIDER_MOC_HEADERS=(
"logos-cpp-sdk/provider/module_proxy.h"
)
# Transport headers that need MOC processing
TRANSPORT_MOC_HEADERS=(
"logos-transport/logos_api_provider.h"
"logos-transport/logos_api_consumer.h"
)
for header in "${SDK_MOC_HEADERS[@]}" "${TRANSPORT_MOC_HEADERS[@]}"; do
ALL_MOC_HEADERS=("${SDK_ROOT_MOC_HEADERS[@]}" "${SDK_CLIENT_MOC_HEADERS[@]}" "${SDK_PROVIDER_MOC_HEADERS[@]}" "${TRANSPORT_MOC_HEADERS[@]}")
for header in "${ALL_MOC_HEADERS[@]}"; do
if [ -f "$header" ]; then
basename=$(basename "$header" .h)
echo "Generating MOC for $header..."
@@ -86,7 +96,7 @@ done
# Try to compile the headers (syntax check)
echo "Checking header syntax..."
# SDK headers
# SDK root headers
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/logos_api.h -o /tmp/logos_api.h.gch
if [ $? -eq 0 ]; then
echo "✅ LogosAPI header syntax OK"
@@ -96,7 +106,17 @@ else
exit 1
fi
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/logos_api_client.h -o /tmp/logos_api_client.h.gch
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/token_manager.h -o /tmp/token_manager.h.gch
if [ $? -eq 0 ]; then
echo "✅ Token manager header syntax OK"
rm -f /tmp/token_manager.h.gch
else
echo "❌ Token manager header has syntax errors"
exit 1
fi
# SDK client headers
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/client/logos_api_client.h -o /tmp/logos_api_client.h.gch
if [ $? -eq 0 ]; then
echo "✅ Client header syntax OK"
rm -f /tmp/logos_api_client.h.gch
@@ -105,7 +125,8 @@ else
exit 1
fi
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/module_proxy.h -o /tmp/module_proxy.h.gch
# SDK provider headers
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/provider/module_proxy.h -o /tmp/module_proxy.h.gch
if [ $? -eq 0 ]; then
echo "✅ Module proxy header syntax OK"
rm -f /tmp/module_proxy.h.gch
@@ -114,15 +135,6 @@ else
exit 1
fi
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-cpp-sdk/token_manager.h -o /tmp/token_manager.h.gch
if [ $? -eq 0 ]; then
echo "✅ Token manager header syntax OK"
rm -f /tmp/token_manager.h.gch
else
echo "❌ Token manager header has syntax errors"
exit 1
fi
# Transport headers
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c -x c++-header logos-transport/logos_api_provider.h -o /tmp/logos_api_provider.h.gch
if [ $? -eq 0 ]; then
@@ -145,7 +157,7 @@ fi
# Try to compile the implementations (without linking)
echo "Checking implementation syntax..."
# SDK implementations
# SDK root implementations
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/logos_api.cpp -o /tmp/logos_api.o
if [ $? -eq 0 ]; then
echo "✅ LogosAPI implementation compiles OK"
@@ -155,7 +167,17 @@ else
exit 1
fi
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/logos_api_client.cpp -o /tmp/logos_api_client.o
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/token_manager.cpp -o /tmp/token_manager.o
if [ $? -eq 0 ]; then
echo "✅ Token manager implementation compiles OK"
rm -f /tmp/token_manager.o
else
echo "❌ Token manager implementation has compilation errors"
exit 1
fi
# SDK client implementations
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/client/logos_api_client.cpp -o /tmp/logos_api_client.o
if [ $? -eq 0 ]; then
echo "✅ Client implementation compiles OK"
rm -f /tmp/logos_api_client.o
@@ -164,7 +186,8 @@ else
exit 1
fi
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/module_proxy.cpp -o /tmp/module_proxy.o
# SDK provider implementations
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/provider/module_proxy.cpp -o /tmp/module_proxy.o
if [ $? -eq 0 ]; then
echo "✅ Module proxy implementation compiles OK"
rm -f /tmp/module_proxy.o
@@ -173,15 +196,6 @@ else
exit 1
fi
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-cpp-sdk/token_manager.cpp -o /tmp/token_manager.o
if [ $? -eq 0 ]; then
echo "✅ Token manager implementation compiles OK"
rm -f /tmp/token_manager.o
else
echo "❌ Token manager implementation has compilation errors"
exit 1
fi
# Transport implementations
g++ $CXXFLAGS $QT_INCLUDES $LOCAL_INCLUDES -c logos-transport/logos_api_provider.cpp -o /tmp/logos_api_provider.o
if [ $? -eq 0 ]; then
@@ -203,7 +217,7 @@ fi
# Clean up generated MOC files
echo "Cleaning up generated MOC files..."
for header in "${SDK_MOC_HEADERS[@]}" "${TRANSPORT_MOC_HEADERS[@]}"; do
for header in "${ALL_MOC_HEADERS[@]}"; do
basename=$(basename "$header" .h)
moc_file="moc_${basename}.cpp"
if [ -f "$moc_file" ]; then
@@ -1,6 +1,6 @@
#include "logos_api_client.h"
#include "../logos-transport/logos_api_consumer.h"
#include "token_manager.h"
#include "../../logos-transport/logos_api_consumer.h"
#include "../token_manager.h"
LogosAPIClient::LogosAPIClient(const QString& module_to_talk_to, const QString& origin_module, TokenManager* token_manager, QObject *parent)
: QObject(parent)
@@ -8,7 +8,7 @@
#include <QMap>
#include <functional>
#include "../logos-transport/logos_mode.h"
#include "../../logos-transport/logos_mode.h"
class LogosAPIConsumer;
class TokenManager;
+1 -1
View File
@@ -1,5 +1,5 @@
#include "logos_api.h"
#include "logos_api_client.h"
#include "client/logos_api_client.h"
#include "../logos-transport/logos_api_provider.h"
#include "token_manager.h"
+2 -2
View File
@@ -1,6 +1,6 @@
#include "logos_api_consumer.h"
#include "../logos-cpp-sdk/module_proxy.h"
#include "../logos-cpp-sdk/logos_api_client.h"
#include "../logos-cpp-sdk/provider/module_proxy.h"
#include "../logos-cpp-sdk/client/logos_api_client.h"
#include "../logos-cpp-sdk/token_manager.h"
#include "logos_mode.h"
#include "plugin_registry.h"
+1 -1
View File
@@ -1,5 +1,5 @@
#include "logos_api_provider.h"
#include "../logos-cpp-sdk/module_proxy.h"
#include "../logos-cpp-sdk/provider/module_proxy.h"
#include "../logos-cpp-sdk/logos_api.h"
#include "logos_mode.h"
#include "plugin_registry.h"