diff --git a/README.md b/README.md
index 5ca9f3cba..4b7273a52 100644
--- a/README.md
+++ b/README.md
@@ -24,9 +24,16 @@ system input/output channel combination for each deployment.
* Two API Layers: a high-level Publisher-Subscriber one focused on usability and a lower-level Writer-Reader one that provides finer access to the inner workings of the RTPS protocol.
*eProsima Fast RTPS* has been adopted by multiple organizations in many sectors including these important cases:
+
* Robotics: ROS (Robotic Operating System) as their default middleware for ROS2.
* EU R&D: FIWARE Incubated GE.
+## Supported platforms
+
+* Linux [![Linux Build Status](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Linux/badge/icon)](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Linux)
+* Windows [![Windows Build Status](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Windows/badge/icon)](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Windows)
+* Mac [![Mac Build Status](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Mac/badge/icon)](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Mac)
+
## Installation Guide
You can get either a binary distribution of *eprosima Fast RTPS* or compile the library yourself from source.
@@ -34,25 +41,28 @@ You can get either a binary distribution of *eprosima Fast RTPS* or compile the
The latest, up to date binary release of *eprosima Fast RTPS* can be obtained from the company website.
### Installation from Source
-To compile *eprosima Fast RTPS* from source, at least Cmake version 2.8.12 and Boost 1.61 are needed.
+To compile *eprosima Fast RTPS* from source, at least Cmake version 2.8.12 is needed.
Clone the project from GitHub:
$ git clone https://github.com/eProsima/Fast-RTPS
+ $ cd Fast-RTPS
+ $ mkdir build
+ $ cd build
If you are on Linux, execute:
- $ cmake ../ -DEPROSIMA_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install
+ $ cmake ../ -DTHIRDPARTY=ON
$ make
- $ make install
+ $ make install
If you are on Windows, choose your version of Visual Studio:
- > cmake ../ -G"Visual Studio 14 2015 Win64" -DEPROSIMA_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=installationpath
+ > cmake ../ -G "Visual Studio 14 2015 Win64" -DTHIRDPARTY=ON
> cmake --build . --target install
If you want to compile the performance tests, you will need to add the argument `-DPERFORMANCE_TESTS=ON` when calling Cmake.
-## Documentation
+## Documentation
You can access the documentation online, which is hosted on [Read the Docs](http://eprosima-fast-rtps.readthedocs.io).
@@ -60,10 +70,8 @@ You can access the documentation online, which is hosted on [Read the Docs](http
* [Installation manual](http://eprosima-fast-rtps.readthedocs.io/en/latest/requirements.html)
* [User manual](http://eprosima-fast-rtps.readthedocs.io/en/latest/introduction.html)
* [FastRTPSGen manual](http://eprosima-fast-rtps.readthedocs.io/en/latest/geninfo.html)
-* [Release notes](http://eprosima-fast-rtps.readthedocs.io/notes.html)
+* [Release notes](http://eprosima-fast-rtps.readthedocs.io/en/latest/notes.html)
## Getting Help
If you need support you can reach us by mail at `support@eProsima.com` or by phone at `+34 91 804 34 48`.
-
-
diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt
index a57ce19c4..6ff301d96 100644
--- a/code/CMakeLists.txt
+++ b/code/CMakeLists.txt
@@ -61,7 +61,7 @@ set(PRODUCT_CMAKELIST_CONTENT "
GIT_REPOSITORY https://github.com/eProsima/Fast-RTPS.git
GIT_TAG origin/${REPO_TAG}
GIT_SHALLOW TRUE
- CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DEPROSIMA_BUILD=ON -DSECURITY=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \"-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/install\"
+ CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DTHIRDPARTY=ON -DSECURITY=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \"-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/install\"
UPDATE_COMMAND \"\"
)
")
diff --git a/code/CodeTester.cpp b/code/CodeTester.cpp
index 0597e5ba0..d40ef5e2e 100644
--- a/code/CodeTester.cpp
+++ b/code/CodeTester.cpp
@@ -273,6 +273,18 @@ IPLocator::setIPv4(initial_peer, 192, 168, 0, 1);
participant_attr.rtps.builtin.initialPeersList.push_back(initial_peer);
//!--
+//CONF-NON-BLOCKING-WRITE
+//Create a descriptor for the new transport.
+auto non_blocking_UDP_transport = std::make_shared();
+non_blocking_UDP_transport->non_blocking_send = false;
+
+//Disable the built-in Transport Layer.
+participant_attr.rtps.useBuiltinTransports = false;
+
+//Link the Transport Layer to the Participant.
+participant_attr.rtps.userTransports.push_back(non_blocking_UDP_transport);
+//!--
+
//CONF-QOS-FLOWCONTROLLER
// Limit to 300kb per second.
ThroughputControllerDescriptor slowPublisherThroughputController{300000, 1000};
diff --git a/code/XMLTester.xml b/code/XMLTester.xml
index b45aff9b9..29243ac9f 100644
--- a/code/XMLTester.xml
+++ b/code/XMLTester.xml
@@ -389,6 +389,25 @@
<-->
+CONF-NON-BLOCKING-WRITE<-->
+
+
+ non_blocking_transport
+ UDPv4
+ false
+
+
+
+
+
+
+ non_blocking_transport
+
+ false
+
+
+<-->
+
CONF-QOS-FLOWCONTROLLER<-->
@@ -576,6 +595,7 @@
8192
8192
250
+ false
16384
100
diff --git a/docs/advanced.rst b/docs/advanced.rst
index ec664bf3b..f84dc0dc7 100644
--- a/docs/advanced.rst
+++ b/docs/advanced.rst
@@ -230,11 +230,13 @@ example.
TCP doesn't support multicast scenarios, so you must plan carefully your network architecture.
+.. _TLS:
-Using TLS (Transport Layer Security) over TCP
+TLS over TCP
---------------------------------------------
-Fast-RTPS allows configuring a TCP Transport to use TLS by setting up **TCP Server** and **TCP Client** properly.
+Fast-RTPS allows configuring a TCP Transport to use TLS (Transport Layer Security)
+by setting up **TCP Server** and **TCP Client** properly.
**TCP Server**
@@ -411,6 +413,26 @@ Tips
| :end-before: <--> |
+----------------------------------------------+
+**Non-blocking write on sockets**
+
+For UDP transport, it is possible to configure whether to use non-blocking write calls on the sockets.
+
++----------------------------------------------+
+| **C++** |
++----------------------------------------------+
+| .. literalinclude:: ../code/CodeTester.cpp |
+| :language: c++ |
+| :start-after: //CONF-NON-BLOCKING-WRITE |
+| :end-before: //!-- |
++----------------------------------------------+
+| **XML** |
++----------------------------------------------+
+| .. literalinclude:: ../code/XMLTester.xml |
+| :language: xml |
+| :start-after: CONF-NON-BLOCKING-WRITE|
+| :end-before: <--> |
++----------------------------------------------+
+
**XML Configuration**
The :ref:`xml-profiles` section contains the full information about how to setup *Fast RTPS* through an
diff --git a/docs/notes.rst b/docs/notes.rst
index e6680eb21..269d5cbd0 100644
--- a/docs/notes.rst
+++ b/docs/notes.rst
@@ -1,12 +1,51 @@
-Version 1.7.2
+Version 1.8.0
=============
+This release includes the following features:
+
+* Implementation of IDL 4.2
+* Implementation of :ref:`deadline-qos` QoS
+* Implementation of :ref:`lifespan-qos` QoS
+* Implementation of :ref:`disable-positive-acks-qos` QoS
+* Secure sockets on TCP transport (:ref:`TLS`)
+
+It also adds the following improvements and bug fixes:
+
+* Real-time improvements: non-blocking write calls for best-effort writers, addition of fixed size strings,
+ fixed size bitmaps, resource limited vectors, etc
+* Duration parameters now use nanoseconds
+* Configuration of participant mutation tries (see :ref:`participantconfiguration`)
+* Automatic calculation of the port when a value of 0 is received on the endpoint custom locators
+* Non-local addresses are now filtered from whitelists
+* Optimization of check for acked status for stateful writers
+* Linked libs are now not exposed when the target is a shared lib
+* Limitation on the domain ID has been added
+* UDP non-blocking send is now optional and configurable via XML
+* Fix for non-deterministic tests
+* Fix for ReaderProxy history being reloaded incorrectly in some cases
+* Fix for RTPS domain hostid being potentially not unique
+* Fix for participants with different lease expiration times failing to reconnect
+
+**Known issues**
+
+* When using TPC transport, sometimes callbacks are not invoked when removing a participant due to a bug in ASIO.
+
+**Note:** If you are upgrading from a version older than 1.7.0, it is **required** to regenerate generated source
+from IDL files using *fastrtpsgen*
+
+Previous versions
+-----------------
+
+Version 1.7.2
+^^^^^^^^^^^^^
+
This release fixes an important bug:
* Allocation limits on subscribers with a KEEP_LAST QoS was taken from resource limits configuration
and didn't take history depth into account.
It also has the following improvements:
+
* Vendor FindThreads.cmake from CMake 3.14 release candidate to help with sanitizers.
* Fixed format of gradle file.
@@ -15,9 +54,6 @@ Some other minor bugs and performance improvements.
**Note:** If you are upgrading from a version older than 1.7.0, it is **required** to regenerate generated source
from IDL files using *fastrtpsgen*
-Previous versions
------------------
-
Version 1.7.1
^^^^^^^^^^^^^
diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt
index 619983656..de1ca15a9 100644
--- a/docs/spelling_wordlist.txt
+++ b/docs/spelling_wordlist.txt
@@ -1,8 +1,10 @@
acceptor
acceptors
ack
+acked
acks
AES
+ASIO
auth
benchmarking
bitset
@@ -31,9 +33,11 @@ Github
GMAC
gradle
gtest
+hostid
IDL
interoperability
IPv
+libs
middleware
metatraffic
modularity
@@ -51,6 +55,7 @@ retransmission
rtps
scalability
sqlite
+stateful
subfolder
submessages
typeobject
@@ -60,6 +65,7 @@ unicast
unidimensional
XTypes
whitelist
+whitelists
WString
TCP
helloworld
diff --git a/docs/xmlprofiles.rst b/docs/xmlprofiles.rst
index 8f64e9066..c1e19766e 100644
--- a/docs/xmlprofiles.rst
+++ b/docs/xmlprofiles.rst
@@ -101,6 +101,9 @@ The XML label ```` can hold any number of ```` | *Time To Live*, **only** | ``uint8`` | 1 |
| | for UDP transports . | | |
+-------------------------------+-----------------------------------+---------------------------------+----------------+
+| ```` | Whether to set the non-blocking | ``bool`` | false |
+| | send mode on the socket | | |
++-------------------------------+-----------------------------------+---------------------------------+----------------+
| ```` | The maximum size in bytes | ``uint32`` | 65500 |
| | of the transport's message | | |
| | buffer. | | |