ws и основные объекты
This commit is contained in:
parent
170c59caae
commit
d370752c40
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -22,3 +22,5 @@ postgresql
|
||||||
sudo apt-get install postgresql-all
|
sudo apt-get install postgresql-all
|
||||||
|
|
||||||
ixwebsocket
|
ixwebsocket
|
||||||
|
|
||||||
|
curl
|
||||||
|
|
@ -19,14 +19,28 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
add_executable(SoftController main.cpp
|
add_executable(SoftController main.cpp
|
||||||
wsHandler/wsSessionHandler.cpp
|
messaging/messageHandler/messageHandler.cpp
|
||||||
wsHandler/wsSessionHandler.h)
|
messaging/messageHandler/messageHandler.h
|
||||||
|
nodes/ormConfigurator/ormConfigurator.h
|
||||||
|
nodes/ormConfigurator/ormConfigurator.cpp
|
||||||
|
nodes/reConfigurator/reConfigurator.h
|
||||||
|
nodes/reConfigurator/reConfigurator.cpp
|
||||||
|
messaging/messageCounter/messageCounter.cpp
|
||||||
|
messaging/messageCounter/messageCounter.h
|
||||||
|
messaging/messageWriter/messageWriter.cpp
|
||||||
|
messaging/messageWriter/messageWriter.h
|
||||||
|
nodes/reConfigurator/reHttpPoller/reHttpPoller.h
|
||||||
|
nodes/reConfigurator/reHttpPoller/reHttpPoller.cpp)
|
||||||
|
|
||||||
|
#======================= Либы =======================
|
||||||
find_package(Drogon CONFIG REQUIRED)
|
find_package(Drogon CONFIG REQUIRED)
|
||||||
target_link_libraries(SoftController PRIVATE Drogon::Drogon)
|
target_link_libraries(SoftController PRIVATE Drogon::Drogon)
|
||||||
|
|
||||||
find_package(ixwebsocket CONFIG REQUIRED)
|
find_package(ixwebsocket CONFIG REQUIRED)
|
||||||
target_link_libraries(SoftController PRIVATE ixwebsocket::ixwebsocket)
|
target_link_libraries(SoftController PRIVATE ixwebsocket::ixwebsocket)
|
||||||
|
|
||||||
|
find_package(CURL REQUIRED)
|
||||||
|
target_link_libraries(SoftController PRIVATE CURL::libcurl)
|
||||||
# ##############################################################################
|
# ##############################################################################
|
||||||
|
|
||||||
if (CMAKE_CXX_STANDARD LESS 17)
|
if (CMAKE_CXX_STANDARD LESS 17)
|
||||||
|
|
|
||||||
|
|
@ -1089,6 +1089,70 @@
|
||||||
"type" : "BOOL",
|
"type" : "BOOL",
|
||||||
"value" : "FALSE"
|
"value" : "FALSE"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name" : "CURL_DIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "ADVANCED",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : "The directory containing a CMake configuration file for CURL."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "PATH",
|
||||||
|
"value" : "CURL_DIR-NOTFOUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "CURL_INCLUDE_DIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "ADVANCED",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : "Path to a file."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "PATH",
|
||||||
|
"value" : "/usr/include/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "CURL_LIBRARY_DEBUG",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "ADVANCED",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : "Path to a library."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "FILEPATH",
|
||||||
|
"value" : "CURL_LIBRARY_DEBUG-NOTFOUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "CURL_LIBRARY_RELEASE",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "ADVANCED",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : "Path to a library."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "FILEPATH",
|
||||||
|
"value" : "/usr/lib/x86_64-linux-gnu/libcurl.so"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "CXX_FILESYSTEM_HAVE_FS",
|
"name" : "CXX_FILESYSTEM_HAVE_FS",
|
||||||
"properties" :
|
"properties" :
|
||||||
|
|
@ -1197,6 +1261,18 @@
|
||||||
"type" : "INTERNAL",
|
"type" : "INTERNAL",
|
||||||
"value" : "[/usr/lib/x86_64-linux-gnu/libbrotlidec.so][/usr/lib/x86_64-linux-gnu/libbrotlienc.so][/usr/lib/x86_64-linux-gnu/libbrotlicommon.so][/usr/include][v()]"
|
"value" : "[/usr/lib/x86_64-linux-gnu/libbrotlidec.so][/usr/lib/x86_64-linux-gnu/libbrotlienc.so][/usr/lib/x86_64-linux-gnu/libbrotlicommon.so][/usr/include][v()]"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name" : "FIND_PACKAGE_MESSAGE_DETAILS_CURL",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : "Details about finding CURL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "[/usr/lib/x86_64-linux-gnu/libcurl.so][/usr/include/x86_64-linux-gnu][c ][v8.5.0()]"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "FIND_PACKAGE_MESSAGE_DETAILS_Hiredis",
|
"name" : "FIND_PACKAGE_MESSAGE_DETAILS_Hiredis",
|
||||||
"properties" :
|
"properties" :
|
||||||
|
|
@ -1453,6 +1529,426 @@
|
||||||
"type" : "FILEPATH",
|
"type" : "FILEPATH",
|
||||||
"value" : "/usr/lib/x86_64-linux-gnu/libssl.so"
|
"value" : "/usr/lib/x86_64-linux-gnu/libssl.so"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_CFLAGS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "-I/usr/include/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_CFLAGS_I",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_CFLAGS_OTHER",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_FOUND",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_INCLUDEDIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr/include/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_INCLUDE_DIRS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr/include/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LDFLAGS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "-L/usr/lib/x86_64-linux-gnu;-lcurl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LDFLAGS_OTHER",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBDIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr/lib/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBRARIES",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "curl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBRARY_DIRS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr/lib/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBS_L",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBS_OTHER",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_LIBS_PATHS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_MODULE_NAME",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "libcurl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_PREFIX",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_CFLAGS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "-I/usr/include/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_CFLAGS_I",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_CFLAGS_OTHER",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_INCLUDE_DIRS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr/include/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LDFLAGS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "-L/usr/lib/x86_64-linux-gnu;-lcurl;-lnghttp2;-lidn2;-lrtmp;-lssh;-lssh;-lpsl;-lssl;-lcrypto;-lssl;-lcrypto;-lgssapi_krb5;-llber;-lldap;-llber;-lzstd;-lbrotlidec;-lz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LDFLAGS_OTHER",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBDIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBRARIES",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "curl;nghttp2;idn2;rtmp;ssh;ssh;psl;ssl;crypto;ssl;crypto;gssapi_krb5;lber;ldap;lber;zstd;brotlidec;z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBRARY_DIRS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "/usr/lib/x86_64-linux-gnu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBS_L",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBS_OTHER",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_STATIC_LIBS_PATHS",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_VERSION",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "8.5.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_libcurl_INCLUDEDIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_libcurl_LIBDIR",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_libcurl_PREFIX",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "PC_CURL_libcurl_VERSION",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "PG_INCLUDE_DIRS",
|
"name" : "PG_INCLUDE_DIRS",
|
||||||
"properties" :
|
"properties" :
|
||||||
|
|
@ -2273,6 +2769,18 @@
|
||||||
"type" : "INTERNAL",
|
"type" : "INTERNAL",
|
||||||
"value" : ""
|
"value" : ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name" : "__pkg_config_arguments_PC_CURL",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "QUIET;libcurl"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "__pkg_config_arguments__OPENSSL",
|
"name" : "__pkg_config_arguments__OPENSSL",
|
||||||
"properties" :
|
"properties" :
|
||||||
|
|
@ -2285,6 +2793,18 @@
|
||||||
"type" : "INTERNAL",
|
"type" : "INTERNAL",
|
||||||
"value" : "QUIET;openssl"
|
"value" : "QUIET;openssl"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name" : "__pkg_config_checked_PC_CURL",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "INTERNAL",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "__pkg_config_checked__OPENSSL",
|
"name" : "__pkg_config_checked__OPENSSL",
|
||||||
"properties" :
|
"properties" :
|
||||||
|
|
@ -2309,6 +2829,22 @@
|
||||||
"type" : "PATH",
|
"type" : "PATH",
|
||||||
"value" : "/usr/local/lib/cmake/ixwebsocket"
|
"value" : "/usr/local/lib/cmake/ixwebsocket"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name" : "pkgcfg_lib_PC_CURL_curl",
|
||||||
|
"properties" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name" : "ADVANCED",
|
||||||
|
"value" : "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "HELPSTRING",
|
||||||
|
"value" : "Path to a library."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type" : "FILEPATH",
|
||||||
|
"value" : "/usr/lib/x86_64-linux-gnu/libcurl.so"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "pkgcfg_lib__OPENSSL_crypto",
|
"name" : "pkgcfg_lib__OPENSSL_crypto",
|
||||||
"properties" :
|
"properties" :
|
||||||
|
|
@ -2351,7 +2887,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"type" : "INTERNAL",
|
"type" : "INTERNAL",
|
||||||
"value" : "/usr/lib/x86_64-linux-gnu"
|
"value" : "AsynchDNS;GSS-API;HSTS;HTTP2;HTTPS-proxy;IDN;IPv6;Kerberos;Largefile;NTLM;PSL;SPNEGO;SSL;TLS-SRP;UnixSockets;alt-svc;brotli;libz;threadsafe;zstd"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name" : "yaml-cpp_DIR",
|
"name" : "yaml-cpp_DIR",
|
||||||
|
|
@ -432,6 +432,41 @@
|
||||||
"isExternal" : true,
|
"isExternal" : true,
|
||||||
"path" : "/usr/local/lib/cmake/ixwebsocket/ixwebsocket-targets-noconfig.cmake"
|
"path" : "/usr/local/lib/cmake/ixwebsocket/ixwebsocket-targets-noconfig.cmake"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/FindCURL.cmake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/FindPackageMessage.cmake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/FindPkgConfig.cmake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/FindPackageMessage.cmake"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isCMake" : true,
|
||||||
|
"isExternal" : true,
|
||||||
|
"path" : "/home/user/\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b/Utils/clion-2025.1.4/bin/cmake/linux/x64/share/cmake-3.31/Modules/SelectLibraryConfigurations.cmake"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path" : "test/CMakeLists.txt"
|
"path" : "test/CMakeLists.txt"
|
||||||
}
|
}
|
||||||
|
|
@ -74,14 +74,14 @@
|
||||||
{
|
{
|
||||||
"directoryIndex" : 0,
|
"directoryIndex" : 0,
|
||||||
"id" : "SoftController::@6890427a1f51a3e7e1df",
|
"id" : "SoftController::@6890427a1f51a3e7e1df",
|
||||||
"jsonFile" : "target-SoftController-Debug-c93ed6fd48ac61a06cf3.json",
|
"jsonFile" : "target-SoftController-Debug-ccacc1369e18ebff1ed0.json",
|
||||||
"name" : "SoftController",
|
"name" : "SoftController",
|
||||||
"projectIndex" : 0
|
"projectIndex" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"directoryIndex" : 1,
|
"directoryIndex" : 1,
|
||||||
"id" : "SoftController_test::@36f028580bb02cc8272a",
|
"id" : "SoftController_test::@36f028580bb02cc8272a",
|
||||||
"jsonFile" : "target-SoftController_test-Debug-c13917e8267ae522df69.json",
|
"jsonFile" : "target-SoftController_test-Debug-2998bf60419a4a577a31.json",
|
||||||
"name" : "SoftController_test",
|
"name" : "SoftController_test",
|
||||||
"projectIndex" : 1
|
"projectIndex" : 1
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
"objects" :
|
"objects" :
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"jsonFile" : "codemodel-v2-1210f20026b3713e2321.json",
|
"jsonFile" : "codemodel-v2-1d93002835d84ae78cc7.json",
|
||||||
"kind" : "codemodel",
|
"kind" : "codemodel",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"jsonFile" : "cache-v2-3ddaebc9e370345634d3.json",
|
"jsonFile" : "cache-v2-35649771a3a3bffac09f.json",
|
||||||
"kind" : "cache",
|
"kind" : "cache",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"jsonFile" : "cmakeFiles-v1-adb70d0cbbec256052fa.json",
|
"jsonFile" : "cmakeFiles-v1-37617ff7e31aba615d16.json",
|
||||||
"kind" : "cmakeFiles",
|
"kind" : "cmakeFiles",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
{
|
{
|
||||||
"cache-v2" :
|
"cache-v2" :
|
||||||
{
|
{
|
||||||
"jsonFile" : "cache-v2-3ddaebc9e370345634d3.json",
|
"jsonFile" : "cache-v2-35649771a3a3bffac09f.json",
|
||||||
"kind" : "cache",
|
"kind" : "cache",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
},
|
},
|
||||||
"cmakeFiles-v1" :
|
"cmakeFiles-v1" :
|
||||||
{
|
{
|
||||||
"jsonFile" : "cmakeFiles-v1-adb70d0cbbec256052fa.json",
|
"jsonFile" : "cmakeFiles-v1-37617ff7e31aba615d16.json",
|
||||||
"kind" : "cmakeFiles",
|
"kind" : "cmakeFiles",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
},
|
},
|
||||||
"codemodel-v2" :
|
"codemodel-v2" :
|
||||||
{
|
{
|
||||||
"jsonFile" : "codemodel-v2-1210f20026b3713e2321.json",
|
"jsonFile" : "codemodel-v2-1d93002835d84ae78cc7.json",
|
||||||
"kind" : "codemodel",
|
"kind" : "codemodel",
|
||||||
"version" :
|
"version" :
|
||||||
{
|
{
|
||||||
|
|
@ -49,235 +49,241 @@
|
||||||
{
|
{
|
||||||
"command" : 1,
|
"command" : 1,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 26,
|
"line" : 37,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 1,
|
"command" : 1,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 29,
|
"line" : 40,
|
||||||
|
"parent" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command" : 1,
|
||||||
|
"file" : 0,
|
||||||
|
"line" : 43,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 25,
|
"line" : 36,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"parent" : 4
|
"parent" : 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 3,
|
"command" : 3,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 79,
|
"line" : 79,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 1,
|
"file" : 1,
|
||||||
"parent" : 6
|
"parent" : 7
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 1,
|
"file" : 1,
|
||||||
"line" : 61,
|
"line" : 61,
|
||||||
"parent" : 7
|
"parent" : 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 40,
|
"line" : 40,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 9
|
"parent" : 10
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 4,
|
"file" : 4,
|
||||||
"parent" : 10
|
"parent" : 11
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 3,
|
"command" : 3,
|
||||||
"file" : 4,
|
"file" : 4,
|
||||||
"line" : 57,
|
"line" : 57,
|
||||||
"parent" : 11
|
"parent" : 12
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 3,
|
"file" : 3,
|
||||||
"parent" : 12
|
"parent" : 13
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 3,
|
"file" : 3,
|
||||||
"line" : 61,
|
"line" : 61,
|
||||||
"parent" : 13
|
"parent" : 14
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 39,
|
"line" : 39,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 15
|
"parent" : 16
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 6,
|
"file" : 6,
|
||||||
"parent" : 16
|
"parent" : 17
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 6,
|
"file" : 6,
|
||||||
"line" : 67,
|
"line" : 67,
|
||||||
"parent" : 17
|
"parent" : 18
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 42,
|
"line" : 42,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 19
|
"parent" : 20
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 7,
|
"file" : 7,
|
||||||
"parent" : 20
|
"parent" : 21
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 7,
|
"file" : 7,
|
||||||
"line" : 110,
|
"line" : 110,
|
||||||
"parent" : 21
|
"parent" : 22
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 55,
|
"line" : 55,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 23
|
"parent" : 24
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 8,
|
"file" : 8,
|
||||||
"parent" : 24
|
"parent" : 25
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 8,
|
"file" : 8,
|
||||||
"line" : 45,
|
"line" : 45,
|
||||||
"parent" : 25
|
"parent" : 26
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 46,
|
"line" : 46,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 27
|
"parent" : 28
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 9,
|
"file" : 9,
|
||||||
"parent" : 28
|
"parent" : 29
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 9,
|
"file" : 9,
|
||||||
"line" : 16,
|
"line" : 16,
|
||||||
"parent" : 29
|
"parent" : 30
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 49,
|
"line" : 49,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 31
|
"parent" : 32
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 10,
|
"file" : 10,
|
||||||
"parent" : 32
|
"parent" : 33
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 10,
|
"file" : 10,
|
||||||
"line" : 33,
|
"line" : 33,
|
||||||
"parent" : 33
|
"parent" : 34
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 5,
|
"command" : 5,
|
||||||
"file" : 2,
|
"file" : 2,
|
||||||
"line" : 61,
|
"line" : 61,
|
||||||
"parent" : 5
|
"parent" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 5,
|
"file" : 5,
|
||||||
"line" : 76,
|
"line" : 76,
|
||||||
"parent" : 35
|
"parent" : 36
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 11,
|
"file" : 11,
|
||||||
"parent" : 36
|
"parent" : 37
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 11,
|
"file" : 11,
|
||||||
"line" : 36,
|
"line" : 36,
|
||||||
"parent" : 37
|
"parent" : 38
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 28,
|
"line" : 39,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 13,
|
"file" : 13,
|
||||||
"parent" : 39
|
"parent" : 40
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 3,
|
"command" : 3,
|
||||||
"file" : 13,
|
"file" : 13,
|
||||||
"line" : 9,
|
"line" : 9,
|
||||||
"parent" : 40
|
"parent" : 41
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file" : 12,
|
"file" : 12,
|
||||||
"parent" : 41
|
"parent" : 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 2,
|
"command" : 2,
|
||||||
"file" : 12,
|
"file" : 12,
|
||||||
"line" : 61,
|
"line" : 61,
|
||||||
"parent" : 42
|
"parent" : 43
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command" : 6,
|
"command" : 6,
|
||||||
"file" : 0,
|
"file" : 0,
|
||||||
"line" : 48,
|
"line" : 62,
|
||||||
"parent" : 0
|
"parent" : 0
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -313,11 +319,11 @@
|
||||||
"includes" :
|
"includes" :
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"backtrace" : 44,
|
"backtrace" : 45,
|
||||||
"path" : "/home/user/\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b/SC/SoftController"
|
"path" : "/home/user/\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b/SC/SoftController"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 44,
|
"backtrace" : 45,
|
||||||
"path" : "/home/user/\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b/SC/SoftController/models"
|
"path" : "/home/user/\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b/SC/SoftController/models"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -343,7 +349,12 @@
|
||||||
"sourceIndexes" :
|
"sourceIndexes" :
|
||||||
[
|
[
|
||||||
0,
|
0,
|
||||||
1
|
1,
|
||||||
|
4,
|
||||||
|
6,
|
||||||
|
7,
|
||||||
|
9,
|
||||||
|
12
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -375,87 +386,92 @@
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 8,
|
"backtrace" : 4,
|
||||||
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libcurl.so",
|
||||||
|
"role" : "libraries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 9,
|
||||||
"fragment" : "/usr/local/lib/libtrantor.a",
|
"fragment" : "/usr/local/lib/libtrantor.a",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 14,
|
"backtrace" : 15,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libssl.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libssl.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 14,
|
"backtrace" : 15,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libcrypto.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libcrypto.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 14,
|
"backtrace" : 15,
|
||||||
"fragment" : "-lpthread",
|
"fragment" : "-lpthread",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 8,
|
"backtrace" : 9,
|
||||||
"fragment" : "-ldl",
|
"fragment" : "-ldl",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 18,
|
"backtrace" : 19,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libjsoncpp.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libjsoncpp.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 8,
|
"backtrace" : 9,
|
||||||
"fragment" : "-lyaml-cpp",
|
"fragment" : "-lyaml-cpp",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 22,
|
"backtrace" : 23,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libuuid.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libuuid.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 26,
|
"backtrace" : 27,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libbrotlidec.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libbrotlidec.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 26,
|
"backtrace" : 27,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libbrotlienc.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libbrotlienc.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 26,
|
"backtrace" : 27,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libbrotlicommon.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libbrotlicommon.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 30,
|
"backtrace" : 31,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libpq.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libpq.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 34,
|
"backtrace" : 35,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libsqlite3.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libsqlite3.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 38,
|
"backtrace" : 39,
|
||||||
"fragment" : "/usr/local/lib/libhiredis.so",
|
"fragment" : "/usr/local/lib/libhiredis.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 8,
|
"backtrace" : 9,
|
||||||
"fragment" : "/usr/local/lib/libz.so",
|
"fragment" : "/usr/local/lib/libz.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 43,
|
"backtrace" : 44,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libssl.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libssl.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 43,
|
"backtrace" : 44,
|
||||||
"fragment" : "/usr/lib/x86_64-linux-gnu/libcrypto.so",
|
"fragment" : "/usr/lib/x86_64-linux-gnu/libcrypto.so",
|
||||||
"role" : "libraries"
|
"role" : "libraries"
|
||||||
}
|
}
|
||||||
|
|
@ -476,14 +492,24 @@
|
||||||
"sourceIndexes" :
|
"sourceIndexes" :
|
||||||
[
|
[
|
||||||
0,
|
0,
|
||||||
1
|
1,
|
||||||
|
4,
|
||||||
|
6,
|
||||||
|
7,
|
||||||
|
9,
|
||||||
|
12
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name" : "Header Files",
|
"name" : "Header Files",
|
||||||
"sourceIndexes" :
|
"sourceIndexes" :
|
||||||
[
|
[
|
||||||
2
|
2,
|
||||||
|
3,
|
||||||
|
5,
|
||||||
|
8,
|
||||||
|
10,
|
||||||
|
11
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -498,13 +524,68 @@
|
||||||
{
|
{
|
||||||
"backtrace" : 1,
|
"backtrace" : 1,
|
||||||
"compileGroupIndex" : 0,
|
"compileGroupIndex" : 0,
|
||||||
"path" : "wsHandler/wsSessionHandler.cpp",
|
"path" : "messaging/messageHandler/messageHandler.cpp",
|
||||||
"sourceGroupIndex" : 0
|
"sourceGroupIndex" : 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"backtrace" : 1,
|
"backtrace" : 1,
|
||||||
"path" : "wsHandler/wsSessionHandler.h",
|
"path" : "messaging/messageHandler/messageHandler.h",
|
||||||
"sourceGroupIndex" : 1
|
"sourceGroupIndex" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"path" : "nodes/ormConfigurator/ormConfigurator.h",
|
||||||
|
"sourceGroupIndex" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "nodes/ormConfigurator/ormConfigurator.cpp",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"path" : "nodes/reConfigurator/reConfigurator.h",
|
||||||
|
"sourceGroupIndex" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "nodes/reConfigurator/reConfigurator.cpp",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "messaging/messageCounter/messageCounter.cpp",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"path" : "messaging/messageCounter/messageCounter.h",
|
||||||
|
"sourceGroupIndex" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "messaging/messageWriter/messageWriter.cpp",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"path" : "messaging/messageWriter/messageWriter.h",
|
||||||
|
"sourceGroupIndex" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"path" : "nodes/reConfigurator/reHttpPoller/reHttpPoller.h",
|
||||||
|
"sourceGroupIndex" : 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"backtrace" : 1,
|
||||||
|
"compileGroupIndex" : 0,
|
||||||
|
"path" : "nodes/reConfigurator/reHttpPoller/reHttpPoller.cpp",
|
||||||
|
"sourceGroupIndex" : 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"type" : "EXECUTABLE"
|
"type" : "EXECUTABLE"
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
{
|
{
|
||||||
"command" : 4,
|
"command" : 4,
|
||||||
"file" : 3,
|
"file" : 3,
|
||||||
"line" : 25,
|
"line" : 36,
|
||||||
"parent" : 3
|
"parent" : 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Binary file not shown.
|
|
@ -1,45 +1,15 @@
|
||||||
# ninja log v6
|
# ninja log v6
|
||||||
4213 5132 1759226397914410500 SoftController affda4e9945cadbd
|
3 1700 1759751112595947388 CMakeFiles/SoftController.dir/ormConfigurator/ormConfigurator.cpp.o 17ba08f25bcbcbca
|
||||||
3 4213 1759226393704418173 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
3 2079 1759829448072262082 CMakeFiles/SoftController.dir/messaging/messageHandler/messageHandler.cpp.o 54b2951ccff31f4d
|
||||||
1 99 1759228574288447609 build.ninja 4dfc72edd662679e
|
10 231 1759834357792447435 CMakeFiles/SoftController.dir/messaging/messageCounter/messageCounter.cpp.o 9422cf8879d7867b
|
||||||
2 248 1759228574299447589 CMakeFiles/SoftController.dir/wsHandler/wsSessionHandler.cpp.o 3cdbae51b5aeaa59
|
4 2897 1759837534999937391 CMakeFiles/SoftController.dir/nodes/reConfigurator/reHttpPoller/reHttpPoller.cpp.o 314156c49da43057
|
||||||
2 4396 1759228574299447589 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
3 1660 1759826059294622495 CMakeFiles/SoftController.dir/nodes/ormConfigurator/ormConfigurator.cpp.o c29b0016436307f1
|
||||||
4396 5304 1759228578693439588 SoftController edcd736a81ccf156
|
3 1821 1759827849304869885 CMakeFiles/SoftController.dir/messageHandler/messageHandler.cpp.o 38b304ce8478b160
|
||||||
2 256 1759231650587255717 CMakeFiles/SoftController.dir/wsHandler/wsSessionHandler.cpp.o 3cdbae51b5aeaa59
|
3 4962 1759837576064751988 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
||||||
2 4580 1759231650587255717 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
4 258 1759827849305869869 CMakeFiles/SoftController.dir/nodes/reConfigurator/reConfigurator.cpp.o 9ccf90a3dcb6ec3a
|
||||||
4580 5555 1759231655165220847 SoftController edcd736a81ccf156
|
4962 6072 1759837581024613096 SoftController a39e9431c4a4fd1b
|
||||||
|
3 310 1759481875602893682 CMakeFiles/SoftController.dir/wsClient/wsClient.cpp.o a70e7edaed30f74b
|
||||||
|
4 100 1759827849305869869 CMakeFiles/SoftController.dir/messageHandler/messageCounter/messageCounter.cpp.o cc810d45e85d2698
|
||||||
|
10 1984 1759834357792447435 CMakeFiles/SoftController.dir/messaging/messageWriter/messageWriter.cpp.o f3dca86d77ad93e4
|
||||||
|
1 114 1759897950907026257 build.ninja 4dfc72edd662679e
|
||||||
3 327 1759232483879749841 CMakeFiles/SoftController.dir/wsHandler/wsSessionHandler.cpp.o 3cdbae51b5aeaa59
|
3 327 1759232483879749841 CMakeFiles/SoftController.dir/wsHandler/wsSessionHandler.cpp.o 3cdbae51b5aeaa59
|
||||||
2 5208 1759232483879749841 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
5208 6175 1759232489084710975 SoftController edcd736a81ccf156
|
|
||||||
3 5283 1759232817357296938 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
5283 6472 1759232822638258582 SoftController edcd736a81ccf156
|
|
||||||
3 4192 1759232976309147353 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4192 5114 1759232980498117179 SoftController edcd736a81ccf156
|
|
||||||
6 4832 1759233332290599207 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4832 6042 1759233337116564839 SoftController edcd736a81ccf156
|
|
||||||
2 4205 1759233756176591485 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4205 5195 1759233760378561754 SoftController edcd736a81ccf156
|
|
||||||
3 4799 1759233811443200534 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4799 5824 1759233816239166617 SoftController edcd736a81ccf156
|
|
||||||
2 4796 1759233844692965435 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4796 5887 1759233849486931542 SoftController edcd736a81ccf156
|
|
||||||
2 4781 1759233923486629674 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4781 6264 1759233928265623024 SoftController edcd736a81ccf156
|
|
||||||
2 5347 1759234052522378176 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
5347 6480 1759234057867364796 SoftController edcd736a81ccf156
|
|
||||||
3 4535 1759234117623201077 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4535 5533 1759234122155187651 SoftController edcd736a81ccf156
|
|
||||||
2 4427 1759234200177936139 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4427 5355 1759234204602920784 SoftController edcd736a81ccf156
|
|
||||||
3 4429 1759234279209646008 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4429 5351 1759234283634628818 SoftController edcd736a81ccf156
|
|
||||||
7 4852 1759234387225201013 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4852 5808 1759234392070179897 SoftController edcd736a81ccf156
|
|
||||||
4 4341 1759234426643026596 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4341 5331 1759234430980007052 SoftController edcd736a81ccf156
|
|
||||||
2 4248 1759234433697994769 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4248 5292 1759234437943975527 SoftController edcd736a81ccf156
|
|
||||||
2 4867 1759234469361831180 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4867 6185 1759234474226808527 SoftController edcd736a81ccf156
|
|
||||||
3 4741 1759234510933635105 CMakeFiles/SoftController.dir/main.cpp.o 38fabe9f46373cc7
|
|
||||||
4741 5771 1759234515671612410 SoftController edcd736a81ccf156
|
|
||||||
|
|
|
||||||
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -3,44 +3,57 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
|
||||||
#include <utility>
|
|
||||||
#include <nlohmann/json.hpp>
|
|
||||||
#include <future>
|
#include <future>
|
||||||
|
|
||||||
#include "wsHandler/wsSessionHandler.h"
|
#include "messaging/messageHandler/messageHandler.h"
|
||||||
|
#include "nodes/ormConfigurator/ormConfigurator.h"
|
||||||
|
#include "nodes/reConfigurator/reConfigurator.h"
|
||||||
|
#include "messaging/messageCounter/messageCounter.h"
|
||||||
|
#include "nodes/reConfigurator/reHttpPoller/reHttpPoller.h"
|
||||||
|
|
||||||
bool RunWsClient(const std::string& url, const std::string& inti_message)
|
|
||||||
|
bool RunWS_init(std::string& url, const std::string& inti_message, ormNode *orm, GlobalCounter *msgCounter)
|
||||||
{
|
{
|
||||||
bool result;
|
bool result = false;
|
||||||
std::promise<void> finishPromise;
|
std::promise<void> finishPromise;
|
||||||
auto finishFuture = finishPromise.get_future();
|
auto finishFuture = finishPromise.get_future();
|
||||||
|
|
||||||
// подключаемся как ws клиент к orm
|
// настраиваем webSocket
|
||||||
ix::WebSocket webSocket;
|
ix::WebSocket webSocket;
|
||||||
webSocket.setUrl(url);
|
webSocket.setUrl(url);
|
||||||
|
std::string endpoint = getEndpointFromUrl(url);
|
||||||
|
|
||||||
// настройка callback
|
// настройка callback
|
||||||
webSocket.setOnMessageCallback([&webSocket, &inti_message, &url, &finishPromise, &result](const ix::WebSocketMessagePtr &msg) {
|
webSocket.setOnMessageCallback([&](const ix::WebSocketMessagePtr &msg) {
|
||||||
if (msg->type == ix::WebSocketMessageType::Open) {
|
if (msg->type == ix::WebSocketMessageType::Open) {
|
||||||
std::cout << "Соединение c " + url + " установлено\n";
|
try{
|
||||||
webSocket.send(inti_message);
|
std::cout << "Соединение c " + url + " установлено\n";
|
||||||
std::cout << "Отправлено сообщение: " + inti_message << std::endl;
|
webSocket.send(inti_message);
|
||||||
|
std::cout << "Отправлено сообщение: " + inti_message << std::endl;
|
||||||
|
}
|
||||||
|
catch (...){
|
||||||
|
std::cerr << "Неизвестное исключение!" << std::endl;
|
||||||
|
finishPromise.set_value();
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (msg->type == ix::WebSocketMessageType::Message) {
|
else if (msg->type == ix::WebSocketMessageType::Message) {
|
||||||
std::cout << "Получено сообщение: " << msg->str << std::endl;
|
try{
|
||||||
|
std::cout << "Получено сообщение: " << msg->str << std::endl;
|
||||||
|
msgCounter->increment_and_get();
|
||||||
|
|
||||||
// разбиваем строку на пары ключ- значение
|
auto message_json = nlohmann::json::parse(msg->str);
|
||||||
auto json_msg = nlohmann::json::parse(msg->str);
|
msgHandler handler(message_json, url);
|
||||||
std::vector<std::pair<std::string, std::string>> vector_msg;
|
handler.msgHandle(orm);
|
||||||
for (auto& [key, value] : json_msg.items()) {
|
|
||||||
vector_msg.emplace_back(key, value.dump());
|
finishPromise.set_value();
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
catch (const std::exception &e) {
|
||||||
|
std::cerr << e.what() << std::endl;
|
||||||
|
finishPromise.set_value();
|
||||||
|
result = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
wsAnswerHandler(vector_msg, url);
|
|
||||||
finishPromise.set_value();
|
|
||||||
result = true;
|
|
||||||
}
|
}
|
||||||
else if (msg->type == ix::WebSocketMessageType::Error) {
|
else if (msg->type == ix::WebSocketMessageType::Error) {
|
||||||
std::cerr << "Ошибка: " << msg->errorInfo.reason << std::endl;
|
std::cerr << "Ошибка: " << msg->errorInfo.reason << std::endl;
|
||||||
|
|
@ -55,35 +68,120 @@ bool RunWsClient(const std::string& url, const std::string& inti_message)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
// соединение с БД re
|
bool RunWS(std::string& url, const std::string& inti_message, ormNode *orm, GlobalCounter *msgCounter){
|
||||||
// получаем данные о RE из БД
|
|
||||||
// re_peer =
|
|
||||||
// re_version =
|
|
||||||
// re_opc_server_peer =
|
|
||||||
// status =
|
|
||||||
std::string inti_messages[] = {"{ \"re_peer\": \"re.promuc.local\", \"re_version\": \"1.0.1\", \"re_opc_server_peer\": \"re.opc.promuc.local\", \"count_message\": 1, \"count_attempts\": 3, \"count_tags_conc\": 0, \"timeout_waiting_response\": 1000, \"status\": \"init_OK_AAA\" }",
|
|
||||||
"{ \"re_peer\": \"re.promuc.local\", \"re_version\": \"1.0.1\", \"re_opc_server_peer\": \"re.opc.promuc.local\", \"count_message\": 3, \"count_attempts\": 3, \"count_tags_conc\": 0, \"timeout_waiting_response\": 1000, \"status\": \"init_OK_AAA\" }",
|
|
||||||
"{ \"re_peer\": \"re.promuc.local\", \"re_version\": \"1.0.1\", \"re_opc_server_peer\": \"re.opc.promuc.local\", \"count_message\": 7, \"count_attempts\": 3, \"count_tags_conc\": 0, \"timeout_waiting_response\": 1000, \"status\": \"init_OK_AAA\" }"};
|
|
||||||
|
|
||||||
|
bool result = false;
|
||||||
|
std::promise<void> finishPromise;
|
||||||
|
auto finishFuture = finishPromise.get_future();
|
||||||
|
|
||||||
std::string SD_endpoints[] = {"ws://localhost:8080/SC_SD_F1",
|
ix::WebSocket webSocket;
|
||||||
"ws://localhost:8080/SC_SD_F2",
|
webSocket.setUrl(url);
|
||||||
"ws://localhost:8080/SC_SD_F3"};
|
std::string endpoint = getEndpointFromUrl(url);
|
||||||
|
webSocket.setPingInterval(1);
|
||||||
|
webSocket.enableAutomaticReconnection();
|
||||||
|
|
||||||
|
webSocket.setOnMessageCallback([&](const ix::WebSocketMessagePtr& msg) {
|
||||||
|
if (msg->type == ix::WebSocketMessageType::Open)
|
||||||
|
{
|
||||||
|
std::cout << "Соединение c " + url + " установлено\n";
|
||||||
|
webSocket.send(inti_message);
|
||||||
|
std::cout << "Отправлено сообщение: " + inti_message << std::endl;
|
||||||
|
msgCounter->increment_and_get();
|
||||||
|
|
||||||
for(int i = 0; i < 3; i ++)
|
|
||||||
{
|
|
||||||
bool ws_conn_result = RunWsClient(SD_endpoints[i], inti_messages[i]);
|
|
||||||
while(!ws_conn_result){
|
|
||||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
||||||
ws_conn_result = RunWsClient(SD_endpoints[i], inti_messages[i]);
|
|
||||||
}
|
}
|
||||||
|
else if (msg->type == ix::WebSocketMessageType::Message)
|
||||||
|
{
|
||||||
|
std::cout << "Получено сообщение: " << msg->str << std::endl;
|
||||||
|
auto message_json = nlohmann::json::parse(msg->str);
|
||||||
|
msgHandler handler(message_json, url);
|
||||||
|
handler.msgHandle(orm);
|
||||||
|
result = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (msg->type == ix::WebSocketMessageType::Error)
|
||||||
|
{
|
||||||
|
std::cerr << "Ошибка websocket на " + endpoint + ": " << msg->errorInfo.reason << std::endl;
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
webSocket.start();
|
||||||
|
finishFuture.wait();
|
||||||
|
webSocket.stop();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// формируем основные сущности
|
||||||
|
ormNode orm;
|
||||||
|
reNode re;
|
||||||
|
GlobalCounter msgCounter;
|
||||||
|
reHttpPoller reHttpPoller("http://re.test.promuc.local/api/version", 60000);
|
||||||
|
|
||||||
|
// запускаем
|
||||||
|
reHttpPoller.start();
|
||||||
|
|
||||||
|
//////////////////////////////////////////
|
||||||
|
// соединение с БД re в reHttpPoller, заполняем поля reNode//
|
||||||
|
// получаем данные о RE //
|
||||||
|
re._params.re_peer = "re.local";
|
||||||
|
re._params.re_version = "1.2.1";
|
||||||
|
re._params.re_opc_server_peer = "opc.re.local";
|
||||||
|
re._params.re_location = "default";
|
||||||
|
///////////////////////////////////////////
|
||||||
|
std::string inti_messages[] = {
|
||||||
|
"{ \"re_peer\": \"re.promuc.local\", \"re_version\": \"1.0.1\", \"re_opc_server_peer\": \"re.opc.promuc.local\", \"count_message\": 1, \"count_attempts\": 3, \"count_tags_conc\": 0, \"timeout_waiting_response\": 1000, \"status\": \"init_INIT_AAA\" }",
|
||||||
|
"{ \"re_peer\": \"re.promuc.local\", \"re_version\": \"1.0.1\", \"re_opc_server_peer\": \"re.opc.promuc.local\", \"count_message\": 3, \"count_attempts\": 3, \"count_tags_conc\": 0, \"timeout_waiting_response\": 1000, \"status\": \"init_INIT_LOCATION\" }",
|
||||||
|
"{ \"re_peer\": \"re.promuc.local\", \"re_version\": \"1.0.1\", \"re_opc_server_peer\": \"re.opc.promuc.local\", \"count_message\": 7, \"count_attempts\": 3, \"count_tags_conc\": 0, \"timeout_waiting_response\": 1000, \"status\": \"init_INIT_CHAIN\" }"};
|
||||||
|
|
||||||
|
std::string fake_re_data[] = {
|
||||||
|
|
||||||
|
};
|
||||||
|
std::string SD_endpoints[] = {"ws://localhost:8080/SC_SD_F1",
|
||||||
|
"ws://localhost:8080/SC_SD_F2",
|
||||||
|
"ws://localhost:8080/SC_SD_F3"};
|
||||||
|
////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
bool ws_conn_result = RunWS_init(SD_endpoints[0], inti_messages[0], &orm, &msgCounter);
|
||||||
|
while (!ws_conn_result) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||||
|
ws_conn_result = RunWS_init(SD_endpoints[0], inti_messages[0], &orm, &msgCounter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// запускаем SC как веб- сервер
|
std::thread locations_thread([&]() {
|
||||||
|
if (orm._params.init_status == "init_OK_AAA") {
|
||||||
|
bool ws_conn_result = RunWS(SD_endpoints[1], inti_messages[1], &orm, &msgCounter);
|
||||||
|
while (!ws_conn_result) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||||
|
ws_conn_result = RunWS(SD_endpoints[1], inti_messages[1], &orm, &msgCounter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else std::cout << "BAD: orm.init_status is not OK" << std::endl;
|
||||||
|
});
|
||||||
|
|
||||||
|
std::thread chains_thread([&]() {
|
||||||
|
std::unique_lock<std::mutex> lock(orm.status_mutex);
|
||||||
|
orm.status_cv.wait(lock, [&] {
|
||||||
|
return orm.status_ready;
|
||||||
|
});
|
||||||
|
bool ready_to_start_F3_ws = (orm._params.location_status == "init_OK_LOCATION");
|
||||||
|
lock.unlock();
|
||||||
|
|
||||||
|
if (ready_to_start_F3_ws) {
|
||||||
|
bool ws_conn_result = RunWS(SD_endpoints[2], inti_messages[2], &orm, &msgCounter);
|
||||||
|
while (!ws_conn_result) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||||
|
ws_conn_result = RunWS(SD_endpoints[2], inti_messages[2], &orm, &msgCounter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else std::cout << "BAD: orm.location_status is not OK" << std::endl;
|
||||||
|
});
|
||||||
|
|
||||||
drogon::app().addListener("0.0.0.0", 4343);
|
drogon::app().addListener("0.0.0.0", 4343);
|
||||||
drogon::app().run();
|
drogon::app().run();
|
||||||
|
locations_thread.join();
|
||||||
|
chains_thread.join();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
12
SoftController/messaging/messageCounter/messageCounter.cpp
Normal file
12
SoftController/messaging/messageCounter/messageCounter.cpp
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include "messageCounter.h"
|
||||||
|
|
||||||
|
GlobalCounter::GlobalCounter(){
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t GlobalCounter::get_value(){
|
||||||
|
return value.load(std::memory_order_relaxed);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t GlobalCounter::increment_and_get(){
|
||||||
|
return value.fetch_add(1, std::memory_order_relaxed) + 1;
|
||||||
|
}
|
||||||
17
SoftController/messaging/messageCounter/messageCounter.h
Normal file
17
SoftController/messaging/messageCounter/messageCounter.h
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <atomic>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
class GlobalCounter{
|
||||||
|
public:
|
||||||
|
explicit GlobalCounter();
|
||||||
|
uint64_t get_value();
|
||||||
|
uint64_t increment_and_get();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::atomic<uint64_t> value = 0;
|
||||||
|
};
|
||||||
23
SoftController/messaging/messageHandler/messageHandler.cpp
Normal file
23
SoftController/messaging/messageHandler/messageHandler.cpp
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#include "messageHandler.h"
|
||||||
|
|
||||||
|
msgHandler::msgHandler(const nlohmann::json &msg, const std::string &url) : message(msg), source(url){
|
||||||
|
//nlohmann::json message_json = nlohmann::json::parse(this->message);
|
||||||
|
//std::cout << message_json.dump(4) << std::endl; // для отладки
|
||||||
|
}
|
||||||
|
|
||||||
|
void msgHandler::msgHandle(ormNode *orm){
|
||||||
|
orm->setParams(message, source);
|
||||||
|
}
|
||||||
|
|
||||||
|
void F1StageProcessing(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void F2StageProcessing(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void F3StageProcessing(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
25
SoftController/messaging/messageHandler/messageHandler.h
Normal file
25
SoftController/messaging/messageHandler/messageHandler.h
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <mutex>
|
||||||
|
#include <condition_variable>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <ixwebsocket/IXWebSocket.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
#include "nodes/ormConfigurator/ormConfigurator.h"
|
||||||
|
|
||||||
|
class msgHandler {
|
||||||
|
public:
|
||||||
|
explicit msgHandler(const nlohmann::json &msg, const std::string &url);
|
||||||
|
void msgHandle(ormNode *orm);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
const nlohmann::json message;
|
||||||
|
const std::string source;
|
||||||
|
void F1StageProcessing();
|
||||||
|
void F2StageProcessing();
|
||||||
|
void F3StageProcessing();
|
||||||
|
|
||||||
|
};
|
||||||
5
SoftController/messaging/messageWriter/messageWriter.cpp
Normal file
5
SoftController/messaging/messageWriter/messageWriter.cpp
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
#include "messageWriter.h"
|
||||||
|
|
||||||
|
msgWriter::msgWriter(const nlohmann::json &msg, const std::string &url) : message(msg), source(url) {
|
||||||
|
}
|
||||||
|
|
||||||
21
SoftController/messaging/messageWriter/messageWriter.h
Normal file
21
SoftController/messaging/messageWriter/messageWriter.h
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <mutex>
|
||||||
|
#include <condition_variable>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <ixwebsocket/IXWebSocket.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
#include "nodes/reConfigurator/reConfigurator.h"
|
||||||
|
|
||||||
|
class msgWriter {
|
||||||
|
public:
|
||||||
|
explicit msgWriter(const nlohmann::json &msg, const std::string &url);
|
||||||
|
void msgWrite(reNode *re);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
const nlohmann::json message;
|
||||||
|
const std::string source;
|
||||||
|
};
|
||||||
34
SoftController/nodes/ormConfigurator/ormConfigurator.cpp
Normal file
34
SoftController/nodes/ormConfigurator/ormConfigurator.cpp
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
#include "ormConfigurator.h"
|
||||||
|
|
||||||
|
ormNode::ormNode() {}
|
||||||
|
|
||||||
|
void ormNode::setParams(const nlohmann::json &msg, const std::string &url) {
|
||||||
|
std::string endpoint = getEndpointFromUrl(url);
|
||||||
|
if (endpoint == "SC_SD_F1") {
|
||||||
|
this->_params.orm_peer = msg.value("orm_peer", "");
|
||||||
|
this->_params.orm_version = msg.value("orm_version", "");
|
||||||
|
this->_params.orm_opc_client_peer = msg.value("orm_opc_client_peer", "");
|
||||||
|
this->_params.init_status = msg.value("status", "");
|
||||||
|
} else if (endpoint == "SC_SD_F2") {
|
||||||
|
this->_params.location_status = msg.value("status", "");
|
||||||
|
|
||||||
|
if (this->_params.location_status == "init_OK_LOCATION") {
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(this->status_mutex);
|
||||||
|
this->status_ready = true;
|
||||||
|
}
|
||||||
|
this->status_cv.notify_one();
|
||||||
|
}
|
||||||
|
} else if (endpoint == "SC_SD_F3") {
|
||||||
|
this->_params.chain_status = msg.value("status", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string getEndpointFromUrl(std::string url){
|
||||||
|
size_t pos = url.find_last_of('/');
|
||||||
|
std::string endpoint;
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
endpoint = url.substr(pos + 1);
|
||||||
|
}
|
||||||
|
return endpoint;
|
||||||
|
}
|
||||||
29
SoftController/nodes/ormConfigurator/ormConfigurator.h
Normal file
29
SoftController/nodes/ormConfigurator/ormConfigurator.h
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
#include <mutex>
|
||||||
|
#include <condition_variable>
|
||||||
|
|
||||||
|
class ormNode {
|
||||||
|
protected:
|
||||||
|
struct params {
|
||||||
|
std::string orm_peer;
|
||||||
|
std::string orm_version;
|
||||||
|
std::string orm_opc_client_peer;
|
||||||
|
|
||||||
|
std::string init_status;
|
||||||
|
std::string location_status;
|
||||||
|
std::string chain_status;
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
ormNode();
|
||||||
|
void setParams(const nlohmann::json &msg, const std::string &url);
|
||||||
|
params _params;
|
||||||
|
|
||||||
|
std::mutex status_mutex;
|
||||||
|
std::condition_variable status_cv;
|
||||||
|
bool status_ready = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::string getEndpointFromUrl(std::string url);
|
||||||
9
SoftController/nodes/reConfigurator/reConfigurator.cpp
Normal file
9
SoftController/nodes/reConfigurator/reConfigurator.cpp
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#include "reConfigurator.h"
|
||||||
|
|
||||||
|
reNode::reNode() {}
|
||||||
|
|
||||||
|
void reNode::getParamsFromRE(reNode *re){
|
||||||
|
|
||||||
|
//curl запрос на RE /api/version
|
||||||
|
|
||||||
|
}
|
||||||
19
SoftController/nodes/reConfigurator/reConfigurator.h
Normal file
19
SoftController/nodes/reConfigurator/reConfigurator.h
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
class reNode {
|
||||||
|
protected:
|
||||||
|
struct params {
|
||||||
|
std::string re_peer;
|
||||||
|
std::string re_version;
|
||||||
|
std::string re_opc_server_peer;
|
||||||
|
std::string re_location;
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
reNode();
|
||||||
|
void getParamsFromRE(reNode *re);
|
||||||
|
params _params;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
#include "reHttpPoller.h"
|
||||||
|
|
||||||
|
reHttpPoller::reHttpPoller(const std::string& url, long interval_ms) :
|
||||||
|
url_(url),
|
||||||
|
interval_(interval_ms){
|
||||||
|
}
|
||||||
|
|
||||||
|
void reHttpPoller::start() {
|
||||||
|
is_running_ = true;
|
||||||
|
worker_ = std::thread(&reHttpPoller::SendRequests, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reHttpPoller::stop() {
|
||||||
|
is_running_ = false;
|
||||||
|
if (worker_.joinable()) worker_.join();
|
||||||
|
}
|
||||||
|
|
||||||
|
void reHttpPoller::setEndpoint(const std::string &url) {
|
||||||
|
this->url_ = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reHttpPoller::SendRequests(){
|
||||||
|
CURL* curl = curl_easy_init();
|
||||||
|
while(is_running_) {
|
||||||
|
std::string readBuffer;
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, url_.c_str());
|
||||||
|
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 5);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); // отключил проверку ssl сертификата
|
||||||
|
|
||||||
|
CURLcode res = curl_easy_perform(curl);
|
||||||
|
if (res != CURLE_OK) {
|
||||||
|
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
|
||||||
|
} else {
|
||||||
|
data_ = nlohmann::json::parse(readBuffer);
|
||||||
|
}
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(interval_));
|
||||||
|
}
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t reHttpPoller::WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) {
|
||||||
|
((std::string*)userp)->append((char*)contents, size * nmemb);
|
||||||
|
return size * nmemb;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <thread>
|
||||||
|
#include <atomic>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
class reHttpPoller {
|
||||||
|
public:
|
||||||
|
reHttpPoller(const std::string& host, long interval_s);
|
||||||
|
void setEndpoint(const std::string& endpoint);
|
||||||
|
|
||||||
|
void start();
|
||||||
|
void stop();
|
||||||
|
|
||||||
|
~reHttpPoller() {
|
||||||
|
stop();
|
||||||
|
}
|
||||||
|
protected:
|
||||||
|
void SendRequests();
|
||||||
|
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp);
|
||||||
|
std::atomic<bool> is_running_ = false;
|
||||||
|
std::thread worker_;
|
||||||
|
std::string url_;
|
||||||
|
int interval_;
|
||||||
|
nlohmann::json data_;
|
||||||
|
};
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
#include "wsSessionHandler.h"
|
|
||||||
|
|
||||||
void wsAnswerHandler(std::vector<std::pair<std::string, std::string>> msg, std::string url)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#ifndef SOFTCONTROLLER_WSSESSIONHANDLER_H
|
|
||||||
#define SOFTCONTROLLER_WSSESSIONHANDLER_H
|
|
||||||
#endif //SOFTCONTROLLER_WSSESSIONHANDLER_H
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
void wsAnswerHandler(std::vector<std::pair<std::string, std::string>> msg, std::string url);
|
|
||||||
Loading…
Reference in New Issue
Block a user