Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 28 additions & 29 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,50 +1,49 @@
cmake_minimum_required(VERSION 3.12.4)

if(NOT CMAKE_VERSION VERSION_LESS 3.0)
cmake_policy(SET CMP0048 NEW)
endif()
cmake_minimum_required(VERSION 3.28.3)

project(DistributedATS)
#set(CMAKE_SUPPRESS_REGENERATION true)

# Find requirements
if(NOT fastcdr_FOUND)
find_package(fastcdr REQUIRED)
endif()

if(NOT fastdds_FOUND)
find_package(fastdds 3 REQUIRED)
endif()
set(CMAKE_PREFIX_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

FIND_PACKAGE( Boost 1.40 COMPONENTS program_options REQUIRED )
INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
link_directories(${Boost_LIBRARY_DIRS})
find_package( Boost )
find_package( DDS REQUIRED )
find_package( log4cxx REQUIRED )
find_package( quickfix REQUIRED )
find_package( liquibook REQUIRED )

link_directories(${QUICKFIX_INSTALL_PREFIX}/lib)
set(DDS_INCLUDE_DIR "${DDS_INSTALL_PREFIX}/include")
set(DDS_LIBRARY_DIR "${DDS_INSTALL_PREFIX}/lib")
set(QUICKFIX_INCLUDE_DIR "${QUICKFIX_INSTALL_PREFIX}/include")
set(QUICKFIX_LIBRARY_DIR "${QUICKFIX_INSTALL_PREFIX}/lib")
set(LOG4CXX_INCLUDE_DIR "${LOG4CXX_INSTALL_PREFIX}/include")
set(LOG4CXX_LIBRARY_DIR "${LOG4CXX_INSTALL_PREFIX}/lib")

include_directories(Common)
add_subdirectory(GenTools/idl)
set(LIQUIBOOK_INCLUDE_DIR "${LIQUIBOOK_INSTALL_PREFIX}/include")

include_directories(GenTools/idl)
add_subdirectory(FIXGateway/src)
add_subdirectory(DataService/src)
add_subdirectory(MatchingEngine/src)
add_subdirectory(LatencyTest)
include_directories( Common )
add_subdirectory( GenTools/idl )

set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "-o linker-signed")
include_directories( GenTools/idl )
add_subdirectory( FIXGateway/src )
add_subdirectory( DataService/src )
add_subdirectory( MatchingEngine/src )
add_subdirectory( LatencyTest )

install(DIRECTORY ${CMAKE_SOURCE_DIR}/MiscATS/
DESTINATION MiscATS
FILES_MATCHING PATTERN "*.db" PATTERN "*.sh" PATTERN "*.ini" PATTERN "*.cfg")

