Skip to content

Commit cd117d6

Browse files
committed
OSS Release
0 parents  commit cd117d6

File tree

544 files changed

+60506
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

544 files changed

+60506
-0
lines changed

.clang-format

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
Language: Cpp
3+
IndentWidth: 4
4+
AccessModifierOffset: -2
5+
ColumnLimit: 80
6+
BreakConstructorInitializersBeforeComma: true
7+
ConstructorInitializerIndentWidth: 0
8+
NamespaceIndentation: None
9+
AlignTrailingComments: true
10+
AlignAfterOpenBracket: Align
11+
AlignConsecutiveAssignments: true
12+
TabWidth: 8
13+
UseTab: Never
14+
BreakBeforeBraces: Stroustrup
15+
SpaceBeforeParens: ControlStatements
16+
IndentCaseLabels: true
17+
AlwaysBreakTemplateDeclarations: true
18+
AlignEscapedNewlinesLeft: false
19+
AlignOperands: true
20+
AllowAllParametersOfDeclarationOnNextLine: false
21+
AllowShortBlocksOnASingleLine: false
22+
AllowShortCaseLabelsOnASingleLine: false
23+
AllowShortFunctionsOnASingleLine: All
24+
AllowShortIfStatementsOnASingleLine: false
25+
AllowShortLoopsOnASingleLine: false
26+
AlwaysBreakAfterDefinitionReturnType: None
27+
AlwaysBreakBeforeMultilineStrings: false
28+
BinPackArguments: false
29+
BinPackParameters: false
30+
BreakBeforeBinaryOperators: None
31+
BreakBeforeTernaryOperators: true
32+
CommentPragmas: '^ IWYU pragma:'
33+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
34+
ContinuationIndentWidth: 4
35+
Cpp11BracedListStyle: true
36+
DerivePointerAlignment: false
37+
DisableFormat: false
38+
ExperimentalAutoDetectBinPacking: false
39+
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
40+
IndentWrappedFunctionNames: false
41+
KeepEmptyLinesAtTheStartOfBlocks: true
42+
MacroBlockBegin: ''
43+
MacroBlockEnd: ''
44+
MaxEmptyLinesToKeep: 1
45+
ObjCBlockIndentWidth: 2
46+
ObjCSpaceAfterProperty: false
47+
ObjCSpaceBeforeProtocolList: true
48+
PenaltyBreakBeforeFirstCallParameter: 19
49+
PenaltyBreakComment: 300
50+
PenaltyBreakFirstLessLess: 120
51+
PenaltyBreakString: 1000
52+
PenaltyExcessCharacter: 1000000
53+
PenaltyReturnTypeOnItsOwnLine: 60
54+
PointerAlignment: Left
55+
SpaceAfterCStyleCast: false
56+
SpaceBeforeAssignmentOperators: true
57+
SpaceInEmptyParentheses: false
58+
SpacesBeforeTrailingComments: 1
59+
SpacesInAngles: false
60+
SpacesInContainerLiterals: true
61+
SpacesInCStyleCastParentheses: false
62+
SpacesInParentheses: false
63+
SpacesInSquareBrackets: false
64+
Standard: Cpp03
65+
...

.clang-format-ignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.*/.*.txt
2+
.*/.*.md

.github/pull_request_template.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
### Problem statement
2+
[describe what problem this PR addresses]
3+
4+
### Proposed changes
5+
[describe what is done in this PR]
6+
7+
### Remaining work
8+
- [ ] Unit Tests
9+
- [ ] Integration Tests
10+
- [ ] Documentation

