Skip to content

Commit eb3fdfa

Browse files
Doc cleanup, third_party includes changes.
1 parent a0e8a05 commit eb3fdfa

File tree

7 files changed

+39
-54
lines changed

7 files changed

+39
-54
lines changed

.travis.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,14 +143,11 @@ install:
143143
before_script:
144144
- cd ..
145145
- wget https://github.com/connectivecpp/utility-rack/archive/develop.tar.gz && mkdir utility-rack && tar -zxvf develop.tar.gz -C utility-rack --strip-components=1
146-
- wget https://github.com/martinmoene/expected-lite/archive/v0.3.0.tar.gz && mkdir expected-lite && tar -zxvf v0.3.0.tar.gz -C expected-lite --strip-components=1
147146
- wget https://github.com/chriskohlhoff/asio/archive/asio-1-14-0.tar.gz && mkdir asio && tar -zxvf asio-1-14-0.tar.gz -C asio --strip-components=1
148147
- wget https://github.com/catchorg/Catch2/archive/v2.10.2.tar.gz && mkdir Catch2 && tar -zxvf v2.10.2.tar.gz -C Catch2 --strip-components=1
149-
- wget https://github.com/martinmoene/ring-span-lite/archive/v0.3.0.tar.gz && mkdir ring-span-lite && tar -zxvf v0.3.0.tar.gz -C ring-span-lite --strip-components=1
150-
- wget https://github.com/JustasMasiulis/circular_buffer/archive/master.tar.gz && mkdir circular_buffer && tar -zxvf master.tar.gz -C circular_buffer --strip-components=1
151148
- mkdir build && cd build
152149
- cmake ../chops-net-ip/
153150

154151
script:
155152
- make all -j2
156-
- make test
153+
- make test

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ Branch | Status
66

77
# Chops Net IP - Connective Handcrafted Openwork Software for Asynchronous IP Networking
88

9-
Chops Net IP is a C++ library that makes asynchronous networking programming fun. Or at least if not fun, it makes network programming easier and safer, without significantly sacrificing performance. It is layered on top of the Asio asynchronous networking library, which can be difficult to use correctly. It handles Internet Protocol (IP) communications including TCP, UDP, and UDP multicast. It is written using modern C++ design idioms and the latest (2017) C++ standard.
9+
Chops Net IP is a C++ library that makes asynchronous networking programming fun. Or at least if not fun, it makes network programming easier and safer, without significantly sacrificing performance. Chops Net IP handles Internet Protocol (IP) communications including TCP, UDP, and UDP multicast. It is written using modern C++ design idioms and the latest (2017) C++ standard.
1010

1111
Chops Net IP is not like any other high-level, general purpose C++ socket library.
1212

13+
Chops Net IP is layered on top of the Asio asynchronous networking library, taking advantage of the portability and functionality that Asio provides. However, it simplifies network programming compared to coding against the Asio API, while providing easy scalability through the asynchronous facilities.
14+
1315
# License
1416