install(DIRECTORY MiscATS DESTINATION ${CMAKE_INSTALL_PREFIX})
install(CODE "
file(GLOB_RECURSE SCRIPT_FILES
\"\${CMAKE_INSTALL_PREFIX}/MiscATS/*.sh\")
foreach(script \${SCRIPT_FILES})
execute_process(COMMAND chmod +x \${script})
endforeach()
")

install(FILES FIXGateway/scripts/fixgateway.sh
DataService/scripts/dataservice.sh
MatchingEngine/scripts/matchingengine.sh
Expand All @@ -53,5 +52,5 @@ install(FILES FIXGateway/scripts/fixgateway.sh
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE)

install(FILES config/log4cxx.xml DESTINATION config)
install(FILES FIXGateway/spec/FIX44.xml DESTINATION spec)
install( FILES config/log4cxx.xml DESTINATION config )
install( FILES FIXGateway/spec/FIX44.xml DESTINATION spec )
49 changes: 29 additions & 20 deletions DataService/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,36 +1,45 @@
cmake_minimum_required(VERSION 3.12.4)

if(NOT CMAKE_VERSION VERSION_LESS 3.0)
cmake_policy(SET CMP0048 NEW)
endif()
message(STATUS "Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
message(DDS_INCLUDE_DIR="${DDS_INCLUDE_DIR}")
message(DDS_LIBRARY_DIR="${DDS_LIBRARY_DIR}")

project(DataService)
message(QUICKFIX_INCLUDE_DIR="${QUICKFIX_INCLUDE_DIR}")
message(QUICKFIX_LIBRARY_DIR="${QUICKFIX_LIBRARY_DIR}")

# Find requirements
if(NOT fastcdr_FOUND)
find_package(fastcdr REQUIRED)
endif()
include_directories(${DDS_INCLUDE_DIR})
link_directories(${DDS_LIBRARY_DIR})

if(NOT fastdds_FOUND)
find_package(fastdds 3 REQUIRED)
endif()
include_directories(${QUICKFIX_INCLUDE_DIR})
link_directories(${QUICKFIX_LIBRARY_DIR})

find_package(log4cxx REQUIRED)
include_directories(${LOG4CXX_INCLUDE_DIR})
link_directories(${LOG4CXX_LIBRARY_DIR})

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS})

link_directories(${CMAKE_INSTALL_PREFIX}/lib)
file(GLOB DISTRIBUTED_ATS_DATASERVICE_SRC *.cpp)

file(GLOB DISTRIBUTED_ATS_DATASERVICE_SRC *)
add_executable(DataService ${DISTRIBUTED_ATS_DATASERVICE_SRC})
link_directories(DistributedATSLib quickfix log4cxx)
target_link_libraries(DataService DistributedATSLib quickfix log4cxx boost_program_options sqlite3)

find_package(Boost REQUIRED COMPONENTS program_options)
include_directories(${Boost_INCLUDE_DIRS})

target_link_libraries(DataService
PRIVATE
DistributedATSLib
quickfix
log4cxx
Boost::program_options
fastcdr
fastdds
sqlite3
)

set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "-o linker-signed")

install(TARGETS DataService
install(TARGETS DataService
PUBLIC_HEADER
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dats
)
2 changes: 1 addition & 1 deletion DataService/src/SQLiteConnection.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ class SQLiteConnection
private:
void connect()
{
int rc = sqlite3_open(m_pDatabase.getDatabase().c_str(), &m_pConnection);
int rc = sqlite3_open_v2(m_pDatabase.getDatabase().c_str(), &m_pConnection, SQLITE_OPEN_READONLY, nullptr);

if (rc != SQLITE_OK)
{
Expand Down
67 changes: 33 additions & 34 deletions FIXGateway/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,42 +1,41 @@
cmake_minimum_required(VERSION 3.12.4)

if(NOT CMAKE_VERSION VERSION_LESS 3.0)
cmake_policy(SET CMP0048 NEW)
endif()

project(FIXGateway)

# Find requirements
if(NOT fastcdr_FOUND)
find_package(fastcdr REQUIRED)
endif()

if(NOT fastdds_FOUND)
find_package(fastdds 3 REQUIRED)
endif()

find_package(log4cxx REQUIRED)

# Set C++11
include(CheckCXXCompilerFlag)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG OR
CMAKE_CXX_COMPILER_ID MATCHES "Clang")
check_cxx_compiler_flag(-std=c++11 SUPPORTS_CXX11 -g)
if(SUPPORTS_CXX11)
add_compile_options(-std=c++11 -g)
else()
message(FATAL_ERROR "Compiler doesn't support C++11")
endif()
endif()

link_directories(${CMAKE_INSTALL_PREFIX}/lib)
link_directories(${CMAKE_QUICKFIX_PREFIX}/lib)
#link_directories(${Boost_LIBRARY_DIRS})

file(GLOB DISTRIBUTED_ATS_FIX_GATEWAY_SRC *)
message(STATUS "Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
message(DDS_INCLUDE_DIR="${DDS_INCLUDE_DIR}")
message(DDS_LIBRARY_DIR="${DDS_LIBRARY_DIR}")

message(QUICKFIX_INCLUDE_DIR="${QUICKFIX_INCLUDE_DIR}")
message(QUICKFIX_LIBRARY_DIR="${QUICKFIX_LIBRARY_DIR}")

include_directories(${DDS_INCLUDE_DIR})
link_directories(${DDS_LIBRARY_DIR})

include_directories(${QUICKFIX_INCLUDE_DIR})
link_directories(${QUICKFIX_LIBRARY_DIR})

include_directories(${LOG4CXX_INCLUDE_DIR})
link_directories(${LOG4CXX_LIBRARY_DIR})

include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS})

file(GLOB DISTRIBUTED_ATS_FIX_GATEWAY_SRC *.cpp)
add_executable(FIXGateway ${DISTRIBUTED_ATS_FIX_GATEWAY_SRC})
link_directories(DistributedATSLib quickfix log4cxx)
target_link_libraries(FIXGateway DistributedATSLib quickfix log4cxx boost_program_options)

find_package(Boost REQUIRED COMPONENTS program_options)
include_directories(${Boost_INCLUDE_DIRS})

target_link_libraries(FIXGateway
PRIVATE
DistributedATSLib
quickfix
log4cxx
Boost::program_options
fastcdr
fastdds
)

set(CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "-o linker-signed")

Expand Down
4 changes: 2 additions & 2 deletions FIXGateway/src/FileLog.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,11 @@ class FileLog : public FIX::Log {
void backup();

void onIncoming(const std::string &value) {
m_messages << FIX::UtcTimeStampConvertor::convert(FIX::UtcTimeStamp(), 9)
m_messages << FIX::UtcTimeStampConvertor::convert(FIX::UtcTimeStamp::now(), 9)
<< " : " << value << std::endl;
}
void onOutgoing(const std::string &value) {
m_messages << FIX::UtcTimeStampConvertor::convert(FIX::UtcTimeStamp(), 9)
m_messages << FIX::UtcTimeStampConvertor::convert(FIX::UtcTimeStamp::now(), 9)
<< " : " << value << std::endl;
}
void onEvent(const std::string &value) {
Expand Down
4 changes: 2 additions & 2 deletions FIXGateway/src/SocketAcceptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ void SocketAcceptor::onStart() {
m_pServer = 0;
}

bool SocketAcceptor::onPoll(double timeout) {
bool SocketAcceptor::onPoll() {
if (!m_pServer)
return false;

Expand All @@ -150,7 +150,7 @@ bool SocketAcceptor::onPoll(double timeout) {
}

std::cout << "Polling" << std::endl;
m_pServer->block(*this, true, timeout);
m_pServer->block(*this, true);
return true;
}

Expand Down
12 changes: 5 additions & 7 deletions FIXGateway/src/SocketAcceptor.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,13 @@ class SocketAcceptor : public FIX::Acceptor, FIX::SocketServer::Strategy {
typedef std::set<FIX::SessionID> Sessions;
typedef std::map<int, Sessions> PortToSessions;
typedef std::map<int, SocketConnection *> SocketConnections;
// typedef std::map <SessionID, SocketConnection*>
// PendingLogonSocketConnection;

void onConfigure(const FIX::SessionSettings &) throw(FIX::ConfigError);
void onInitialize(const FIX::SessionSettings &) throw(FIX::RuntimeError);
void onConfigure(const FIX::SessionSettings &) EXCEPT(ConfigError);
void onInitialize(const FIX::SessionSettings &) EXCEPT(RuntimeError);

void onStart();
bool onPoll(double timeout);
void onStop();
void onStart() override;
bool onPoll() override;
void onStop() override;

void onConnect(FIX::SocketServer &, int, int);
void onWrite(FIX::SocketServer &, int);
Expand Down
2 changes: 1 addition & 1 deletion FIXGateway/src/SocketConnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,6 @@ void SocketConnection::readMessages(SocketMonitor &s) {

void SocketConnection::onTimeout() {
if (m_pSession)
m_pSession->next();
m_pSession->next(UtcTimeStamp());
}
} // namespace DistributedATS
32 changes: 11 additions & 21 deletions GenTools/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,19 @@
cmake_minimum_required(VERSION 3.12.4)

if(NOT CMAKE_VERSION VERSION_LESS 3.0)
cmake_policy(SET CMP0048 NEW)
endif()

project(DistributedATSLib)

# Find requirements
if(NOT fastcdr_FOUND)
find_package(fastcdr REQUIRED)
endif()
message(STATUS "Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
message(DDS_INCLUDE_DIR="${DDS_INCLUDE_DIR}")
message(DDS_LIBRARY_DIR="${DDS_LIBRARY_DIR}")
message(QUICKFIX_INCLUDE_DIR="${QUICKFIX_INCLUDE_DIR}")
message(QUICKFIX_LIBRARY_DIR="${QUICKFIX_LIBRARY_DIR}")

if(NOT fastdds_FOUND)
find_package(fastdds 3 REQUIRED)
endif()
include_directories(${DDS_INCLUDE_DIR})
include_directories(${QUICKFIX_INCLUDE_DIR})
link_directories(${DDS_LIBRARY_DIR})
link_directories(${QUICKFIX_LIBRARY_DIR})

find_package(log4cxx REQUIRED)
file(GLOB DISTRIBUTED_ATS_LIB *)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include_directories(${DDS_INCLUDE_DIR})

link_directories(${CMAKE_INSTALL_PREFIX}/lib)
link_directories(${QUICKFIX_INSTALL_PREFIX}/lib)
file(GLOB DISTRIBUTED_ATS_LIB *)
include_directories(${CMAKE_INSTALL_PREFIX}/include)
add_library(DistributedATSLib SHARED ${DISTRIBUTED_ATS_LIB})
target_link_libraries(DistributedATSLib quickfix fastcdr fastdds log4cxx)
34 changes: 16 additions & 18 deletions GenTools/idl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,32 +1,30 @@
cmake_minimum_required(VERSION 3.12.4)

if(NOT CMAKE_VERSION VERSION_LESS 3.0)
cmake_policy(SET CMP0048 NEW)
endif()

project(DistributedATSLib)

# Find requirements
if(NOT fastcdr_FOUND)
find_package(fastcdr REQUIRED)
endif()

if(NOT fastdds_FOUND)
find_package(fastdds 3 REQUIRED)
endif()
message(STATUS "Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
message(DDS_INCLUDE_DIR="${DDS_INCLUDE_DIR}")
message(DDS_LIBRARY_DIR="${DDS_LIBRARY_DIR}")

message(QUICKFIX_INCLUDE_DIR="${QUICKFIX_INCLUDE_DIR}")
message(QUICKFIX_LIBRARY_DIR="${QUICKFIX_LIBRARY_DIR}")


find_package(log4cxx REQUIRED)
include_directories(${DDS_INCLUDE_DIR})
link_directories(${DDS_LIBRARY_DIR})

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include_directories(${QUICKFIX_INCLUDE_DIR})
link_directories(${QUICKFIX_LIBRARY_DIR})

link_directories(${CMAKE_INSTALL_PREFIX}/lib)
link_directories(${QUICKFIX_INSTALL_PREFIX}/lib)
include_directories(${LOG4CXX_INCLUDE_DIR})
link_directories(${LOG4CXX_LIBRARY_DIR})

file(GLOB DISTRIBUTED_ATS_LIB *)
include_directories(${CMAKE_INSTALL_PREFIX}/include)
add_library(DistributedATSLib SHARED ${DISTRIBUTED_ATS_LIB})
add_dependencies(DistributedATSLib FastDDS)
add_dependencies(DistributedATSLib QuickFIX)
add_dependencies(DistributedATSLib Log4cxx)
target_link_libraries(DistributedATSLib quickfix fastcdr fastdds log4cxx)

install(TARGETS DistributedATSLib
Expand Down
Loading