.gitignore

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Prerequisites
2+
*.d
3+
4+
# Compiled Object files
5+
*.slo
6+
*.lo
7+
*.o
8+
*.obj
9+
10+
# Precompiled Headers
11+
*.gch
12+
*.pch
13+
14+
# Compiled Dynamic libraries
15+
*.so
16+
*.dylib
17+
*.dll
18+
19+
# Fortran module files
20+
*.mod
21+
*.smod
22+
23+
# Compiled Static libraries
24+
*.lai
25+
*.la
26+
*.a
27+
*.lib
28+
29+
# Executables
30+
*.exe
31+
*.out
32+
*.app
33+
34+
# Build env
35+
build/
36+
*.cmake
37+
CMakeFiles
38+
*CMakeCache*
39+
vcpkgbuild/
40+
/vcpkg_installed/
41+
compile_commands.json
42+
/out/
43+
/.cache/
44+
CMakeUserPresets.json
45+
/cmake.bld/
46+
47+
# Ignore Mac DS_Store files
48+
**/.DS_Store
49+
.lcldev/
50+
.vscode/*
51+
settings.json
52+
53+
54+
# Python files
55+
56+
*.pyc
57+
__pycache__/
58+
.pytest_cache/
59+
.cache/
60+
.venv/
61+
62+
# Test output
63+
.cache/*
64+
sample_log.txt
65+
tests/integration/logs
66+
67+
# Doxygen generated files
68+
generateddocs/

CMakeLists.txt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
cmake_minimum_required(VERSION 3.25)
2+
3+
project(rmq LANGUAGES C CXX)
4+
5+
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
6+
enable_testing()
7+
8+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
9+
10+
11+
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
12+
add_compile_options(-Wall -Wextra -Wpedantic)
13+
endif()
14+
15+
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "SunPro")
16+
# _RWSTD_ALLOCATOR tells the solaris <memory> header to define a std::allocator
17+
# which conforms better to the C++ standard, which is expected by Boost. Without
18+
# this, the library does not build due to missing std::allocator<..>::rebind
19+
20+
# "-D_XOPEN_SOURCE=500" "-D__EXTENSIONS__" tells the solaris sys/socket.h to conform
21+
# better to what boost asio expects (to have a msg_flags member)
22+
target_compile_definitions(rmq PRIVATE _RWSTD_ALLOCATOR "-D_XOPEN_SOURCE=500" "-D__EXTENSIONS__")
23+
24+
# Solaris doesn't pull these symbols in automatically
25+
# Libraries such as bte set this manually (we don't depend on bte)
26+
target_link_options(rmq PUBLIC -lnsl -lsocket)
27+
28+
set(PKG_LIBS "-lnsl -lsocket")
29+
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "XL")
30+
# The ibm/xl compiler does not appreciate this boost feature
31+
target_compile_definitions(rmq PRIVATE BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS)
32+
else()
33+
# In general the sunpro/xl warnings are not worth the bother
34+
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
35+
endif()
36+
37+
38+
add_subdirectory(src)
39+
add_subdirectory(examples)

CMakePresets.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"version": 6,
3+
"configurePresets": [
4+
{
5+
"name": "base",
6+
"hidden": true,
7+
"description": "Base configuration for a build of rmqcpp",
8+
"cacheVariables": {
9+
"CMAKE_EXPORT_COMPILE_COMMANDS": "1",
10+
"CMAKE_BUILD_TYPE": "Debug",
11+
"BDE_BUILD_TARGET_SAFE": true,
12+
"CMAKE_CXX_STANDARD": "17",
13+
"BDE_BUILD_TARGET_CPP17": "17",
14+
"CMAKE_INSTALL_LIBDIR": "lib64"
15+
}
16+
},
17+
{
18+
"name": "macos-arm64-vcpkg",
19+
"description": "VCPKG based configuration for building on arm-based MacOS",
20+
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
21+
"inherits": "base",
22+
"cacheVariables": {
23+
"VCPKG_INSTALL_OPTIONS": "--allow-unsupported"
24+
}
25+
},
26+
{
27+
"name": "macos-x64-vcpkg",
28+
"description": "VCPKG based configuration for building on x86_64-based MacOS",
29+
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
30+
"inherits": "base",
31+
"cacheVariables": {
32+
"VCPKG_INSTALL_OPTIONS": "--allow-unsupported"
33+
}
34+
},
35+
{
36+
"name": "linux-x64-vcpkg",
37+
"description": "VCPKG based configuration for building on x86_64-based Linux",
38+
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
39+
"inherits": "base"
40+
}
41+
]
42+
}

CONTRIBUTING.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Contributing to `rmqcpp`
2+
3+
We welcome your contributions to help us improve and extend this project!
4+
5+
Below you will find some basic steps required to be able to contribute to the project. If
6+
you have any questions about this process or any other aspect of contributing to a Bloomberg open
7+
source project, feel free to send an email to opensource@bloomberg.net and we'll get your questions
8+
answered as quickly as we can.
9+
10+
11+
## Contribution Licensing
12+
13+
Since this project is distributed under the terms of an [open source license](LICENSE), contributions that you make
14+
are licensed under the same terms. In order for us to be able to accept your contributions,
15+
we will need explicit confirmation from you that you are able and willing to provide them under
16+
these terms, and the mechanism we use to do this is called a Developer's Certificate of Origin
17+
[(DCO)](https://github.com/bloomberg/.github/blob/main/DCO.md). This is very similar to the process used by the Linux(R) kernel, Samba, and many
18+
other major open source projects.
19+
20+
To participate under these terms, all that you must do is include a line like the following as the
21+
last line of the commit message for each commit in your contribution:
22+
23+
Signed-Off-By: Random J. Developer <random@developer.example.org>
24+
25+
The simplest way to accomplish this is to add `-s` or `--signoff` to your `git commit` command.
26+
27+
You must use your real name (sorry, no pseudonyms, and no anonymous contributions).
28+
29+
## Steps
30+
31+
- Create an Issue, selecting 'Feature Request', and explain the proposed change.
32+
- Follow the guidelines in the issue template presented to you.
33+
- Submit the Issue.
34+
- Submit a Pull Request and link it to the Issue by including "#<issue number>" in the Pull Request summary.
35+
36+
## Help / Documentation
37+
38+
Please see the project's [README](README.md) to get started.
39+
40+
## Code of Conduct
41+
42+
This project has adopted a [Code of Conduct](https://github.com/bloomberg/.github/blob/main/CODE_OF_CONDUCT.md). If you have any concerns about the Code, or behavior
43+
which you have experienced in the project, please contact us at opensource@bloomberg.net.
44+
45+
## Security Vulnerability Reporting
46+
Please refer to the project [Security Policy](SECURITY.md).
47+
48+
## Licensing
49+
50+
See the [LICENSE](LICENSE) file in the top directory of the project repository for licensing information about the project.
51+

0 commit comments

Comments
 (0)