Skip to content

Commit

Permalink
upd 2018-12-18
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Laufenberg committed Dec 18, 2018
1 parent 39a9cfd commit 9f6a25f
Show file tree
Hide file tree
Showing 57 changed files with 1,918 additions and 1,072 deletions.
6 changes: 3 additions & 3 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AccessModifierOffset: 0
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignEscapedNewlinesLeft: false
AlignOperands: true
AlignTrailingComments: true
Expand Down
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@
*.png binary
*.docx binary
*.odt binary
*.pcapng binary


14 changes: 11 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
*~
/build
**/build/
**/tbuild/
/src/engine/build
/tutorials/build
/tutorials/build_*
Expand All @@ -12,13 +13,20 @@ doc/html/
doc/latex/
*.db
*.o
*.d
*.bin
*.o.d
*.log
.~*
.clang/
.codelite/
**/CodeLite/Debug/*
**/CodeLite/Makefile
**/CodeLite/*.mk
**/CodeLite/*.txt
**/Makefile
**/*.mk
**/tutos.txt
**/Tests.txt
**/Debug/
e2e_localhost.txt
/.vscode
.vscode/*

3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@
url = https://github.com/google/googletest.git
ignore = dirty

[submodule "enterprise"]
path = enterprise
url = ssh://[email protected]/tredzone/enterprise.git
29 changes: 26 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The format is based on [Keep a Changelog](http://keepachangelog.com/) </br>
Date format: YYYY-MM-DD </br>
Sub-sections: Added, Removed, Deprecated </br>
Sub-sections: Added, Removed, Depreceted </br>

<!---
## [Unreleased]
Expand All @@ -12,6 +12,29 @@ Sub-sections: Added, Removed, Deprecated </br>
### Refactored
--->

## [2.6.6] - 2018-12-18

### Added
- variadic Event::Pipe::push<Event>(...)
- accompanying documentation
- asynchronous KeyboardActor
- accompanying tutorial using new IWaitCondition for deterministic engine exit
- #define TRACE_REF for Actor lifetime tracing
- will save one log file per core upon engine destruction
- accompanying documentation
- #undef TREDZONE_CHECK_CYCLICAL_REFS to skip cyclical reference checks in RELEASE mode (enabled by default)
- docker_test.sh Bash script will now stop on compilation error
- Raspberry Pi ARM support under Raspbian


### Refactored
- AsyncService -> Service (alias removed)
- #define DEBUG/NDEBUG/RELEASE to allow for Linux & Microsoft practices
- LogTypeEnum::DEBUG renamed to LogTypeEnum::LOG_T_DEBUG to side-step any previous #define DEBUG

### Deprecated
- TREDZONE_CPP11_SUPPORT (C++11 is required)


## [2.6.5] - 2018-06-25

Expand All @@ -23,11 +46,11 @@ Sub-sections: Added, Removed, Deprecated </br>
- AsyncActor -> Actor (alias removed)
- AsyncEngine -> Engine (alias removed)
- namespace trz -> tredzone (alias removed)
- TimerProxy::onTimeOut(const tredzone::Time&) -> TimerProxy::onTimeout(const tredzone::DateTime&) (note casing!)
- TimerProxy::onTimeOut() -> TimerProxy::onTimeout() (note casing!)
- bool TREDZONE_SDK_COMPATIBLE() -> removed


## [2.6.4] - 2015-06-01
Initial public OSS git version.
Initial public OSS git version


14 changes: 12 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.0)

project(sdk)
project(simplx)

# modules
include(FindThreads)
Expand All @@ -11,6 +11,8 @@ set( MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full")
INCLUDE(Dart)

option(BUILD_TEST "BUILD_TEST" OFF)
option(BUILD_CONNECTORS "BUILD_CONNECTORS" OFF)
option(BUILD_CONNECTORS_WITH_SAMPLES "BUILD_CONNECTORS_WITH_SAMPLES" OFF)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
Expand All @@ -20,7 +22,11 @@ message("> CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")

# set C++ compiler options
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wpedantic -Werror -Wno-deprecated -Woverloaded-virtual -Wsign-promo -fstrict-aliasing -Wno-noexcept-type -Wstrict-aliasing=1 -fdiagnostics-color=auto")
if(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 4.9)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wpedantic -Werror -Wno-deprecated -Woverloaded-virtual -Wsign-promo -Wno-noexcept-type -fdiagnostics-color=auto")
else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wpedantic -Werror -Wno-deprecated -Woverloaded-virtual -Wsign-promo -Wno-noexcept-type")
endif ()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") # -g already defined
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
Expand Down Expand Up @@ -65,6 +71,10 @@ add_subdirectory(src/engine)
#Timer
add_subdirectory(src/util)

#connectors
if(BUILD_CONNECTORS OR BUILD_CONNECTORS_WITH_SAMPLES)
add_subdirectory(plugin/connectors)
endif()


#Tutorial
Expand Down
33 changes: 26 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Simplx is a C++ development framework for building reliable cache-friendly distr

Simplx was developed by [Tredzone SAS](http://www.tredzone.com). We provide software technology solutions and services dedicated to high-performance real-time processing. Our technology enables low and predictable latency, scalability, and high throughput. We also offer support contracts and enterprise tools for monitoring, profiling, debugging, server clustering under commercial licenses.

Simplx is used at the Paris Stock Exchange by Euronext's market exchange platform, called *Optiq*, and has been successfully deployed since November 2016.
Simplx is used at the Paris stock exchange by Euronext's market exchange platform, called "Optiq", and has been successfully deployed since November 2016.

Tredzone was founded in 2013 and operates in France, the UK and US.

Expand All @@ -25,6 +25,15 @@ It requires either C++ 11, 14 or 17 and the pthreads library. Support for Window
Simplx is open-sourced under the Apache 2.0 license, please see the [accompanying License](./LICENSE).


## Enterprise License

If you have a commercial enterprise license with us, including appropriate github access credentials, you may fetch those components with:

```
git submodule update --init enterprise
```


## Getting Started

About a dozen tutorials are included here, please see the [Tutorials README](./tutorials/README.md).
Expand All @@ -35,7 +44,7 @@ To build all tutorials, open a terminal at the root of the repository and type:
mkdir build
cd build
cmake ..
make
make -j8
```


Expand All @@ -44,11 +53,10 @@ make
To build and run the unit tests, which depend on the Google Test submodule, open a terminal at the root of the repository and type:

```
git submodule update --init --recursive
mkdir tbuild
cd tbuild
git submodule update --init thirdparty/googletest
mkdir tbuild && cd tbuild
cmake -DBUILD_TEST=1 ..
make
make -j8
```

to then run the unit tests type:
Expand All @@ -57,8 +65,19 @@ to then run the unit tests type:
make test
```

There is also a Bash [script](./test/docker_test.sh) that'll unit-test all above-mentionned versions of gcc and clang under Docker. The 1st run takes a while to download the Docker images.

## Docker

There's a Bash that'll compile the tutorials and run the unit tests under all above-mentionned versions of gcc and clang under Docker:

```
./test/docker_test.sh
```

If a compilation or unit test failure occurs, the script will stop and report the error.

The 1st run takes a while to download the Docker images, as per usual with Docker.


## Documentation

Expand Down
6 changes: 3 additions & 3 deletions doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ PROJECT_NAME = "Simplx C++ SDK"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.
# control system is used.per-core

PROJECT_NUMBER =

Expand Down Expand Up @@ -791,7 +791,7 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.

INPUT = include/trz/engine \
include/trz/util \
include/trz/engine/internal \
doc/index.dox

# USE_MDFILE_AS_MAINPAGE = xxx.MD
Expand Down Expand Up @@ -877,7 +877,7 @@ RECURSIVE = NO
# Note that relative paths are relative to the directory from which doxygen is
# run.

EXCLUDE = include/trz/engine/internal/
EXCLUDE =

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
Expand Down
5 changes: 5 additions & 0 deletions doc/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
credit: https://github.com/Velron/doxygen-bootstrapped

run 'doxygen' from project root


1 change: 1 addition & 0 deletions enterprise
Submodule enterprise added at 2ab1f4
Loading

2 comments on commit 9f6a25f

@xiaobb
Copy link

@xiaobb xiaobb commented on 9f6a25f Feb 2, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi,i am watching your code, my friends

@cbechara
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great my friend :)

Please sign in to comment.