Compare commits

...

9 Commits

Author SHA1 Message Date
5017818fb4 verbose upload anaconda 2020-11-09 14:54:41 +01:00
2020407438 adding namespace sls to public receiver api 2020-11-09 11:23:11 +01:00
121a3ad733 Static libraries (#213) 2020-11-03 18:54:11 +01:00
f6fff9d916 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2020-11-03 08:44:37 +01:00
707601832f minor fix to build 2020-11-03 08:44:29 +01:00
5687bdd6a2 test fix 2020-11-02 18:30:36 +01:00
e7a1960741 test fix 2020-11-02 18:27:10 +01:00
64be2e0297 test fix 2020-11-02 18:23:56 +01:00
66df5fe8ee test fix 2020-11-02 18:17:35 +01:00
19 changed files with 136 additions and 74 deletions

View File

@ -31,7 +31,7 @@ script:
deploy: deploy:
provider: script provider: script
script: find $HOME/miniconda/envs/testenv/conda-bld/${TRAVIS_OS_NAME}-64 -name "*.tar.bz2" -exec anaconda -t $CONDA_TOKEN upload --force {} \; script: find $HOME/miniconda/envs/testenv/conda-bld/${TRAVIS_OS_NAME}-64 -name "*.tar.bz2" -exec anaconda -v --show-traceback -t $CONDA_TOKEN upload --force {} \;
on: on:
branch: developer branch: developer
tags: true tags: true

View File

@ -61,6 +61,7 @@ find_package(ClangFormat)
#Enable LTO if available #Enable LTO if available
check_ipo_supported(RESULT SLS_LTO_AVAILABLE) check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
message(STATUS "SLS_LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
# # Use ld.gold if it is available and isn't disabled explicitly # # Use ld.gold if it is available and isn't disabled explicitly

View File

@ -5,10 +5,6 @@ mkdir -p $PREFIX/include/sls
# mkdir $PREFIX/include/slsDetectorPackage # mkdir $PREFIX/include/slsDetectorPackage
#Shared and static libraries #Shared and static libraries
# cp build/bin/libSlsDetector.so $PREFIX/lib/.
# cp build/bin/libSlsReceiver.so $PREFIX/lib/.
# cp build/bin/libSlsSupport.so $PREFIX/lib/.
cp build/install/lib/* $PREFIX/lib/ cp build/install/lib/* $PREFIX/lib/
#Binaries #Binaries

View File

@ -16,6 +16,7 @@
#include <TColor.h> #include <TColor.h>
#include <TTimer.h> #include <TTimer.h>
#include <TH2F.h> #include <TH2F.h>
#include <TSystem.h>
#include <stdio.h> #include <stdio.h>

View File

@ -24,10 +24,10 @@ foreach(exe ${MOENCH_EXECUTABLES})
target_link_libraries(${exe} target_link_libraries(${exe}
PUBLIC PUBLIC
slsSupportShared slsSupportStatic
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
pthread pthread
tiff TIFF::TIFF
PRIVATE PRIVATE
slsProjectWarnings slsProjectWarnings
@ -37,4 +37,9 @@ foreach(exe ${MOENCH_EXECUTABLES})
set_target_properties(${exe} PROPERTIES set_target_properties(${exe} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
) )
if(SLS_LTO_AVAILABLE)
set_property(TARGET ${exe} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
endforeach(exe ${MOENCH_EXECUTABLES}) endforeach(exe ${MOENCH_EXECUTABLES})

View File

@ -16,7 +16,7 @@
//CBFlib must be installed to use this program //CBFlib must be installed to use this program
// //
/*****************************************************************************/ /*****************************************************************************/
#include "tiffio.h" #include <tiffio.h>
#undef cbf_failnez #undef cbf_failnez
#define cbf_failnez(x) \ #define cbf_failnez(x) \

View File

@ -90,7 +90,7 @@ target_include_directories(slsDetectorGui PUBLIC
target_link_libraries(slsDetectorGui PUBLIC target_link_libraries(slsDetectorGui PUBLIC
slsProjectOptions slsProjectOptions
slsProjectWarnings slsProjectWarnings
slsDetectorShared slsDetectorStatic
${QT_QTCORE_LIBRARIES} ${QT_QTCORE_LIBRARIES}
${QT_QTGUI_LIBRARIES} ${QT_QTGUI_LIBRARIES}
${QWT_LIBRARIES} ${QWT_LIBRARIES}
@ -104,6 +104,9 @@ target_link_libraries(slsDetectorGui PUBLIC
set_target_properties(slsDetectorGui PROPERTIES set_target_properties(slsDetectorGui PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
) )
if(SLS_LTO_AVAILABLE)
set_property(TARGET slsDetectorGui PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
install(TARGETS slsDetectorGui install(TARGETS slsDetectorGui
EXPORT "${TARGETS_EXPORT_NAME}" EXPORT "${TARGETS_EXPORT_NAME}"

View File

@ -6,26 +6,16 @@ set(SOURCES
src/CmdParser.cpp src/CmdParser.cpp
) )
set(HEADERS add_library(slsDetectorObject OBJECT
)
add_library(slsDetectorShared SHARED
${SOURCES} ${SOURCES}
${HEADERS}
) )
target_include_directories(slsDetectorObject PUBLIC
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
set_property(TARGET slsDetectorShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
target_include_directories(slsDetectorShared PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
) )
target_link_libraries(slsDetectorShared target_link_libraries(slsDetectorObject
PUBLIC PUBLIC
slsSupportStatic slsSupportStatic
pthread pthread
@ -42,13 +32,33 @@ set(PUBLICHEADERS
include/sls/Detector.h include/sls/Detector.h
include/sls/Result.h include/sls/Result.h
) )
#Shared library
add_library(slsDetectorShared SHARED $<TARGET_OBJECTS:slsDetectorObject>)
target_link_libraries(slsDetectorShared PUBLIC slsDetectorObject)
set_target_properties(slsDetectorShared PROPERTIES set_target_properties(slsDetectorShared PROPERTIES
LIBRARY_OUTPUT_NAME SlsDetector LIBRARY_OUTPUT_NAME SlsDetector
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}" PUBLIC_HEADER "${PUBLICHEADERS}"
) )
#Static library
add_library(slsDetectorStatic STATIC $<TARGET_OBJECTS:slsDetectorObject>)
target_link_libraries(slsDetectorStatic PUBLIC slsDetectorObject)
set_target_properties(slsDetectorStatic PROPERTIES
ARCHIVE_OUTPUT_NAME SlsDetectorStatic
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
# message("Detector LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
set_property(TARGET slsDetectorObject PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsDetectorStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsDetectorShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
# Loop over list to generate command line binaries # Loop over list to generate command line binaries
set(bin_names "sls_detector_put" set(bin_names "sls_detector_put"
@ -66,16 +76,16 @@ foreach(val RANGE ${len2})
add_executable(${val1} src/CmdLineApp.cpp) add_executable(${val1} src/CmdLineApp.cpp)
target_link_libraries(${val1} target_link_libraries(${val1}
slsDetectorShared slsDetectorStatic
pthread pthread
zmq ${ZeroMQ_LIBRARIES}
rt rt
) )
set_target_properties(${val1} PROPERTIES set_target_properties(${val1} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
COMPILE_DEFINITIONS ${val2}=1 COMPILE_DEFINITIONS ${val2}=1
) )
if(LTO_AVAILABLE) if(SLS_LTO_AVAILABLE)
set_property(TARGET ${val1} PROPERTY INTERPROCEDURAL_OPTIMIZATION True) set_property(TARGET ${val1} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif() endif()
endforeach() endforeach()
@ -89,7 +99,7 @@ if (SLS_USE_TESTS)
endif(SLS_USE_TESTS) endif(SLS_USE_TESTS)
install(TARGETS slsDetectorShared install(TARGETS slsDetectorShared slsDetectorObject slsDetectorStatic
EXPORT "${TARGETS_EXPORT_NAME}" EXPORT "${TARGETS_EXPORT_NAME}"
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}

View File

@ -1,6 +1,6 @@
#include "CmdProxy.h" #include "CmdProxy.h"
#include "sls/Detector.h"
#include "catch.hpp" #include "catch.hpp"
#include "sls/Detector.h"
#include "sls/sls_detector_defs.h" #include "sls/sls_detector_defs.h"
#include <chrono> #include <chrono>
@ -328,16 +328,18 @@ TEST_CASE("exptime", "[.cmd][.time]") {
proxy.Call("exptime", {"1s"}, -1, PUT, oss); proxy.Call("exptime", {"1s"}, -1, PUT, oss);
REQUIRE(oss.str() == "exptime 1s\n"); REQUIRE(oss.str() == "exptime 1s\n");
} }
{ if (det_type != defs::JUNGFRAU) {
std::ostringstream oss; {
proxy.Call("exptime", {"0"}, -1, PUT, oss); std::ostringstream oss;
REQUIRE(oss.str() == "exptime 0\n"); proxy.Call("exptime", {"0"}, -1, PUT, oss);
} REQUIRE(oss.str() == "exptime 0\n");
{ }
// Get exptime of single module {
std::ostringstream oss; // Get exptime of single module
proxy.Call("exptime", {}, 0, GET, oss); std::ostringstream oss;
REQUIRE(oss.str() == "exptime 0ns\n"); proxy.Call("exptime", {}, 0, GET, oss);
REQUIRE(oss.str() == "exptime 0ns\n");
}
} }
det.setExptime(-1, prev_val); det.setExptime(-1, prev_val);
} }
@ -1217,6 +1219,7 @@ TEST_CASE("start", "[.cmd][.new]") {
proxy.Call("start", {}, -1, PUT, oss); proxy.Call("start", {}, -1, PUT, oss);
REQUIRE(oss.str() == "start successful\n"); REQUIRE(oss.str() == "start successful\n");
} }
std::this_thread::sleep_for(std::chrono::milliseconds(200));
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("status", {}, -1, GET, oss); proxy.Call("status", {}, -1, GET, oss);
@ -1245,6 +1248,7 @@ TEST_CASE("stop", "[.cmd][.new]") {
} }
det.setExptime(-1, std::chrono::seconds(2)); det.setExptime(-1, std::chrono::seconds(2));
det.startDetector(); det.startDetector();
std::this_thread::sleep_for(std::chrono::milliseconds(200));
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("status", {}, -1, GET, oss); proxy.Call("status", {}, -1, GET, oss);
@ -1255,7 +1259,11 @@ TEST_CASE("stop", "[.cmd][.new]") {
proxy.Call("stop", {}, -1, PUT, oss); proxy.Call("stop", {}, -1, PUT, oss);
REQUIRE(oss.str() == "stop successful\n"); REQUIRE(oss.str() == "stop successful\n");
} }
{ if (det_type == defs::JUNGFRAU) {
std::ostringstream oss;
proxy.Call("status", {}, -1, GET, oss);
REQUIRE(oss.str() == "status stopped\n");
} else {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("status", {}, -1, GET, oss); proxy.Call("status", {}, -1, GET, oss);
REQUIRE(oss.str() == "status idle\n"); REQUIRE(oss.str() == "status idle\n");
@ -1280,6 +1288,7 @@ TEST_CASE("status", "[.cmd][.new]") {
} }
det.setExptime(-1, std::chrono::seconds(2)); det.setExptime(-1, std::chrono::seconds(2));
det.startDetector(); det.startDetector();
std::this_thread::sleep_for(std::chrono::milliseconds(200));
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("status", {}, -1, GET, oss); proxy.Call("status", {}, -1, GET, oss);

View File

@ -11,6 +11,11 @@ set(SOURCES
src/Fifo.cpp src/Fifo.cpp
) )
set(PUBLICHEADERS
include/sls/Receiver.h
)
# HDF5 # HDF5
if (SLS_USE_HDF5) if (SLS_USE_HDF5)
if (HDF5_FOUND) if (HDF5_FOUND)
@ -23,18 +28,18 @@ if (SLS_USE_HDF5)
endif () endif ()
endif (SLS_USE_HDF5) endif (SLS_USE_HDF5)
# Create an object library to avoid building the library twice
add_library(slsReceiverShared SHARED # This is only used during the build phase
add_library(slsReceiverObject OBJECT
${SOURCES} ${SOURCES}
${HEADERS}
) )
target_include_directories(slsReceiverObject PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE) target_link_libraries(slsReceiverObject
set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
target_link_libraries(slsReceiverShared
PUBLIC PUBLIC
slsProjectOptions slsProjectOptions
slsSupportStatic slsSupportStatic
@ -42,35 +47,44 @@ target_link_libraries(slsReceiverShared
slsProjectWarnings #don't propagate warnigns slsProjectWarnings #don't propagate warnigns
) )
target_include_directories(slsReceiverShared PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
# HDF5 # HDF5
if (SLS_USE_HDF5) if (SLS_USE_HDF5)
if (HDF5_FOUND) if (HDF5_FOUND)
target_link_libraries(slsReceiverShared PUBLIC target_link_libraries(slsReceiverObject PUBLIC
${HDF5_LIBRARIES}) ${HDF5_LIBRARIES})
target_include_directories(slsReceiverShared PUBLIC target_include_directories(slsReceiverObject PUBLIC
${HDF5_INCLUDE_DIRS} ${HDF5_INCLUDE_DIRS}
${CMAKE_INSTALL_PREFIX}/include) ${CMAKE_INSTALL_PREFIX}/include)
endif () endif ()
endif (SLS_USE_HDF5) endif (SLS_USE_HDF5)
#What is included in slsReceiverLib? #Shared library
set(PUBLICHEADERS add_library(slsReceiverShared SHARED $<TARGET_OBJECTS:slsReceiverObject>)
include/sls/Receiver.h target_link_libraries(slsReceiverShared PUBLIC slsReceiverObject)
)
set_target_properties(slsReceiverShared PROPERTIES set_target_properties(slsReceiverShared PROPERTIES
LIBRARY_OUTPUT_NAME SlsReceiver LIBRARY_OUTPUT_NAME SlsReceiver
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}" PUBLIC_HEADER "${PUBLICHEADERS}"
) )
#Static library
add_library(slsReceiverStatic STATIC $<TARGET_OBJECTS:slsReceiverObject>)
target_link_libraries(slsReceiverStatic PUBLIC slsReceiverObject)
set_target_properties(slsReceiverStatic PROPERTIES
ARCHIVE_OUTPUT_NAME SlsReceiverStatic
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
PUBLIC_HEADER "${PUBLICHEADERS}"
)
# message("Receiver LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
set_property(TARGET slsReceiverObject PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsReceiverStatic PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET slsReceiverShared PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
add_executable(slsReceiver add_executable(slsReceiver
src/ReceiverApp.cpp) src/ReceiverApp.cpp)
@ -78,10 +92,13 @@ add_executable(slsReceiver
set_target_properties(slsReceiver PROPERTIES set_target_properties(slsReceiver PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
) )
if(SLS_LTO_AVAILABLE)
set_property(TARGET slsReceiver PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
target_link_libraries(slsReceiver PUBLIC target_link_libraries(slsReceiver PUBLIC
PUBLIC PUBLIC
slsReceiverShared slsReceiverStatic
pthread pthread
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
rt rt
@ -96,10 +113,13 @@ add_executable(slsMultiReceiver
set_target_properties(slsMultiReceiver PROPERTIES set_target_properties(slsMultiReceiver PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
) )
if(SLS_LTO_AVAILABLE)
set_property(TARGET slsMultiReceiver PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
target_link_libraries(slsMultiReceiver target_link_libraries(slsMultiReceiver
PUBLIC PUBLIC
slsReceiverShared slsReceiverStatic
pthread pthread
${ZeroMQ_LIBRARIES} ${ZeroMQ_LIBRARIES}
rt rt
@ -111,7 +131,10 @@ if (SLS_USE_TESTS)
add_subdirectory(tests) add_subdirectory(tests)
endif(SLS_USE_TESTS) endif(SLS_USE_TESTS)
install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver
install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver slsReceiverObject slsReceiverStatic
EXPORT "${TARGETS_EXPORT_NAME}" EXPORT "${TARGETS_EXPORT_NAME}"
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
@ -119,5 +142,5 @@ install(TARGETS slsReceiverShared slsReceiver slsMultiReceiver
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sls PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sls
) )
install(FILES ${ZMQ_STATIC_ARCHIVE} # install(FILES ${ZMQ_STATIC_ARCHIVE}
DESTINATION lib) # DESTINATION lib)

View File

@ -11,6 +11,8 @@
#include <semaphore.h> #include <semaphore.h>
#include <vector> #include <vector>
namespace sls{
/** Circular Fifo (a.k.a. Circular Buffer) /** Circular Fifo (a.k.a. Circular Buffer)
* Thread safe for one reader, and one writer */ * Thread safe for one reader, and one writer */
template <typename Element> class CircularFifo { template <typename Element> class CircularFifo {
@ -127,3 +129,5 @@ size_t CircularFifo<Element>::increment(size_t i) const {
i = (i + 1) % capacity; i = (i + 1) % capacity;
return i; return i;
} }
}

View File

@ -4,6 +4,9 @@
class ClientInterface; class ClientInterface;
namespace sls
{
class Receiver : private virtual slsDetectorDefs { class Receiver : private virtual slsDetectorDefs {
public: public:
@ -86,3 +89,5 @@ class Receiver : private virtual slsDetectorDefs {
private: private:
std::unique_ptr<ClientInterface> tcpipInterface; std::unique_ptr<ClientInterface> tcpipInterface;
}; };
} // namespace sls

View File

@ -33,9 +33,9 @@ void Fifo::CreateFifos(uint32_t fifoItemSize) {
DestroyFifos(); DestroyFifos();
// create fifos // create fifos
fifoBound = new CircularFifo<char>(fifoDepth); fifoBound = new sls::CircularFifo<char>(fifoDepth);
fifoFree = new CircularFifo<char>(fifoDepth); fifoFree = new sls::CircularFifo<char>(fifoDepth);
fifoStream = new CircularFifo<char>(fifoDepth); fifoStream = new sls::CircularFifo<char>(fifoDepth);
// allocate memory // allocate memory
size_t mem_len = (size_t)fifoItemSize * (size_t)fifoDepth * sizeof(char); size_t mem_len = (size_t)fifoItemSize * (size_t)fifoDepth * sizeof(char);
memory = (char *)malloc(mem_len); memory = (char *)malloc(mem_len);

View File

@ -92,13 +92,13 @@ class Fifo : private virtual slsDetectorDefs {
char *memory; char *memory;
/** Circular Fifo pointing to addresses of bound data in memory */ /** Circular Fifo pointing to addresses of bound data in memory */
CircularFifo<char> *fifoBound; sls::CircularFifo<char> *fifoBound;
/** Circular Fifo pointing to addresses of freed data in memory */ /** Circular Fifo pointing to addresses of freed data in memory */
CircularFifo<char> *fifoFree; sls::CircularFifo<char> *fifoFree;
/** Circular Fifo pointing to addresses of to be streamed data in memory */ /** Circular Fifo pointing to addresses of to be streamed data in memory */
CircularFifo<char> *fifoStream; sls::CircularFifo<char> *fifoStream;
/** Fifo depth set */ /** Fifo depth set */
int fifoDepth; int fifoDepth;

View File

@ -216,9 +216,9 @@ int main(int argc, char *argv[]) {
cprintf(BLUE, "Child process %d [ Tid: %ld ]\n", i, cprintf(BLUE, "Child process %d [ Tid: %ld ]\n", i,
(long)syscall(SYS_gettid)); (long)syscall(SYS_gettid));
std::unique_ptr<Receiver> receiver = nullptr; std::unique_ptr<sls::Receiver> receiver = nullptr;
try { try {
receiver = sls::make_unique<Receiver>(startTCPPort + i); receiver = sls::make_unique<sls::Receiver>(startTCPPort + i);
} catch (...) { } catch (...) {
LOG(logINFOBLUE) LOG(logINFOBLUE)
<< "Exiting Child Process [ Tid: " << syscall(SYS_gettid) << "Exiting Child Process [ Tid: " << syscall(SYS_gettid)

View File

@ -15,6 +15,8 @@
#include <sys/syscall.h> #include <sys/syscall.h>
#include <unistd.h> #include <unistd.h>
namespace sls{
Receiver::~Receiver() = default; Receiver::~Receiver() = default;
Receiver::Receiver(int argc, char *argv[]) : tcpipInterface(nullptr) { Receiver::Receiver(int argc, char *argv[]) : tcpipInterface(nullptr) {
@ -142,3 +144,5 @@ void Receiver::registerCallBackRawDataModifyReady(
void (*func)(char *, char *, uint32_t &, void *), void *arg) { void (*func)(char *, char *, uint32_t &, void *), void *arg) {
tcpipInterface->registerCallBackRawDataModifyReady(func, arg); tcpipInterface->registerCallBackRawDataModifyReady(func, arg);
} }
}

View File

@ -41,7 +41,7 @@ int main(int argc, char *argv[]) {
} }
try { try {
Receiver r(argc, argv); sls::Receiver r(argc, argv);
LOG(logINFO) << "[ Press \'Ctrl+c\' to exit ]"; LOG(logINFO) << "[ Press \'Ctrl+c\' to exit ]";
sem_wait(&semaphore); sem_wait(&semaphore);
sem_destroy(&semaphore); sem_destroy(&semaphore);

View File

@ -2,6 +2,8 @@
#include "catch.hpp" #include "catch.hpp"
#include <vector> #include <vector>
using sls::CircularFifo;
TEST_CASE("Empty buffer") { TEST_CASE("Empty buffer") {
CircularFifo<char> fifo(0); CircularFifo<char> fifo(0);

View File

@ -87,7 +87,6 @@ set_target_properties(slsSupportShared PROPERTIES
# Add static version of the support lib # Add static version of the support lib
add_library(slsSupportStatic STATIC $<TARGET_OBJECTS:slsSupportObject>) add_library(slsSupportStatic STATIC $<TARGET_OBJECTS:slsSupportObject>)
target_link_libraries(slsSupportStatic PUBLIC slsSupportObject) target_link_libraries(slsSupportStatic PUBLIC slsSupportObject)
set_target_properties(slsSupportStatic PROPERTIES set_target_properties(slsSupportStatic PROPERTIES