1517
[![Licence](https://img.shields.io/badge/license-boost-4480cc.svg)](http://www.boost.org/LICENSE_1_0.txt)
@@ -18,7 +20,7 @@ This project is distributed under the [Boost Software License](LICENSE.txt).
1820

1921
## Chops Net IP Release Status
2022

21-
Release 1.0 is under development as of October 2019, awaiting CMake config file completion, a comprehensive tutorial, and additional testing under multiple compilers and platforms.
23+
Release 1.0 is under development as of January 2020, awaiting CMake enhancements, a comprehensive tutorial, and additional testing under multiple compilers and platforms.
2224

2325
Release notes and upcoming development plans are [available here](doc/release.md).
2426

@@ -91,15 +93,18 @@ All the dependencies listed below have links that will take you to the library o
9193

9294
Production external dependencies:
9395

94-
- Version 1.13 (or later) of Chris Kohlhoff's [`asio`](https://github.com/chriskohlhoff/asio) library is required. Note that it is the stand-alone library, not the Boost Asio implementation.
95-
- Version 0.9 (or later) of the [`utility-rack`](https://github.com/connectivecpp/utility-rack) library, which is a repository in the same GitHub account as Chops Net IP (`shared_buffer.hpp`, `erase_where.hpp`, `overloaded.hpp`, and `cast_ptr_to` are required).
96-
- Version 0.3 (or later) of Martin Moene's [`expected-lite`](https://github.com/martinmoene/expected-lite) library.
96+
- Version 1.13 (or later) of Chris Kohlhoff's [`asio`](https://github.com/chriskohlhoff/asio) library is required. Note that it is the stand-alone Asio library, not the Boost Asio version.
97+
- The [`utility-rack`](https://github.com/connectivecpp/utility-rack) library, which is a repository in the same GitHub account as Chops Net IP.
9798

9899
Test external dependencies:
99100

100101
- Version 2.8.0 (or later) of Phil Nash's [`Catch2`](https://github.com/catchorg/Catch2) library is required for all test scenarios.
101102

102-
See [References](doc/references.md) for additional details on the above libraries.
103+
There are single file headers that have been copied into the `third_party` directory of the `utility-rack` repository from various GitHub repositories and do not require any external dependency management. These are:
104+
105+
- Martin Moene's [`expected-lite`](https://github.com/martinmoene/expected-lite) library.
106+
107+
See [References](doc/references.md) for additional details.
103108

104109
# Supported Compilers and Platforms
105110

@@ -108,6 +113,8 @@ Chops Net IP has been compiled and tests run on:
108113
- g++ 7.2, g++ 7.3, Linux (Ubuntu 17.10 - kernel 4.13, Ubuntu 18.04 - kernel 4.15)
109114
- (TBD, will include at least clang on linux and vc++ on Windows)
110115

116+
Follow the CI links for additional build environments.
117+
111118
# Installation
112119

113120
Chops Net IP is header-only, so installation consists of downloading or cloning and setting compiler include paths appropriately. No compile time configuration macros are defined.
@@ -118,9 +125,5 @@ See [References](doc/references.md) for details on dependencies and inspirations
118125

119126
# About
120127

121-
The primary author of Chops is Cliff Green, cliffg at connectivecpp dot com. The primary co-author is Thurman Gillespy, thurmang at connectivecpp dot com, and Roxanne Agerone roxannea at connectivecpp dot com.
122-
123-
Collaborators include Roxanne Agerone and Nathan Deutsch.
124-
125-
Additional information including author comments is [available here](doc/about.md).
128+
Team member information is [available here](https://connectivecpp.github.io/), and a few random author comments are [available here](doc/about.md).
126129

doc/about.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
# Author Notes and Contributor Information
22

3-
The primary author of Chops Net IP is Cliff Green, cliffg at connectivecpp dot com. Cliff is a software engineer and has worked for many years writing infrastructure libraries and applications for use in networked and distributed systems, typically where high reliability or uptime is required. The domains where he has worked include wireless networks (in particular cellular 9-1-1), location technology, and large scale embedded and simulation systems in the military aerospace industry. He has volunteered every year at CppCon and presented at BoostCon (before it was renamed to C++ Now).
4-
5-
Cliff lives in the Seattle area and you may know him from other interests including volleyball, hiking, railroading (both the model variety and the real life big ones), music, or even parent support activities (if you are having major difficulties with your teen check out the Changes Parent Support Network, http://cpsn.org).
6-
7-
The primary co-author of Chops Net IP is Thurman Gillespy, thurmang at connectivecpp dot com. Thurman's first career was in diagnostic radiology, with stints at the University of Florida (1985 - 1990), University of Washington (1990 - 2008) and private practice in Seattle (2008 - 2015). In the 1990's, Thurman wrote Dr Razz, the first application that could display and manipulate radiology images on a Macintosh computer. In 2015 Thurman left medicine and went back to school to transform a life long hobby of programming into a second career as a software developer.
8-
93
## A Cliff Note on the Chops Name
104

11-
>Yes, the name / acronym is a stretch. Quite a stretch. I like the word "chops", which is a jazz term for strong technique, so I decided on that for a name. For example, "Check out Tal Wilkenfeld, she's got mad chops."
5+
>(from Cliff, 2018) Yes, the name / acronym is a stretch. Quite a stretch. I like the word "chops", which is a jazz term for strong technique, so I decided on that for a name. For example, "Check out Tal Wilkenfeld, she's got mad chops."
126
137
>I considered many names, at least two or three dozen, but my favorite ideas were all taken (or too close to existing names and could create confusion). It seems that a lot of software developers have similar creative ideas when it comes to names.
148

doc/release.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Release 1.0
44

5-
Release 1.0 is under development, expected in late summer of 2019. Additional platform and compiler testing is under way, in-depth tutorials are under development, a few minor features are under development, and the marshalling library needs to be completed.
5+
Release 1.0 is under development, expected in the first part of 2020. Additional platform and compiler testing is under way, in-depth tutorials are under development, and the marshalling library in the `utility-rack` repository needs to be completed.
66

77
## Release 0.3
88

example/CMakeLists.txt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,17 @@ set ( header_dirs
3131
# Still learning find_package and related ways to bring in third party dependent include directories,
3232
# so don't judge, instead please help.
3333

34-
set ( utility_rack_include_dir "${CMAKE_SOURCE_DIR}/../utility-rack/include" )
34+
set ( utility_rack_include_dir
35+
"${CMAKE_SOURCE_DIR}/../utility-rack/include"
36+
"${CMAKE_SOURCE_DIR}/../utility-rack/third_party"
37+
)
3538
if ( NOT $ENV{UTILITY_RACK_INCLUDE_DIR} STREQUAL "" )
3639
set ( utility_rack_include_dir $ENV{UTILITY_RACK_INCLUDE_DIR}} )
3740
endif()
3841
set ( asio_include_dir "${CMAKE_SOURCE_DIR}/../asio/asio/include" )
3942
if ( NOT $ENV{ASIO_INCLUDE_DIR} STREQUAL "" )
4043
set ( asio_include_dir $ENV{ASIO_INCLUDE_DIR}} )
4144
endif()
42-
set ( expected_lite_include_dir "${CMAKE_SOURCE_DIR}/../expected-lite/include" )
43-
if ( NOT $ENV{EXPECTED_LITE_INCLUDE_DIR} STREQUAL "" )
44-
set ( expected_lite_include_dir $ENV{EXPECTED_LITE_INCLUDE_DIR}} )
45-
endif()
4645

4746
function ( add_target_dependencies target )
4847
# find_package ( utility-rack REQUIRED )
@@ -51,9 +50,6 @@ function ( add_target_dependencies target )
5150
# find_package ( asio REQUIRED )
5251
# target_include_directories ( ${target} PRIVATE ${asio_INCLUDE_DIRS} )
5352
target_include_directories ( ${target} PRIVATE ${asio_include_dir} )
54-
# find_package ( expected-lite REQUIRED )
55-
# target_include_directories ( ${target} PRIVATE ${expected-lite_INCLUDE_DIRS} )
56-
target_include_directories ( ${target} PRIVATE ${expected_lite_include_dir} )
5753
endfunction()
5854

5955
function ( add_target_info target )

example/README.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ The following dependencies are required to build the example apps (an additional
3131

3232
* [Asio](https://github.com/chriskohlhoff/asio)
3333
* [Utility Rack](https://github.com/connectivecpp/utility-rack)
34-
* [Expected Lite](https://github.com/martinmoene/expected-lite)
3534

3635
# Building and Running Individual Example Apps
3736

@@ -54,17 +53,17 @@ g++ on pc or linux:
5453
g++ -std=c++17 -Wall -Werror\
5554
-I ../include \
5655
-I <path to utility rack>/include/ \
56+
-I <path to utility rack>/third_party/ \
5757
-I <path to Asio>/include/ \
58-
-I <path to expected-lite>/include/ \
5958
simple_chat_demo.cpp -lpthread -o chat_server
6059
```
6160
Build the example with g++ or clang++ on OSX:
6261
```
6362
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
6463
-I ../include \
6564
-I <path to utility rack>/include/ \
65+
-I <path to utility rack>/third_party/ \
6666
-I <path to Asio>/include/ \
67-
-I <path to expected-lite>/include/ \
6867
simple_chat_demo.cpp -lpthread -o chat_server
6968
```
7069

@@ -100,17 +99,17 @@ g++ or clang++ on pc or linux:
10099
g++ -std=c++17 -Wall -Werror \
101100
-I ../include \
102101
-I <path>/utility-rack/include/ \
102+
-I <path>/utility-rack/third_party/ \
103103
-I <path>/asio/asio/include/ \
104-
-I <path>/expected-lite/include/ \
105104
echo_binary_text_client_demo.cpp -lpthread -o echo_client
106105
```
107106
build with clang++ or g++ on OSX:
108107
```
109108
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
110109
-I ../include \
111110
-I <path>/utility-rack/include/ \
111+
-I <path>/utility-rack/third_party/ \
112112
-I <path>/asio/asio/include/ \
113-
-I <path>/expected-lite/include/ \
114113
echo_binary_text_client_demo.cpp -lpthread -o echo_client
115114
```
116115
3. Execute the file:
@@ -149,17 +148,17 @@ with g++ on pc or linux:
149148
g++ -std=c++17 -Wall -Werror \
150149
-I ../include \
151150
-I <path>/utility-rack/include/ \
151+
-I <path>/utility-rack/third_party/ \
152152
-I <path>/asio/asio/include/ \
153-
-I <path>/expected-lite/include/ \
154153
echo_binary_text_server_demo.cpp -lpthread -o echo_server
155154
```
156155
Build the example with g++ or clang++ on OSX:
157156
```
158157
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
159158
-I ../include \
160159
-I <path>/utility-rack/include/ \
160+
-I <path>/utility-rack/third_party/ \
161161
-I <path>/asio/asio/include/ \
162-
-I <path>/expected-lite/include/ \
163162
echo_binary_text_server_demo.cpp -lpthread -o echo_server
164163
```
165164
3. Execute the file:
@@ -194,17 +193,17 @@ cd <path>/chops-net-ip/example
194193
g++ -std=c++17 -Wall -Werror \
195194
-I ../include \
196195
-I <path>/utility-rack/include/ \
196+
-I <path>/utility-rack/third_party/ \
197197
-I <path>/asio/asio/include/ \
198-
-I <path>/expected-lite/include/ \
199198
local_echo_demo.cpp -lpthread -o local_echo
200199
```
201200
Build the example with g++ or clang++ on OSX:
202201
```
203202
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
204203
-I ../include \
205204
-I <path>/utility-rack/include/ \
205+
-I <path>/utility-rack/third_party/ \
206206
-I <path>/asio/asio/include/ \
207-
-I <path>/expected-lite/include/ \
208207
local_echo_demo.cpp -lpthread -o local_echo
209208
```
210209
3. Execute the file
@@ -231,17 +230,17 @@ cd <path>/chops-net-ip/example
231230
g++ -std=c++17 -Wall -Werror \
232231
-I ../include \
233232
-I <path>/utility-rack/include/ \
233+
-I <path>/utility-rack/third_party/ \
234234
-I <path>/asio/asio/include/ \
235-
-I <path>/expected-lite/include/ \
236235
simple_chat_demo.cpp -lpthread -o chat
237236
```
238237
Build the example with g++ or clang++ on OSX:
239238
```
240239
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
241240
-I ../include \
242241
-I <path>/utility-rack/include/ \
242+
-I <path>/utility-rack/third_party/ \
243243
-I <path>/asio/asio/include/ \
244-
-I <path>/expected-lite/include/ \
245244
simple_chat_demo.cpp -lpthread -o chat
246245
```
247246
3. Execute the file
@@ -286,17 +285,17 @@ cd <path>/chops-net-ip/example
286285
g++ -std=c++17 -Wall -Werror \
287286
-I ../include \
288287
-I <path>/utility-rack/include/ \
288+
-I <path>/utility-rack/third_party/ \
289289
-I <path>/asio/asio/include/ \
290-
-I <path>/expected-lite/include/ \
291290
udp_broadcast_demo.cpp -lpthread -o udp_broad
292291
```
293292
Build the example with g++ or clang++ on OSX:
294293
```
295294
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
296295
-I ../include \
297296
-I <path>/utility-rack/include/ \
297+
-I <path>/utility-rack/third_party/ \
298298
-I <path>/asio/asio/include/ \
299-
-I <path>/expected-lite/include/ \
300299
udp_broadcast_demo.cpp -lpthread -o udp_broad
301300
```
302301
3. Execute the file
@@ -339,17 +338,17 @@ cd <path>/chops-net-ip/example
339338
g++ -std=c++17 -Wall -Werror \
340339
-I ../include \
341340
-I <path>/utility-rack/include/ \
341+
-I <path>/utility-rack/third_party/ \
342342
-I <path>/asio/asio/include/ \
343-
-I <path>/expected-lite/include/ \
344343
udp_receiver_demo.cpp -lpthread -o udp_receive
345344
```
346345
Build the example with g++ or clang++ on OSX:
347346
```
348347
g++ -std=c++17 -Wall -Werror -Wno-unused-lambda-capture \
349348
-I ../include \
350349
-I <path>/utility-rack/include/ \
350+
-I <path>/utility-rack/third_party/ \
351351
-I <path>/asio/asio/include/ \
352-
-I <path>/expected-lite/include/ \
353352
udp_receiver_demo.cpp -lpthread -o udp_receive
354353
```
355354
3. Execute the file

test/CMakeLists.txt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,17 @@ set ( catch2_include_dir "${CMAKE_SOURCE_DIR}/../Catch2/single_include" )
5656
if ( NOT $ENV{CATCH2_INCLUDE_DIR} STREQUAL "" )
5757
set ( catch2_include_dir $ENV{CATCH2_INCLUDE_DIR}} )
5858
endif()
59-
set ( utility_rack_include_dir "${CMAKE_SOURCE_DIR}/../utility-rack/include" )
59+
set ( utility_rack_include_dir
60+
"${CMAKE_SOURCE_DIR}/../utility-rack/include"
61+
"${CMAKE_SOURCE_DIR}/../utility-rack/third_party"
62+
)
6063
if ( NOT $ENV{UTILITY_RACK_INCLUDE_DIR} STREQUAL "" )
6164
set ( utility_rack_include_dir $ENV{UTILITY_RACK_INCLUDE_DIR}} )
6265
endif()
6366
set ( asio_include_dir "${CMAKE_SOURCE_DIR}/../asio/asio/include" )
6467
if ( NOT $ENV{ASIO_INCLUDE_DIR} STREQUAL "" )
6568
set ( asio_include_dir $ENV{ASIO_INCLUDE_DIR}} )
6669
endif()
67-
set ( expected_lite_include_dir "${CMAKE_SOURCE_DIR}/../expected-lite/include" )
68-
if ( NOT $ENV{EXPECTED_LITE_INCLUDE_DIR} STREQUAL "" )
69-
set ( expected_lite_include_dir $ENV{EXPECTED_LITE_INCLUDE_DIR}} )
70-
endif()
7170

7271
function ( add_target_dependencies target )
7372
# find_package ( utility-rack REQUIRED )
@@ -79,9 +78,6 @@ function ( add_target_dependencies target )
7978
# find_package ( asio REQUIRED )
8079
# target_include_directories ( ${target} PRIVATE ${asio_INCLUDE_DIRS} )
8180
target_include_directories ( ${target} PRIVATE ${asio_include_dir} )
82-
# find_package ( expected-lite REQUIRED )
83-
# target_include_directories ( ${target} PRIVATE ${expected-lite_INCLUDE_DIRS} )
84-
target_include_directories ( ${target} PRIVATE ${expected_lite_include_dir} )
8581
endfunction()
8682

8783
function ( add_target_info target )

0 commit comments

Comments
 (0)