You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2021/05/25 16:16:14 UTC
[qpid-proton] branch main updated: PROTON-2387: [C++] Remove
support for versions prior to C++11.
This is an automated email from the ASF dual-hosted git repository.
astitcher pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
The following commit(s) were added to refs/heads/main by this push:
new 746838f PROTON-2387: [C++] Remove support for versions prior to C++11.
746838f is described below
commit 746838f3508da5b426e42d2a67acaec880918368
Author: Andrew Stitcher <as...@apache.org>
AuthorDate: Thu May 20 22:15:55 2021 -0400
PROTON-2387: [C++] Remove support for versions prior to C++11.
---
CMakeLists.txt | 16 +--
cpp/CMakeLists.txt | 45 +--------
cpp/config_presets.hpp.in | 26 -----
cpp/examples/CMakeLists.txt | 61 ++++--------
cpp/examples/broker.cpp | 32 +++---
cpp/examples/client.cpp | 7 +-
cpp/examples/colour_send.cpp | 9 +-
cpp/examples/connection_options.cpp | 7 +-
cpp/examples/direct_recv.cpp | 7 +-
cpp/examples/direct_send.cpp | 11 +--
cpp/examples/fake_cpp11.hpp | 34 -------
cpp/examples/flow_control.cpp | 21 ++--
cpp/examples/helloworld.cpp | 9 +-
cpp/examples/queue_browser.cpp | 5 +-
cpp/examples/reconnect_client.cpp | 11 +--
cpp/examples/scheduled_send.cpp | 8 +-
cpp/examples/scheduled_send_03.cpp | 7 +-
cpp/examples/selected_recv.cpp | 5 +-
cpp/examples/server.cpp | 5 +-
cpp/examples/server_direct.cpp | 9 +-
cpp/examples/service_bus.cpp | 13 ++-
cpp/examples/simple_connect.cpp | 5 +-
cpp/examples/simple_recv.cpp | 5 +-
cpp/examples/simple_send.cpp | 11 +--
cpp/examples/ssl.cpp | 19 ++--
cpp/examples/ssl_client_cert.cpp | 15 ++-
cpp/include/proton/codec/decoder.hpp | 2 -
cpp/include/proton/codec/encoder.hpp | 2 -
cpp/include/proton/connection_options.hpp | 1 -
cpp/include/proton/container.hpp | 5 -
cpp/include/proton/endpoint.hpp | 5 -
cpp/include/proton/error.hpp | 1 -
cpp/include/proton/error_condition.hpp | 5 -
cpp/include/proton/fwd.hpp | 6 --
cpp/include/proton/internal/config.hpp | 137 --------------------------
cpp/include/proton/internal/object.hpp | 9 --
cpp/include/proton/internal/pn_unique_ptr.hpp | 9 --
cpp/include/proton/internal/type_traits.hpp | 5 -
cpp/include/proton/io/connection_driver.hpp | 1 -
cpp/include/proton/map.hpp | 2 -
cpp/include/proton/message.hpp | 2 -
cpp/include/proton/null.hpp | 4 +-
cpp/include/proton/sasl.hpp | 5 -
cpp/include/proton/scalar_base.hpp | 4 -
cpp/include/proton/ssl.hpp | 5 -
cpp/include/proton/types.hpp | 3 -
cpp/include/proton/types_fwd.hpp | 1 -
cpp/include/proton/value.hpp | 5 +-
cpp/include/proton/work_queue.hpp | 14 ---
cpp/src/codec_test.cpp | 3 -
cpp/src/connect_config_test.cpp | 40 ++++----
cpp/src/connection_driver_test.cpp | 14 +--
cpp/src/container.cpp | 4 -
cpp/src/container_test.cpp | 66 ++++++-------
cpp/src/credit_test.cpp | 32 +++---
cpp/src/decoder.cpp | 2 -
cpp/src/delivery_test.cpp | 10 +-
cpp/src/encoder.cpp | 2 -
cpp/src/error_condition.cpp | 2 -
cpp/src/map.cpp | 2 -
cpp/src/message.cpp | 3 -
cpp/src/proactor_container_impl.cpp | 22 +----
cpp/src/proactor_container_impl.hpp | 7 --
cpp/src/reconnect_test.cpp | 56 +++++------
cpp/src/scalar_base.cpp | 4 -
cpp/src/scalar_test.hpp | 3 -
cpp/src/test_bits.hpp | 3 +-
cpp/src/timestamp.cpp | 1 -
cpp/src/value.cpp | 2 -
cpp/src/value_test.cpp | 5 +-
cpp/src/work_queue.cpp | 4 -
71 files changed, 227 insertions(+), 696 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d9bee8..cb6b15b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -86,18 +86,9 @@ if (CMAKE_CXX_COMPILER)
if (DEFINED CMAKE_CXX_COMPILE_FEATURES)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS OFF)
- # Every supported version of Visual Studio (2015 onwards) supports enough C++11 that we
- # no longer need to run the individual feature tests
else ()
- include(CheckCXXCompilerFlag)
- # These flags work with GCC/Clang/SunPro compilers
- check_cxx_compiler_flag("-std=c++11" ACCEPTS_CXX11)
- check_cxx_compiler_flag("-std=c++0x" ACCEPTS_CXX0X)
- if (ACCEPTS_CXX11)
- set(CXX_STANDARD "-std=c++11")
- elseif(ACCEPTS_CXX0X)
- set(CXX_STANDARD "-std=c++0x")
- endif()
+ # This can only be a fairly old version of Linux in practice
+ set(CXX_STANDARD "-std=c++11")
endif ()
endif()
@@ -198,9 +189,6 @@ set (CC_WARNING_Clang "-Wno-unused-parameter -Wstrict-prototypes -Wvla -Wsign-co
set (CC_WARNING_MSVC "/wd4244 /wd4267 /wd4800 /wd4996")
set (CXX_WARNING_GNU "")
-# TODO aconway 2016-01-06: we should be able to clean up the code and turn on
-# some of these warnings.
-#set (CXX_WARNING_Clang "-Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-float-equal -Wno-padded -Wno-sign-conversion -Wno-switch-enum -Wno-weak-vtables -Wno-exit-time-destructors -Wno-global-constructors -Wno-shorten-64-to-32 -Wno-documentation -Wno-documentation-unknown-command -Wno-old-style-cast -Wno-missing-noreturn")
set (CXX_WARNING_Clang "")
set (CXX_WARNING_MSVC "")
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 93b409e..eba042e 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -25,12 +25,9 @@ find_package(Threads)
include(versions.cmake)
-set (BUILD_CPP_03 OFF CACHE BOOL "Compile the C++ binding as C++03 even when C++11 is available")
-
# Check for JSON-CPP support for connection configuration
find_package(JsonCpp)
-cmake_dependent_option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" ${JsonCpp_FOUND}
- "NOT BUILD_CPP_03" OFF)
+option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" ${JsonCpp_FOUND})
if (ENABLE_JSONCPP)
include_directories(${JsonCpp_INCLUDE_DIRS})
set(CONNECT_CONFIG_SRC src/connect_config.cpp)
@@ -39,47 +36,8 @@ else()
set(CONNECT_CONFIG_SRC src/connect_config_dummy.cpp)
endif()
-# This effectively checks for cmake version 3.1 or later
-if (DEFINED CMAKE_CXX_COMPILE_FEATURES)
- if (BUILD_CPP_03)
- set(CMAKE_CXX_STANDARD 98)
- else ()
- set(CPP_DEFINITIONS "HAS_CPP11")
- endif ()
-else ()
- if (BUILD_CPP_03)
- set(CXX_STANDARD "-std=c++98")
- else ()
- if (ACCEPTS_CXX11)
- set(CPP_DEFINITIONS "HAS_CPP11")
- else()
- include(cpp.cmake) # Compiler checks needed as not all C++11 may be supported
- endif()
- endif()
-endif ()
-
list(APPEND PLATFORM_LIBS Threads::Threads)
-# Construct #define lines to insert in config_presets.hpp
-foreach(d ${CPP_DEFINITIONS})
- set(presets "${presets}#define PN_CPP_LIB_${d} 1\n")
-endforeach()
-# For Visual Studio define the app compile time macros now, for everything else don't
-if(MSVC)
- set(presets "${presets}\n// Compiled for MSVC version ${CMAKE_CXX_COMPILER_VERSION} (${MSVC_VERSION})\n")
- foreach(d ${CPP_DEFINITIONS})
- set(presets "${presets}# define PN_CPP_${d} 1\n")
- endforeach()
-else()
- set(presets "${presets}\n#if qpid_proton_cpp_EXPORTS\n")
- foreach(d ${CPP_DEFINITIONS})
- set(presets "${presets}# define PN_CPP_${d} 1\n")
- endforeach()
- set(presets "${presets}#endif // qpid_proton_cpp_EXPORTS\n")
-endif()
-
-configure_file(config_presets.hpp.in config_presets.hpp @ONLY)
-
set(CXX_EXAMPLE_FLAGS "${CXX_WARNING_FLAGS} ${CXX_STANDARD}")
set(CXX_EXAMPLE_LINK_FLAGS "${SANITIZE_FLAGS}")
@@ -187,7 +145,6 @@ if (MSVC)
endif (MSVC)
install (DIRECTORY "include/proton" DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.hpp")
-install (FILES "${CMAKE_CURRENT_BINARY_DIR}/config_presets.hpp" DESTINATION "${INCLUDE_INSTALL_DIR}/proton/internal")
install (DIRECTORY "examples/"
DESTINATION "${PROTON_SHARE}/examples/cpp"
USE_SOURCE_PERMISSIONS
diff --git a/cpp/config_presets.hpp.in b/cpp/config_presets.hpp.in
deleted file mode 100644
index 676681b..0000000
--- a/cpp/config_presets.hpp.in
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef PROTON_INTERNAL_CONFIG_PRESETS_HPP
-#define PROTON_INTERNAL_CONFIG_PRESETS_HPP
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-@presets@
- #endif // PROTON_INTERNAL_CONFIG_PRESETS_HPP
\ No newline at end of file
diff --git a/cpp/examples/CMakeLists.txt b/cpp/examples/CMakeLists.txt
index 9b80b6a..7c123ce 100644
--- a/cpp/examples/CMakeLists.txt
+++ b/cpp/examples/CMakeLists.txt
@@ -42,35 +42,18 @@ if(NOT TARGET Threads::Threads)
endif()
endif()
-macro (has_cxx_features result)
-set(${result} OFF)
-if (DEFINED CMAKE_CXX_COMPILE_FEATURES)
- set(${result} ON)
- foreach(feature ${ARGN})
- list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_${feature} N)
- if (N EQUAL -1)
- set(${result} OFF)
- break()
- endif()
- endforeach()
-endif()
-endmacro()
-
-set (BUILD_CPP_03 OFF CACHE BOOL "Compile as C++03 even when C++11 is available")
# This effectively checks for cmake version 3.1 or later
if (DEFINED CMAKE_CXX_COMPILE_FEATURES)
- if (BUILD_CPP_03)
- set(STD 98)
- else ()
- set(STD 11)
- has_cxx_features(HAS_ENOUGH_CPP11 lambdas variadic_templates)
- message(STATUS "Compiling C++11 examples: ${HAS_ENOUGH_CPP11}")
- endif ()
- set(CMAKE_CXX_STANDARD ${STD})
+ set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS OFF)
+else ()
+ # This can only be a fairly old version of Linux in practice
+ set(CXX_STANDARD "-std=c++11")
+ add_definitions(${CXX_STANDARD})
endif()
-# Single-threaded examples that work on C++03
+
+# Single-threaded examples
foreach(example
broker
helloworld
@@ -92,27 +75,17 @@ foreach(example
flow_control
ssl
ssl_client_cert
- encode_decode)
+ encode_decode
+ scheduled_send
+ service_bus)
add_executable(${example} ${example}.cpp)
target_link_libraries(${example} Proton::cpp)
endforeach()
-if(HAS_ENOUGH_CPP11)
- # Examples that require C++11
- foreach(example
- scheduled_send
- service_bus)
- add_executable(${example} ${example}.cpp)
- target_link_libraries(${example} Proton::cpp)
- endforeach()
-
- # Examples that use threads directly
- if (Threads_FOUND)
- foreach(example
- multithreaded_client
- multithreaded_client_flow_control)
- add_executable(${example} ${example}.cpp)
- target_link_libraries(${example} Proton::cpp Threads::Threads)
- endforeach()
- endif()
-endif()
+# Examples that use threads directly
+foreach(example
+ multithreaded_client
+ multithreaded_client_flow_control)
+ add_executable(${example} ${example}.cpp)
+ target_link_libraries(${example} Proton::cpp Threads::Threads)
+endforeach()
diff --git a/cpp/examples/broker.cpp b/cpp/examples/broker.cpp
index b15ac39..30b6028 100644
--- a/cpp/examples/broker.cpp
+++ b/cpp/examples/broker.cpp
@@ -41,12 +41,8 @@
#include <iostream>
#include <map>
#include <string>
-
-#if PN_CPP_HAS_STD_THREAD
#include <thread>
-#endif
-#include "fake_cpp11.hpp"
// This is a simplified model for a message broker, that only allows for
// messages to go to a single receiver.
@@ -97,8 +93,8 @@ class Sender : public proton::messaging_handler {
int pending_credit_;
// Messaging handlers
- void on_sendable(proton::sender &sender) OVERRIDE;
- void on_sender_close(proton::sender &sender) OVERRIDE;
+ void on_sendable(proton::sender &sender) override;
+ void on_sender_close(proton::sender &sender) override;
public:
Sender(proton::sender s, senders& ss) :
@@ -232,7 +228,7 @@ class Receiver : public proton::messaging_handler {
std::deque<proton::message> messages_;
// A message is received.
- void on_message(proton::delivery &, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &, proton::message &m) override {
messages_.push_back(m);
if (queue_) {
@@ -322,12 +318,12 @@ public:
queue_manager_(qm)
{}
- void on_connection_open(proton::connection& c) OVERRIDE {
+ void on_connection_open(proton::connection& c) override {
c.open(); // Accept the connection
}
// A sender sends messages from a queue to a subscriber.
- void on_sender_open(proton::sender &sender) OVERRIDE {
+ void on_sender_open(proton::sender &sender) override {
std::string qn = sender.source().dynamic() ? "" : sender.source().address();
Sender* s = new Sender(sender, senders_);
senders_[sender] = s;
@@ -335,13 +331,13 @@ public:
}
// A receiver receives messages from a publisher to a queue.
- void on_receiver_open(proton::receiver &receiver) OVERRIDE {
+ void on_receiver_open(proton::receiver &receiver) override {
std::string qname = receiver.target().address();
Receiver* r = new Receiver(receiver);
queue_manager_.add(make_work(&QueueManager::findQueueReceiver, &queue_manager_, r, qname));
}
- void on_session_close(proton::session &session) OVERRIDE {
+ void on_session_close(proton::session &session) override {
// Unsubscribe all senders that belong to session.
for (proton::sender_iterator i = session.senders().begin(); i != session.senders().end(); ++i) {
senders::iterator j = senders_.find(*i);
@@ -354,12 +350,12 @@ public:
}
}
- void on_error(const proton::error_condition& e) OVERRIDE {
+ void on_error(const proton::error_condition& e) override {
std::cout << "protocol error: " << e.what() << std::endl;
}
// The container calls on_transport_close() last.
- void on_transport_close(proton::transport& t) OVERRIDE {
+ void on_transport_close(proton::transport& t) override {
// Unsubscribe all senders.
for (proton::sender_iterator i = t.connection().senders().begin(); i != t.connection().senders().end(); ++i) {
senders::iterator j = senders_.find(*i);
@@ -382,26 +378,22 @@ class broker {
}
void run() {
-#if PN_CPP_HAS_STD_THREAD
container_.run(std::thread::hardware_concurrency());
-#else
- container_.run();
-#endif
}
private:
struct listener : public proton::listen_handler {
listener(QueueManager& c) : queues_(c) {}
- proton::connection_options on_accept(proton::listener&) OVERRIDE{
+ proton::connection_options on_accept(proton::listener&) override{
return proton::connection_options().handler(*(new connection_handler(queues_)));
}
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::cout << "broker listening on " << l.port() << std::endl;
}
- void on_error(proton::listener&, const std::string& s) OVERRIDE {
+ void on_error(proton::listener&, const std::string& s) override {
std::cerr << "listen error: " << s << std::endl;
throw std::runtime_error(s);
}
diff --git a/cpp/examples/client.cpp b/cpp/examples/client.cpp
index a9d5dbe..1699c2d 100644
--- a/cpp/examples/client.cpp
+++ b/cpp/examples/client.cpp
@@ -32,7 +32,6 @@
#include <iostream>
#include <vector>
-#include "fake_cpp11.hpp"
using proton::receiver_options;
using proton::source_options;
@@ -47,7 +46,7 @@ class client : public proton::messaging_handler {
public:
client(const std::string &u, const std::vector<std::string>& r) : url(u), requests(r) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
sender = c.open_sender(url);
// Create a receiver requesting a dynamically created queue
// for the message source.
@@ -62,11 +61,11 @@ class client : public proton::messaging_handler {
sender.send(req);
}
- void on_receiver_open(proton::receiver &) OVERRIDE {
+ void on_receiver_open(proton::receiver &) override {
send_request();
}
- void on_message(proton::delivery &d, proton::message &response) OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &response) override {
if (requests.empty()) return; // Spurious extra message!
std::cout << requests.front() << " => " << response.body() << std::endl;
diff --git a/cpp/examples/colour_send.cpp b/cpp/examples/colour_send.cpp
index 107b600..76cdaca 100644
--- a/cpp/examples/colour_send.cpp
+++ b/cpp/examples/colour_send.cpp
@@ -34,7 +34,6 @@
#include <sstream>
#include <map>
-#include "fake_cpp11.hpp"
class colour_send : public proton::messaging_handler {
private:
@@ -50,14 +49,14 @@ class colour_send : public proton::messaging_handler {
colour_send(const std::string &s, const std::string &u, const std::string &p, int c) :
url(s), user(u), password(p), sent(0), confirmed(0), total(c) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::connection_options co;
if (!user.empty()) co.user(user);
if (!password.empty()) co.password(password);
sender = c.open_sender(url, co);
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
while (s.credit() && sent < total) {
proton::message msg;
@@ -73,7 +72,7 @@ class colour_send : public proton::messaging_handler {
}
}
- void on_tracker_accept(proton::tracker &t) OVERRIDE {
+ void on_tracker_accept(proton::tracker &t) override {
confirmed++;
if (confirmed == total) {
@@ -82,7 +81,7 @@ class colour_send : public proton::messaging_handler {
}
}
- void on_transport_close(proton::transport &) OVERRIDE {
+ void on_transport_close(proton::transport &) override {
sent = confirmed;
}
};
diff --git a/cpp/examples/connection_options.cpp b/cpp/examples/connection_options.cpp
index df26100..bf8a50f 100644
--- a/cpp/examples/connection_options.cpp
+++ b/cpp/examples/connection_options.cpp
@@ -29,10 +29,9 @@
using proton::connection_options;
-#include "fake_cpp11.hpp"
class handler_2 : public proton::messaging_handler {
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
std::cout << "connection events going to handler_2" << std::endl;
std::cout << "connection max_frame_size: " << c.max_frame_size() <<
", idle timeout: " << c.idle_timeout() << std::endl;
@@ -48,13 +47,13 @@ class main_handler : public proton::messaging_handler {
public:
main_handler(const std::string& u) : url(u) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Connection options for this connection. Merged with and overriding the container's
// client_connection_options() settings.
c.connect(url, connection_options().handler(conn_handler).max_frame_size(2468));
}
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
std::cout << "unexpected connection event on main handler" << std::endl;
c.close();
}
diff --git a/cpp/examples/direct_recv.cpp b/cpp/examples/direct_recv.cpp
index 93ba06f..d6671f9 100644
--- a/cpp/examples/direct_recv.cpp
+++ b/cpp/examples/direct_recv.cpp
@@ -35,12 +35,11 @@
#include <iostream>
#include <map>
-#include "fake_cpp11.hpp"
class direct_recv : public proton::messaging_handler {
private:
class listener_ready_handler : public proton::listen_handler {
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::cout << "listening on " << l.port() << std::endl;
}
};
@@ -54,11 +53,11 @@ class direct_recv : public proton::messaging_handler {
public:
direct_recv(const std::string &s, int c) : url(s), expected(c), received(0) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
listener = c.listen(url, listen_handler);
}
- void on_message(proton::delivery &d, proton::message &msg) OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &msg) override {
if (proton::coerce<int>(msg.id()) < received) {
return; // Ignore duplicate
}
diff --git a/cpp/examples/direct_send.cpp b/cpp/examples/direct_send.cpp
index 79be34c..3db2086 100644
--- a/cpp/examples/direct_send.cpp
+++ b/cpp/examples/direct_send.cpp
@@ -35,12 +35,11 @@
#include <iostream>
#include <map>
-#include "fake_cpp11.hpp"
class simple_send : public proton::messaging_handler {
private:
class listener_ready_handler : public proton::listen_handler {
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::cout << "listening on " << l.port() << std::endl;
}
};
@@ -55,11 +54,11 @@ class simple_send : public proton::messaging_handler {
public:
simple_send(const std::string &s, int c) : url(s), sent(0), confirmed(0), total(c) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
listener = c.listen(url, listen_handler);
}
- void on_sendable(proton::sender &sender) OVERRIDE {
+ void on_sendable(proton::sender &sender) override {
while (sender.credit() && sent < total) {
proton::message msg;
std::map<std::string, int> m;
@@ -73,7 +72,7 @@ class simple_send : public proton::messaging_handler {
}
}
- void on_tracker_accept(proton::tracker &t) OVERRIDE {
+ void on_tracker_accept(proton::tracker &t) override {
confirmed++;
if (confirmed == total) {
@@ -83,7 +82,7 @@ class simple_send : public proton::messaging_handler {
}
}
- void on_transport_close(proton::transport &) OVERRIDE {
+ void on_transport_close(proton::transport &) override {
sent = confirmed;
}
};
diff --git a/cpp/examples/fake_cpp11.hpp b/cpp/examples/fake_cpp11.hpp
deleted file mode 100644
index 03daa3b..0000000
--- a/cpp/examples/fake_cpp11.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef FAKE_CPP11_HPP
-#define FAKE_CPP11_HPP
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/// These definitions allow us to use some new C++11 features in previous compilers
-///
-/// It is strongly recommended not to copy this - just use C++11/C++14 instead!
-
-#if __cplusplus < 201103L
-#define OVERRIDE
-#else
-#define OVERRIDE override
-#endif
-
-
-#endif // FAKE_CPP11_HPP
diff --git a/cpp/examples/flow_control.cpp b/cpp/examples/flow_control.cpp
index c74070c..566c640 100644
--- a/cpp/examples/flow_control.cpp
+++ b/cpp/examples/flow_control.cpp
@@ -36,7 +36,6 @@
#include <iostream>
#include <sstream>
-#include "fake_cpp11.hpp"
namespace {
@@ -72,14 +71,14 @@ class flow_sender : public proton::messaging_handler {
}
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
if (verbose)
std::cout << "flow_sender in \"on_sendable\" with credit " << s.credit()
<< " and " << available << " available messages" << std::endl;
send_available_messages(s);
}
- void on_sender_drain_start(proton::sender &s) OVERRIDE {
+ void on_sender_drain_start(proton::sender &s) override {
if (verbose)
std::cout << "flow_sender in \"on_drain_start\" with credit " << s.credit()
<< " and " << available << " available messages" << std::endl;
@@ -174,11 +173,11 @@ class flow_receiver : public proton::messaging_handler {
stage++;
}
- void on_receiver_open(proton::receiver &r) OVERRIDE {
+ void on_receiver_open(proton::receiver &r) override {
run_stage(r, "on_receiver_open");
}
- void on_message(proton::delivery &d, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &m) override {
if (verbose)
std::cout << "flow_receiver in \"on_message\" with " << m.body() << std::endl;
proton::receiver r(d.receiver());
@@ -186,7 +185,7 @@ class flow_receiver : public proton::messaging_handler {
run_stage(r, "on_message");
}
- void on_receiver_drain_finish(proton::receiver &r) OVERRIDE {
+ void on_receiver_drain_finish(proton::receiver &r) override {
if (verbose)
std::cout << "flow_receiver in \"on_receiver_drain_finish\"" << std::endl;
run_stage(r, "on_receiver_drain_finish");
@@ -200,13 +199,13 @@ class flow_listener : public proton::listen_handler {
opts.handler(sh);
}
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::ostringstream url;
url << "//:" << l.port() << "/example"; // Connect to the actual listening port
l.container().connect(url.str());
}
- proton::connection_options on_accept(proton::listener&) OVERRIDE { return opts; }
+ proton::connection_options on_accept(proton::listener&) override { return opts; }
};
class flow_control : public proton::messaging_handler {
@@ -219,19 +218,19 @@ class flow_control : public proton::messaging_handler {
public:
flow_control() : receive_handler(send_handler), listen_handler(send_handler) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Listen on a dynamic port on the local host.
listener = c.listen("//:0", listen_handler);
}
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
if (c.active()) {
// outbound connection
c.open_receiver("flow_example", proton::receiver_options().handler(receive_handler).credit_window(0));
}
}
- void on_connection_close(proton::connection &) OVERRIDE {
+ void on_connection_close(proton::connection &) override {
listener.stop();
}
};
diff --git a/cpp/examples/helloworld.cpp b/cpp/examples/helloworld.cpp
index 5962826..31ac0e3 100644
--- a/cpp/examples/helloworld.cpp
+++ b/cpp/examples/helloworld.cpp
@@ -28,7 +28,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
class hello_world : public proton::messaging_handler {
std::string conn_url_;
@@ -38,22 +37,22 @@ class hello_world : public proton::messaging_handler {
hello_world(const std::string& u, const std::string& a) :
conn_url_(u), addr_(a) {}
- void on_container_start(proton::container& c) OVERRIDE {
+ void on_container_start(proton::container& c) override {
c.connect(conn_url_);
}
- void on_connection_open(proton::connection& c) OVERRIDE {
+ void on_connection_open(proton::connection& c) override {
c.open_receiver(addr_);
c.open_sender(addr_);
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
proton::message m("Hello World!");
s.send(m);
s.close();
}
- void on_message(proton::delivery &d, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &m) override {
std::cout << m.body() << std::endl;
d.connection().close();
}
diff --git a/cpp/examples/queue_browser.cpp b/cpp/examples/queue_browser.cpp
index b306e76..aaed4c6 100644
--- a/cpp/examples/queue_browser.cpp
+++ b/cpp/examples/queue_browser.cpp
@@ -29,7 +29,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
class queue_browser : public proton::messaging_handler {
std::string conn_url_;
@@ -39,7 +38,7 @@ class queue_browser : public proton::messaging_handler {
queue_browser(const std::string& u, const std::string& a) :
conn_url_(u), addr_(a) {}
- void on_container_start(proton::container& c) OVERRIDE {
+ void on_container_start(proton::container& c) override {
proton::receiver_options ropts;
proton::source_options sopts;
ropts.source(sopts.distribution_mode(proton::source::COPY));
@@ -48,7 +47,7 @@ class queue_browser : public proton::messaging_handler {
conn.open_receiver(addr_, ropts);
}
- void on_message(proton::delivery&, proton::message& m) OVERRIDE {
+ void on_message(proton::delivery&, proton::message& m) override {
std::cout << m.body() << std::endl;
}
};
diff --git a/cpp/examples/reconnect_client.cpp b/cpp/examples/reconnect_client.cpp
index ed93214..5ec0e01 100644
--- a/cpp/examples/reconnect_client.cpp
+++ b/cpp/examples/reconnect_client.cpp
@@ -37,7 +37,6 @@
#include <map>
#include <string>
-#include "fake_cpp11.hpp"
class reconnect_client : public proton::messaging_handler {
std::string url;
@@ -53,7 +52,7 @@ class reconnect_client : public proton::messaging_handler {
url(u), address(a), failovers(f), sent(0), expected(c), received(0) {}
private:
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::connection_options co;
proton::reconnect_options ro;
@@ -62,7 +61,7 @@ class reconnect_client : public proton::messaging_handler {
c.connect(url, co);
}
- void on_connection_open(proton::connection & c) OVERRIDE {
+ void on_connection_open(proton::connection & c) override {
c.open_receiver(address);
c.open_sender(address);
// reconnect we probably lost the last message sent
@@ -70,7 +69,7 @@ class reconnect_client : public proton::messaging_handler {
std::cout << "simple_recv listening on " << url << std::endl;
}
- void on_message(proton::delivery &d, proton::message &msg) OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &msg) override {
if (proton::coerce<int>(msg.id()) < received) {
return; // Ignore duplicate
}
@@ -106,11 +105,11 @@ class reconnect_client : public proton::messaging_handler {
}
}
- void on_sender_open(proton::sender & s) OVERRIDE {
+ void on_sender_open(proton::sender & s) override {
sender = s;
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
send(s);
}
};
diff --git a/cpp/examples/scheduled_send.cpp b/cpp/examples/scheduled_send.cpp
index 3244540..feda819 100644
--- a/cpp/examples/scheduled_send.cpp
+++ b/cpp/examples/scheduled_send.cpp
@@ -31,8 +31,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
-
// Send messages at a constant rate one per interval. cancel after a timeout.
class scheduled_sender : public proton::messaging_handler {
private:
@@ -55,11 +53,11 @@ class scheduled_sender : public proton::messaging_handler {
// The awkward looking double lambda is necessary because the scheduled lambdas run in the container context
// and must arrange lambdas for send and close to happen in the connection context.
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
c.open_sender(url);
}
- void on_sender_open(proton::sender &s) OVERRIDE {
+ void on_sender_open(proton::sender &s) override {
sender = s;
work_queue = &s.work_queue();
// Call this->cancel after timeout.
@@ -83,7 +81,7 @@ class scheduled_sender : public proton::messaging_handler {
ready = true; // Set the ready flag, send as soon as we get credit.
}
- void on_sendable(proton::sender &) OVERRIDE {
+ void on_sendable(proton::sender &) override {
if (ready) // We have been ticked since the last send.
send();
}
diff --git a/cpp/examples/scheduled_send_03.cpp b/cpp/examples/scheduled_send_03.cpp
index 9050429..edd6ef7 100644
--- a/cpp/examples/scheduled_send_03.cpp
+++ b/cpp/examples/scheduled_send_03.cpp
@@ -32,7 +32,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
// Send messages at a constant rate one per interval. cancel after a timeout.
// This example uses only C++03 features.
@@ -53,11 +52,11 @@ class scheduled_sender : public proton::messaging_handler {
canceled(false) // Canceled.
{}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
c.open_sender(url);
}
- void on_sender_open(proton::sender & s) OVERRIDE {
+ void on_sender_open(proton::sender & s) override {
work_queue = &s.work_queue();
work_queue->schedule(timeout, make_work(&scheduled_sender::cancel, this, s));
@@ -79,7 +78,7 @@ class scheduled_sender : public proton::messaging_handler {
}
}
- void on_sendable(proton::sender &sender) OVERRIDE {
+ void on_sendable(proton::sender &sender) override {
if (ready) // We have been ticked since the last send.
send(sender);
}
diff --git a/cpp/examples/selected_recv.cpp b/cpp/examples/selected_recv.cpp
index a7f9cea..0a39347 100644
--- a/cpp/examples/selected_recv.cpp
+++ b/cpp/examples/selected_recv.cpp
@@ -28,7 +28,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
namespace {
@@ -61,14 +60,14 @@ class selected_recv : public proton::messaging_handler {
selected_recv(const std::string& u, const std::string& a) :
conn_url_(u), addr_(a) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::source_options opts;
set_filter(opts, "colour = 'green'");
proton::connection conn = c.connect(conn_url_);
conn.open_receiver(addr_, proton::receiver_options().source(opts));
}
- void on_message(proton::delivery &, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &, proton::message &m) override {
std::cout << m.body() << std::endl;
}
};
diff --git a/cpp/examples/server.cpp b/cpp/examples/server.cpp
index 8e177df..08282f1 100644
--- a/cpp/examples/server.cpp
+++ b/cpp/examples/server.cpp
@@ -30,7 +30,6 @@
#include <string>
#include <cctype>
-#include "fake_cpp11.hpp"
class server : public proton::messaging_handler {
std::string conn_url_;
@@ -42,7 +41,7 @@ class server : public proton::messaging_handler {
server(const std::string& u, const std::string& a) :
conn_url_(u), addr_(a) {}
- void on_container_start(proton::container& c) OVERRIDE {
+ void on_container_start(proton::container& c) override {
conn_ = c.connect(conn_url_);
conn_.open_receiver(addr_);
@@ -60,7 +59,7 @@ class server : public proton::messaging_handler {
return uc;
}
- void on_message(proton::delivery&, proton::message& m) OVERRIDE {
+ void on_message(proton::delivery&, proton::message& m) override {
std::cout << "Received " << m.body() << std::endl;
std::string reply_to = m.reply_to();
diff --git a/cpp/examples/server_direct.cpp b/cpp/examples/server_direct.cpp
index d46fc29..bf7a28b 100644
--- a/cpp/examples/server_direct.cpp
+++ b/cpp/examples/server_direct.cpp
@@ -38,12 +38,11 @@
#include <sstream>
#include <cctype>
-#include "fake_cpp11.hpp"
class server : public proton::messaging_handler {
private:
class listener_ready_handler : public proton::listen_handler {
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::cout << "listening on " << l.port() << std::endl;
}
};
@@ -57,7 +56,7 @@ class server : public proton::messaging_handler {
public:
server(const std::string &u) : url(u), address_counter(0) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
c.listen(url, listen_handler);
}
@@ -78,7 +77,7 @@ class server : public proton::messaging_handler {
return addr.str();
}
- void on_sender_open(proton::sender &sender) OVERRIDE {
+ void on_sender_open(proton::sender &sender) override {
if (sender.source().dynamic()) {
std::string addr = generate_address();
sender.open(proton::sender_options().source(proton::source_options().address(addr)));
@@ -86,7 +85,7 @@ class server : public proton::messaging_handler {
}
}
- void on_message(proton::delivery &, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &, proton::message &m) override {
std::cout << "Received " << m.body() << std::endl;
std::string reply_to = m.reply_to();
diff --git a/cpp/examples/service_bus.cpp b/cpp/examples/service_bus.cpp
index f10bfa7..7c25095 100644
--- a/cpp/examples/service_bus.cpp
+++ b/cpp/examples/service_bus.cpp
@@ -99,7 +99,6 @@ Done. No more messages.
#include <iostream>
#include <sstream>
-#include "fake_cpp11.hpp"
using proton::source_options;
using proton::connection_options;
@@ -152,7 +151,7 @@ class session_receiver : public proton::messaging_handler {
container = &c;
}
- void on_connection_open(proton::connection &connection) OVERRIDE {
+ void on_connection_open(proton::connection &connection) override {
proton::source::filter_map sb_filter_map;
proton::symbol key("com.microsoft:session-filter");
sb_filter_map.put(key, session_identifier);
@@ -167,7 +166,7 @@ class session_receiver : public proton::messaging_handler {
connection.work_queue().schedule(read_timeout, [this]() { this->process_timeout(); });
}
- void on_receiver_open(proton::receiver &r) OVERRIDE {
+ void on_receiver_open(proton::receiver &r) override {
if (closed) return; // PROTON-1264
proton::value actual_session_id = r.source().filters().get("com.microsoft:session-filter");
std::cout << "receiving messages with session identifier \"" << actual_session_id
@@ -175,7 +174,7 @@ class session_receiver : public proton::messaging_handler {
last_read = proton::timestamp::now();
}
- void on_message(proton::delivery &, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &, proton::message &m) override {
message_count++;
std::cout << " received message: " << m.body() << std::endl;
last_read = proton::timestamp::now();
@@ -241,11 +240,11 @@ class session_sender : public proton::messaging_handler {
}
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
send_remaining_messages(s);
}
- void on_tracker_accept(proton::tracker &t) OVERRIDE {
+ void on_tracker_accept(proton::tracker &t) override {
accepts++;
if (accepts == total) {
// upload complete
@@ -274,7 +273,7 @@ class sequence : public proton::messaging_handler {
the_sequence = this;
}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
container = &c;
next_sequence();
}
diff --git a/cpp/examples/simple_connect.cpp b/cpp/examples/simple_connect.cpp
index a9d6d4c..3821683 100644
--- a/cpp/examples/simple_connect.cpp
+++ b/cpp/examples/simple_connect.cpp
@@ -29,7 +29,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
class simple_connect : public proton::messaging_handler {
private:
@@ -48,7 +47,7 @@ class simple_connect : public proton::messaging_handler {
url(a), user(u), password(p),
reconnect(r), sasl(s), mechs(ms), insecure(in) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::connection_options co;
if (!user.empty()) co.user(user);
if (!password.empty()) co.password(password);
@@ -67,7 +66,7 @@ class simple_connect : public proton::messaging_handler {
connection = c.connect(url, co);
}
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
if (!reconnect) c.close();
}
};
diff --git a/cpp/examples/simple_recv.cpp b/cpp/examples/simple_recv.cpp
index 09a39e5..0dadf75 100644
--- a/cpp/examples/simple_recv.cpp
+++ b/cpp/examples/simple_recv.cpp
@@ -34,7 +34,6 @@
#include <iostream>
#include <map>
-#include "fake_cpp11.hpp"
class simple_recv : public proton::messaging_handler {
private:
@@ -49,14 +48,14 @@ class simple_recv : public proton::messaging_handler {
simple_recv(const std::string &s, const std::string &u, const std::string &p, int c) :
url(s), user(u), password(p), expected(c), received(0) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::connection_options co;
if (!user.empty()) co.user(user);
if (!password.empty()) co.password(password);
receiver = c.open_receiver(url, co);
}
- void on_message(proton::delivery &d, proton::message &msg) OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &msg) override {
if (!msg.id().empty() && proton::coerce<int>(msg.id()) < received) {
return; // Ignore if no id or duplicate
}
diff --git a/cpp/examples/simple_send.cpp b/cpp/examples/simple_send.cpp
index 21cc67f..89382e9 100644
--- a/cpp/examples/simple_send.cpp
+++ b/cpp/examples/simple_send.cpp
@@ -34,7 +34,6 @@
#include <iostream>
#include <map>
-#include "fake_cpp11.hpp"
class simple_send : public proton::messaging_handler {
private:
@@ -51,7 +50,7 @@ class simple_send : public proton::messaging_handler {
simple_send(const std::string &s, const std::string &u, const std::string &p, bool r, int c) :
url(s), user(u), password(p), reconnect(r), sent(0), confirmed(0), total(c) {}
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::connection_options co;
if (!user.empty()) co.user(user);
if (!password.empty()) co.password(password);
@@ -59,13 +58,13 @@ class simple_send : public proton::messaging_handler {
sender = c.open_sender(url, co);
}
- void on_connection_open(proton::connection& c) OVERRIDE {
+ void on_connection_open(proton::connection& c) override {
if (c.reconnected()) {
sent = confirmed; // Re-send unconfirmed messages after a reconnect
}
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
while (s.credit() && sent < total) {
proton::message msg;
std::map<std::string, int> m;
@@ -79,7 +78,7 @@ class simple_send : public proton::messaging_handler {
}
}
- void on_tracker_accept(proton::tracker &t) OVERRIDE {
+ void on_tracker_accept(proton::tracker &t) override {
confirmed++;
if (confirmed == total) {
@@ -88,7 +87,7 @@ class simple_send : public proton::messaging_handler {
}
}
- void on_transport_close(proton::transport &) OVERRIDE {
+ void on_transport_close(proton::transport &) override {
sent = confirmed;
}
};
diff --git a/cpp/examples/ssl.cpp b/cpp/examples/ssl.cpp
index 0112605..7274c9b 100644
--- a/cpp/examples/ssl.cpp
+++ b/cpp/examples/ssl.cpp
@@ -35,7 +35,6 @@
#include <iostream>
-#include "fake_cpp11.hpp"
using proton::connection_options;
using proton::ssl_client_options;
@@ -60,7 +59,7 @@ namespace {
struct server_handler : public proton::messaging_handler {
proton::listener listener;
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
std::cout << "Inbound server connection connected via SSL. Protocol: " <<
c.transport().ssl().protocol() << std::endl;
listener.stop(); // Just expecting the one connection.
@@ -69,11 +68,11 @@ struct server_handler : public proton::messaging_handler {
messaging_handler::on_connection_open(c);
}
- void on_transport_error(proton::transport &t) OVERRIDE {
+ void on_transport_error(proton::transport &t) override {
listener.stop();
}
- void on_message(proton::delivery &, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &, proton::message &m) override {
std::cout << m.body() << std::endl;
}
};
@@ -82,7 +81,7 @@ struct server_handler : public proton::messaging_handler {
class hello_world_direct : public proton::messaging_handler {
private:
class listener_open_handler : public proton::listen_handler {
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::ostringstream url;
url << "//:" << l.port() << "/example"; // Connect to the actual port
l.container().open_sender(url.str());
@@ -93,7 +92,7 @@ class hello_world_direct : public proton::messaging_handler {
server_handler s_handler;
public:
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Configure listener. Details vary by platform.
ssl_certificate server_cert = platform_certificate("tserver", "tserverpw");
ssl_server_options ssl_srv(server_cert);
@@ -126,13 +125,13 @@ class hello_world_direct : public proton::messaging_handler {
s_handler.listener = c.listen("//:0", listen_handler); // Listen on port 0 for a dynamic port
}
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
std::string subject = c.transport().ssl().remote_subject();
std::cout << "Outgoing client connection connected via SSL. Server certificate identity " <<
find_CN(subject) << std::endl;
}
- void on_transport_error(proton::transport &t) OVERRIDE {
+ void on_transport_error(proton::transport &t) override {
std::string err = t.error().what();
if (verify == verify_fail && err.find("certificate") != std::string::npos) {
std::cout << "Expected failure of connection with wrong peer name: " << err
@@ -142,14 +141,14 @@ class hello_world_direct : public proton::messaging_handler {
}
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
proton::message m;
m.body("Hello World!");
s.send(m);
s.close();
}
- void on_tracker_accept(proton::tracker &t) OVERRIDE {
+ void on_tracker_accept(proton::tracker &t) override {
// All done.
t.connection().close();
}
diff --git a/cpp/examples/ssl_client_cert.cpp b/cpp/examples/ssl_client_cert.cpp
index 8c92abf..6b1eaa6 100644
--- a/cpp/examples/ssl_client_cert.cpp
+++ b/cpp/examples/ssl_client_cert.cpp
@@ -34,7 +34,6 @@
#include <iostream>
#include <sstream>
-#include "fake_cpp11.hpp"
using proton::connection_options;
using proton::ssl_client_options;
@@ -53,7 +52,7 @@ static std::string find_CN(const std::string &);
struct server_handler : public proton::messaging_handler {
proton::listener listener;
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
std::cout << "Inbound server connection connected via SSL. Protocol: " <<
c.transport().ssl().protocol() << std::endl;
if (c.transport().sasl().outcome() == sasl::OK) {
@@ -70,7 +69,7 @@ struct server_handler : public proton::messaging_handler {
messaging_handler::on_connection_open(c);
}
- void on_message(proton::delivery &, proton::message &m) OVERRIDE {
+ void on_message(proton::delivery &, proton::message &m) override {
std::cout << m.body() << std::endl;
}
};
@@ -79,7 +78,7 @@ struct server_handler : public proton::messaging_handler {
class hello_world_direct : public proton::messaging_handler {
private:
class listener_open_handler : public proton::listen_handler {
- void on_open(proton::listener& l) OVERRIDE {
+ void on_open(proton::listener& l) override {
std::ostringstream url;
url << "//:" << l.port() << "/example"; // Connect to the actual port
l.container().open_sender(url.str());
@@ -91,7 +90,7 @@ class hello_world_direct : public proton::messaging_handler {
public:
- void on_container_start(proton::container &c) OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Configure listener. Details vary by platform.
ssl_certificate server_cert = platform_certificate("tserver", "tserverpw");
std::string client_CA = platform_CA("tclient");
@@ -115,20 +114,20 @@ class hello_world_direct : public proton::messaging_handler {
s_handler.listener = c.listen("//:0", listen_handler);
}
- void on_connection_open(proton::connection &c) OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
std::string subject = c.transport().ssl().remote_subject();
std::cout << "Outgoing client connection connected via SSL. Server certificate identity " <<
find_CN(subject) << std::endl;
}
- void on_sendable(proton::sender &s) OVERRIDE {
+ void on_sendable(proton::sender &s) override {
proton::message m;
m.body("Hello World!");
s.send(m);
s.close();
}
- void on_tracker_accept(proton::tracker &t) OVERRIDE {
+ void on_tracker_accept(proton::tracker &t) override {
// All done.
t.connection().close();
}
diff --git a/cpp/include/proton/codec/decoder.hpp b/cpp/include/proton/codec/decoder.hpp
index 243d105..82c1baa 100644
--- a/cpp/include/proton/codec/decoder.hpp
+++ b/cpp/include/proton/codec/decoder.hpp
@@ -113,9 +113,7 @@ class decoder : public internal::data {
PN_CPP_EXTERN decoder& operator>>(scalar&);
PN_CPP_EXTERN decoder& operator>>(internal::value_base&);
PN_CPP_EXTERN decoder& operator>>(null&);
-#if PN_CPP_HAS_NULLPTR
PN_CPP_EXTERN decoder& operator>>(decltype(nullptr)&);
-#endif
///@}
/// Start decoding a container type, such as an ARRAY, LIST or
diff --git a/cpp/include/proton/codec/encoder.hpp b/cpp/include/proton/codec/encoder.hpp
index 961695e..1c67fd7 100644
--- a/cpp/include/proton/codec/encoder.hpp
+++ b/cpp/include/proton/codec/encoder.hpp
@@ -97,9 +97,7 @@ class encoder : public internal::data {
PN_CPP_EXTERN encoder& operator<<(const binary&);
PN_CPP_EXTERN encoder& operator<<(const scalar_base&);
PN_CPP_EXTERN encoder& operator<<(const null&);
-#if PN_CPP_HAS_NULLPTR
PN_CPP_EXTERN encoder& operator<<(decltype(nullptr));
-#endif
/// @}
/// Insert a proton::value.
diff --git a/cpp/include/proton/connection_options.hpp b/cpp/include/proton/connection_options.hpp
index 02d0ff6..a4d35d5 100644
--- a/cpp/include/proton/connection_options.hpp
+++ b/cpp/include/proton/connection_options.hpp
@@ -24,7 +24,6 @@
#include "./duration.hpp"
#include "./fwd.hpp"
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
#include "./symbol.hpp"
diff --git a/cpp/include/proton/container.hpp b/cpp/include/proton/container.hpp
index aa735f4..eafcde7 100644
--- a/cpp/include/proton/container.hpp
+++ b/cpp/include/proton/container.hpp
@@ -26,7 +26,6 @@
#include "./returned.hpp"
#include "./types_fwd.hpp"
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
@@ -161,7 +160,6 @@ class PN_CPP_CLASS_EXTERN container {
/// `run(int count)`.
PN_CPP_EXTERN void run();
-#if PN_CPP_SUPPORTS_THREADS
/// Run the container with a pool of `count` threads, including the current thread.
///
/// **C++ versions** - Available with C++11 or later.
@@ -169,7 +167,6 @@ class PN_CPP_CLASS_EXTERN container {
/// The call returns when the container stops. See `auto_stop()`
/// and `stop()`.
PN_CPP_EXTERN void run(int count);
-#endif
/// Enable or disable automatic container stop. It is enabled by
/// default.
@@ -314,9 +311,7 @@ class PN_CPP_CLASS_EXTERN container {
private:
/// Declare both v03 and v11 if compiling with c++11 as the library contains both.
/// A C++11 user should never call the v03 overload so it is private in this case
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
PN_CPP_EXTERN void schedule(duration dur, internal::v03::work fn);
-#endif
class impl;
internal::pn_unique_ptr<impl> impl_;
diff --git a/cpp/include/proton/endpoint.hpp b/cpp/include/proton/endpoint.hpp
index 50505ce..57df8de 100644
--- a/cpp/include/proton/endpoint.hpp
+++ b/cpp/include/proton/endpoint.hpp
@@ -24,7 +24,6 @@
#include "./fwd.hpp"
#include "./error_condition.hpp"
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
/// @file
@@ -60,9 +59,6 @@ PN_CPP_CLASS_EXTERN endpoint {
/// Close the endpoint with an error condition.
virtual void close(const error_condition&) = 0;
-#if PN_CPP_HAS_DEFAULTED_FUNCTIONS && PN_CPP_HAS_DEFAULTED_MOVE_INITIALIZERS
- // Make everything explicit for C++11 compilers
-
/// @cond INTERNAL
endpoint() = default;
endpoint& operator=(const endpoint&) = default;
@@ -70,7 +66,6 @@ PN_CPP_CLASS_EXTERN endpoint {
endpoint& operator=(endpoint&&) = default;
endpoint(endpoint&&) = default;
/// @endcond
-#endif
};
namespace internal {
diff --git a/cpp/include/proton/error.hpp b/cpp/include/proton/error.hpp
index 5ac409f..5471658 100644
--- a/cpp/include/proton/error.hpp
+++ b/cpp/include/proton/error.hpp
@@ -22,7 +22,6 @@
*
*/
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
#include <stdexcept>
diff --git a/cpp/include/proton/error_condition.hpp b/cpp/include/proton/error_condition.hpp
index 1ca7be8..9ab58e6 100644
--- a/cpp/include/proton/error_condition.hpp
+++ b/cpp/include/proton/error_condition.hpp
@@ -23,7 +23,6 @@
*/
#include "./internal/export.hpp"
-#include "./internal/config.hpp"
#include "./value.hpp"
#include <string>
@@ -57,21 +56,17 @@ class error_condition {
/// description, and informational properties.
PN_CPP_EXTERN error_condition(std::string name, std::string description, proton::value properties);
-#if PN_CPP_HAS_DEFAULTED_FUNCTIONS && PN_CPP_HAS_DEFAULTED_MOVE_INITIALIZERS
/// @cond INTERNAL
error_condition(const error_condition&) = default;
error_condition& operator=(const error_condition&) = default;
error_condition(error_condition&&) = default;
error_condition& operator=(error_condition&&) = default;
/// @endcond
-#endif
-#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
/// If you are using a C++11 compiler, you may use an
/// error_condition in boolean contexts. The expression will be
/// true if the error_condition is set.
PN_CPP_EXTERN explicit operator bool() const;
-#endif
/// No condition set.
PN_CPP_EXTERN bool operator!() const;
diff --git a/cpp/include/proton/fwd.hpp b/cpp/include/proton/fwd.hpp
index 5ae1d8a..801d269 100644
--- a/cpp/include/proton/fwd.hpp
+++ b/cpp/include/proton/fwd.hpp
@@ -25,7 +25,6 @@
/// @file
/// Forward declarations.
-#include "./internal/config.hpp"
namespace proton {
@@ -62,13 +61,8 @@ class void_function0;
class work_queue;
namespace internal { namespace v03 { class work; } }
-
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
namespace internal { namespace v11 { class work; } }
using internal::v11::work;
-#else
-using internal::v03::work;
-#endif
namespace io {
diff --git a/cpp/include/proton/internal/config.hpp b/cpp/include/proton/internal/config.hpp
deleted file mode 100644
index 321aebf..0000000
--- a/cpp/include/proton/internal/config.hpp
+++ /dev/null
@@ -1,137 +0,0 @@
-#ifndef PROTON_INTERNAL_CONFIG_HPP
-#define PROTON_INTERNAL_CONFIG_HPP
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/// @cond INTERNAL
-
-/// @file
-///
-/// Configuration macros. They can be set via -D compiler options or
-/// in code.
-///
-/// On a C++11 compliant compiler, all C++11 features are enabled by
-/// default. Otherwise they can be enabled or disabled separately
-/// with -D on the compile line.
-
-// Read library compilation presets -
-// This sets the options the library itself was compiled with
-// and sets up the compilation options is we are compiling the library itself
-#include "config_presets.hpp"
-
-/// Whether the library supports threads depends on the configuration of the library compilation only
-#define PN_CPP_SUPPORTS_THREADS PN_CPP_LIB_HAS_CPP11 || (PN_CPP_LIB_HAS_STD_THREAD && PN_CPP_LIB_HAS_STD_MUTEX)
-/// @endcond
-
-/// The Apple clang compiler doesn't really support PN_CPP_HAS_THREAD_LOCAL
-/// before Xcode 8 even though it claims to be C++11 compatible
-#if defined(__clang__) && defined(__apple_build_version__) && ((__clang_major__ * 100) + __clang_minor__) >= 301
-#if __has_feature(cxx_thread_local)
-#define PN_CPP_HAS_THREAD_LOCAL 1
-#else
-#define PN_CPP_HAS_THREAD_LOCAL 0
-#endif
-#endif
-
-#ifndef PN_CPP_HAS_CPP11
-#if defined(__cplusplus) && __cplusplus >= 201103
-#define PN_CPP_HAS_CPP11 1
-#else
-#define PN_CPP_HAS_CPP11 0
-#endif
-#endif
-
-#ifndef PN_CPP_HAS_LONG_LONG_TYPE
-#define PN_CPP_HAS_LONG_LONG_TYPE PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_NULLPTR
-#define PN_CPP_HAS_NULLPTR PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_RVALUE_REFERENCES
-#define PN_CPP_HAS_RVALUE_REFERENCES PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_OVERRIDE
-#define PN_CPP_HAS_OVERRIDE PN_CPP_HAS_CPP11
-#endif
-
-#if PN_CPP_HAS_OVERRIDE
-#define PN_CPP_OVERRIDE override
-#else
-#define PN_CPP_OVERRIDE
-#endif
-
-#ifndef PN_CPP_HAS_EXPLICIT_CONVERSIONS
-#define PN_CPP_HAS_EXPLICIT_CONVERSIONS PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_DEFAULTED_FUNCTIONS
-#define PN_CPP_HAS_DEFAULTED_FUNCTIONS PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_DEFAULTED_MOVE_INITIALIZERS
-#define PN_CPP_HAS_DEFAULTED_MOVE_INITIALIZERS PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_DELETED_FUNCTIONS
-#define PN_CPP_HAS_DELETED_FUNCTIONS PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_THREAD_LOCAL
-#define PN_CPP_HAS_THREAD_LOCAL PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_VARIADIC_TEMPLATES
-#define PN_CPP_HAS_VARIADIC_TEMPLATES PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_LAMBDAS
-#define PN_CPP_HAS_LAMBDAS PN_CPP_HAS_CPP11
-#endif
-
-// Library features
-
-#ifndef PN_CPP_HAS_HEADER_RANDOM
-#define PN_CPP_HAS_HEADER_RANDOM PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_STD_UNIQUE_PTR
-#define PN_CPP_HAS_STD_UNIQUE_PTR PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_STD_MUTEX
-#define PN_CPP_HAS_STD_MUTEX PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_STD_ATOMIC
-#define PN_CPP_HAS_STD_ATOMIC PN_CPP_HAS_CPP11
-#endif
-
-#ifndef PN_CPP_HAS_STD_THREAD
-#define PN_CPP_HAS_STD_THREAD PN_CPP_HAS_CPP11
-#endif
-
-#endif // PROTON_INTERNAL_CONFIG_HPP
-
-/// @endcond
diff --git a/cpp/include/proton/internal/object.hpp b/cpp/include/proton/internal/object.hpp
index 7f116c9..98b6588 100644
--- a/cpp/include/proton/internal/object.hpp
+++ b/cpp/include/proton/internal/object.hpp
@@ -22,7 +22,6 @@
*
*/
-#include "./config.hpp"
#include "./export.hpp"
#include "./comparable.hpp"
@@ -47,10 +46,7 @@ template <class T> class pn_ptr : private pn_ptr_base, private comparable<pn_ptr
pn_ptr() : ptr_(0) {}
pn_ptr(T* p) : ptr_(p) { incref(ptr_); }
pn_ptr(const pn_ptr& o) : ptr_(o.ptr_) { incref(ptr_); }
-
-#if PN_CPP_HAS_RVALUE_REFERENCES
pn_ptr(pn_ptr&& o) : ptr_(0) { std::swap(ptr_, o.ptr_); }
-#endif
~pn_ptr() { decref(ptr_); }
@@ -60,10 +56,7 @@ template <class T> class pn_ptr : private pn_ptr_base, private comparable<pn_ptr
T* release() { T *p = ptr_; ptr_ = 0; return p; }
bool operator!() const { return !ptr_; }
-
-#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
explicit operator bool() const { return !!ptr_; }
-#endif
std::string inspect() const { return pn_ptr_base::inspect(ptr_); }
@@ -86,9 +79,7 @@ template <class T> pn_ptr<T> take_ownership(T* p) { return pn_ptr<T>::take_owner
template <class T> class object : private comparable<object<T> > {
public:
bool operator!() const { return !object_; }
-#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
explicit operator bool() const { return object_.get(); }
-#endif
protected:
typedef T pn_type;
diff --git a/cpp/include/proton/internal/pn_unique_ptr.hpp b/cpp/include/proton/internal/pn_unique_ptr.hpp
index e47fbaa..51679d1 100644
--- a/cpp/include/proton/internal/pn_unique_ptr.hpp
+++ b/cpp/include/proton/internal/pn_unique_ptr.hpp
@@ -22,7 +22,6 @@
*
*/
-#include "./config.hpp"
#include <memory>
@@ -43,26 +42,18 @@ template <class T> void swap(pn_unique_ptr<T>& x, pn_unique_ptr<T>& y);
template <class T> class pn_unique_ptr {
public:
pn_unique_ptr(T* p=0) : ptr_(p) {}
-#if PN_CPP_HAS_RVALUE_REFERENCES
pn_unique_ptr(pn_unique_ptr&& x) : ptr_(0) { std::swap(ptr_, x.ptr_); }
-#else
- pn_unique_ptr(const pn_unique_ptr& x) : ptr_() { std::swap(ptr_, const_cast<pn_unique_ptr&>(x).ptr_); }
-#endif
~pn_unique_ptr() { delete(ptr_); }
T& operator*() const { return *ptr_; }
T* operator->() const { return ptr_; }
T* get() const { return ptr_; }
void reset(T* p = 0) { pn_unique_ptr<T> tmp(p); std::swap(ptr_, tmp.ptr_); }
T* release() { T *p = ptr_; ptr_ = 0; return p; }
-#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
explicit operator bool() const { return get(); }
-#endif
bool operator !() const { return !get(); }
void swap(pn_unique_ptr& x) { std::swap(ptr_, x.ptr_); }
-#if PN_CPP_HAS_STD_UNIQUE_PTR
operator std::unique_ptr<T>() { T *p = ptr_; ptr_ = 0; return std::unique_ptr<T>(p); }
-#endif
private:
T* ptr_;
diff --git a/cpp/include/proton/internal/type_traits.hpp b/cpp/include/proton/internal/type_traits.hpp
index c8b6bd0..54d352c 100644
--- a/cpp/include/proton/internal/type_traits.hpp
+++ b/cpp/include/proton/internal/type_traits.hpp
@@ -27,7 +27,6 @@
// Also provides workarounds for missing type_traits classes on older
// C++ compilers.
-#include "./config.hpp"
#include "../types_fwd.hpp"
#include "../type_id.hpp"
@@ -72,12 +71,10 @@ template <> struct is_signed<signed short> : public true_type {};
template <> struct is_signed<signed int> : public true_type {};
template <> struct is_signed<signed long> : public true_type {};
-#if PN_CPP_HAS_LONG_LONG_TYPE
template <> struct is_integral<unsigned long long> : public true_type {};
template <> struct is_integral<signed long long> : public true_type {};
template <> struct is_signed<unsigned long long> : public false_type {};
template <> struct is_signed<signed long long> : public true_type {};
-#endif
template <class T, class U> struct is_same { static const bool value=false; };
template <class T> struct is_same<T,T> { static const bool value=true; };
@@ -94,9 +91,7 @@ template <type_id ID, class T> struct type_id_constant {
/// @{
template <class T> struct type_id_of;
template<> struct type_id_of<null> : public type_id_constant<NULL_TYPE, null> {};
-#if PN_CPP_HAS_NULLPTR
template<> struct type_id_of<decltype(nullptr)> : public type_id_constant<NULL_TYPE, null> {};
-#endif
template<> struct type_id_of<bool> : public type_id_constant<BOOLEAN, bool> {};
template<> struct type_id_of<uint8_t> : public type_id_constant<UBYTE, uint8_t> {};
template<> struct type_id_of<int8_t> : public type_id_constant<BYTE, int8_t> {};
diff --git a/cpp/include/proton/io/connection_driver.hpp b/cpp/include/proton/io/connection_driver.hpp
index 390a5c4..d273191 100644
--- a/cpp/include/proton/io/connection_driver.hpp
+++ b/cpp/include/proton/io/connection_driver.hpp
@@ -25,7 +25,6 @@
#include "../connection_options.hpp"
#include "../error_condition.hpp"
#include "../fwd.hpp"
-#include "../internal/config.hpp"
#include "../types_fwd.hpp"
#include <proton/connection_driver.h>
diff --git a/cpp/include/proton/map.hpp b/cpp/include/proton/map.hpp
index f9d524c..ff9eed0 100644
--- a/cpp/include/proton/map.hpp
+++ b/cpp/include/proton/map.hpp
@@ -79,13 +79,11 @@ class PN_CPP_CLASS_EXTERN map {
/// Copy a map.
PN_CPP_EXTERN map& operator=(const map&);
-#if PN_CPP_HAS_RVALUE_REFERENCES
/// Move a map.
PN_CPP_EXTERN map(map&&);
/// Move a map.
PN_CPP_EXTERN map& operator=(map&&);
-#endif
PN_CPP_EXTERN ~map();
/// Type-safe assign from a compatible map, for instance
diff --git a/cpp/include/proton/message.hpp b/cpp/include/proton/message.hpp
index 347eadb..fc87050 100644
--- a/cpp/include/proton/message.hpp
+++ b/cpp/include/proton/message.hpp
@@ -64,13 +64,11 @@ class message {
/// Copy a message.
PN_CPP_EXTERN message& operator=(const message&);
-#if PN_CPP_HAS_RVALUE_REFERENCES
/// Move a message.
PN_CPP_EXTERN message(message&&);
/// Move a message.
PN_CPP_EXTERN message& operator=(message&&);
-#endif
/// Create a message with its body set from any value that can be
/// converted to a proton::value.
diff --git a/cpp/include/proton/null.hpp b/cpp/include/proton/null.hpp
index f9c44ff..f12cc03 100644
--- a/cpp/include/proton/null.hpp
+++ b/cpp/include/proton/null.hpp
@@ -25,7 +25,6 @@
/// @file
/// @copybrief proton::null
-#include "./internal/config.hpp"
#include "./internal/comparable.hpp"
#include "./internal/export.hpp"
@@ -39,10 +38,9 @@ namespace proton {
class null : private internal::comparable<null> {
public:
null() {}
-#if PN_CPP_HAS_NULLPTR
/// Constructed from nullptr literal
null(decltype(nullptr)) {}
-#endif
+
/// null instances are always equal
friend bool operator==(const null&, const null&) { return true; }
/// null instances are never unequal
diff --git a/cpp/include/proton/sasl.hpp b/cpp/include/proton/sasl.hpp
index a054086..59855dc 100644
--- a/cpp/include/proton/sasl.hpp
+++ b/cpp/include/proton/sasl.hpp
@@ -23,7 +23,6 @@
*/
#include "./internal/export.hpp"
-#include "./internal/config.hpp"
#include "./internal/object.hpp"
#include <proton/sasl.h>
@@ -41,11 +40,7 @@ class sasl {
sasl(pn_sasl_t* s) : object_(s) {}
/// @endcond
-#if PN_CPP_HAS_DELETED_FUNCTIONS
sasl() = delete;
-#else
- sasl();
-#endif
public:
/// The result of the SASL negotiation.
diff --git a/cpp/include/proton/scalar_base.hpp b/cpp/include/proton/scalar_base.hpp
index 7e7c8d1..b98c44d 100644
--- a/cpp/include/proton/scalar_base.hpp
+++ b/cpp/include/proton/scalar_base.hpp
@@ -100,9 +100,7 @@ class scalar_base : private internal::comparable<scalar_base> {
PN_CPP_EXTERN void put_(const binary&);
PN_CPP_EXTERN void put_(const char* s); ///< Treated as an AMQP string
PN_CPP_EXTERN void put_(const null&);
-#if PN_CPP_HAS_NULLPTR
PN_CPP_EXTERN void put_(decltype(nullptr));
-#endif
template<class T> void put(const T& x) { putter<T>::put(*this, x); }
@@ -128,9 +126,7 @@ class scalar_base : private internal::comparable<scalar_base> {
PN_CPP_EXTERN void get_(symbol&) const;
PN_CPP_EXTERN void get_(binary&) const;
PN_CPP_EXTERN void get_(null&) const;
-#if PN_CPP_HAS_NULLPTR
PN_CPP_EXTERN void get_(decltype(nullptr)&) const;
-#endif
// use template structs, functions cannot be partially specialized.
diff --git a/cpp/include/proton/ssl.hpp b/cpp/include/proton/ssl.hpp
index ea8dd17..cbec876 100644
--- a/cpp/include/proton/ssl.hpp
+++ b/cpp/include/proton/ssl.hpp
@@ -23,7 +23,6 @@
*/
#include "./internal/export.hpp"
-#include "./internal/config.hpp"
#include <proton/ssl.h>
@@ -40,11 +39,7 @@ class ssl {
ssl(pn_ssl_t* s) : object_(s) {}
/// @endcond
-#if PN_CPP_HAS_DELETED_FUNCTIONS
ssl() = delete;
-#else
- ssl();
-#endif
public:
/// Determines the level of peer validation.
diff --git a/cpp/include/proton/types.hpp b/cpp/include/proton/types.hpp
index 7d348e0..a59433a 100644
--- a/cpp/include/proton/types.hpp
+++ b/cpp/include/proton/types.hpp
@@ -27,7 +27,6 @@
// TODO aconway 2016-03-15: described types, described arrays.
-#include "./internal/config.hpp"
#include "./annotation_key.hpp"
#include "./binary.hpp"
@@ -45,9 +44,7 @@
#include "./codec/list.hpp"
#include "./codec/map.hpp"
#include "./codec/vector.hpp"
-#if PN_CPP_HAS_CPP11
#include "./codec/forward_list.hpp"
#include "./codec/unordered_map.hpp"
-#endif
#endif // PROTON_TYPES_HPP
diff --git a/cpp/include/proton/types_fwd.hpp b/cpp/include/proton/types_fwd.hpp
index 99cfc35..94f371b 100644
--- a/cpp/include/proton/types_fwd.hpp
+++ b/cpp/include/proton/types_fwd.hpp
@@ -25,7 +25,6 @@
/// @file
/// Forward declarations for Proton types used to represent AMQP types.
-#include "./internal/config.hpp"
namespace proton {
diff --git a/cpp/include/proton/value.hpp b/cpp/include/proton/value.hpp
index 896ad41..5204a72 100644
--- a/cpp/include/proton/value.hpp
+++ b/cpp/include/proton/value.hpp
@@ -69,10 +69,8 @@ class value : public internal::value_base, private internal::comparable<value> {
/// @{
PN_CPP_EXTERN value(const value&);
PN_CPP_EXTERN value& operator=(const value&);
-#if PN_CPP_HAS_RVALUE_REFERENCES
PN_CPP_EXTERN value(value&&);
PN_CPP_EXTERN value& operator=(value&&);
-#endif
/// @}
/// Copy from any allowed type T.
@@ -159,12 +157,11 @@ template<class T> void coerce(const value& v, T& x) {
template<> inline void get<null>(const value& v, null&) {
assert_type_equal(NULL_TYPE, v.type());
}
-#if PN_CPP_HAS_NULLPTR
+
/// @copybrief get<null>()
template<> inline void get<decltype(nullptr)>(const value& v, decltype(nullptr)&) {
assert_type_equal(NULL_TYPE, v.type());
}
-#endif
/// Return a readable string representation of x for display purposes.
PN_CPP_EXTERN std::string to_string(const value& x);
diff --git a/cpp/include/proton/work_queue.hpp b/cpp/include/proton/work_queue.hpp
index 580b201..bc09f88 100644
--- a/cpp/include/proton/work_queue.hpp
+++ b/cpp/include/proton/work_queue.hpp
@@ -25,15 +25,12 @@
#include "./duration.hpp"
#include "./fwd.hpp"
#include "./function.hpp"
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
#include <functional>
#include <utility>
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
#include <type_traits>
-#endif
struct pn_connection_t;
struct pn_session_t;
@@ -72,10 +69,8 @@ struct invocable_wrapper {
std::swap(wrapped_, newthis.wrapped_);
return *this;
}
-#if PN_CPP_HAS_RVALUE_REFERENCES
invocable_wrapper(invocable_wrapper&& w): wrapped_(w.wrapped_) {}
invocable_wrapper& operator=(invocable_wrapper&& that) {delete wrapped_; wrapped_ = that.wrapped_; return *this; }
-#endif
~invocable_wrapper() { delete wrapped_; }
invocable_wrapper(const invocable& i): wrapped_(&i.clone()) {}
@@ -263,7 +258,6 @@ work make_work(R (*f)(A, B, C), A a, B b, C c) {
} } // internal::v03
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
namespace internal { namespace v11 {
@@ -311,12 +305,6 @@ work make_work(Rest&&... r) {
using internal::v11::work;
using internal::v11::make_work;
-#else
-
-using internal::v03::work;
-using internal::v03::make_work;
-
-#endif
/// @endcond
@@ -380,10 +368,8 @@ class PN_CPP_CLASS_EXTERN work_queue {
private:
/// Declare both v03 and v11 if compiling with c++11 as the library contains both.
/// A C++11 user should never call the v03 overload so it is private in this case
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
PN_CPP_EXTERN bool add(internal::v03::work fn);
PN_CPP_EXTERN void schedule(duration, internal::v03::work fn);
-#endif
PN_CPP_EXTERN static work_queue& get(pn_connection_t*);
PN_CPP_EXTERN static work_queue& get(pn_session_t*);
diff --git a/cpp/src/codec_test.cpp b/cpp/src/codec_test.cpp
index 53d7628..e6c9d83 100644
--- a/cpp/src/codec_test.cpp
+++ b/cpp/src/codec_test.cpp
@@ -20,7 +20,6 @@
#include "test_bits.hpp"
#include "proton/internal/data.hpp"
-#include "proton/internal/config.hpp"
#include "proton/types.hpp"
namespace {
@@ -91,11 +90,9 @@ int main(int, char**) {
RUN_TEST(failed, simple_type_test(static_cast<unsigned int>(42)));
RUN_TEST(failed, simple_type_test(static_cast<unsigned long>(42)));
-#if PN_CPP_HAS_LONG_LONG_TYPE
RUN_TEST(failed, simple_type_test(static_cast<long long>(42)));
RUN_TEST(failed, simple_type_test(static_cast<signed long long>(42)));
RUN_TEST(failed, simple_type_test(static_cast<unsigned long long>(42)));
-#endif
// value and scalar types, more tests in value_test and scalar_test.
RUN_TEST(failed, simple_type_test(value("foo")));
diff --git a/cpp/src/connect_config_test.cpp b/cpp/src/connect_config_test.cpp
index 1649f7f..80c0372 100644
--- a/cpp/src/connect_config_test.cpp
+++ b/cpp/src/connect_config_test.cpp
@@ -150,7 +150,7 @@ void test_invalid_json() {
class messaging_handler : public proton::messaging_handler {
virtual void on_messaging_error(const error_condition&) = 0;
- void on_error(const error_condition& c) PN_CPP_OVERRIDE {
+ void on_error(const error_condition& c) override {
on_messaging_error(c);
}
};
@@ -158,7 +158,7 @@ class messaging_handler : public proton::messaging_handler {
class listen_handler : public proton::listen_handler {
virtual void on_listen_error(listener& , const string&) = 0;
- void on_error(listener& l, const string& s) PN_CPP_OVERRIDE {
+ void on_error(listener& l, const string& s) override {
on_listen_error(l, s);
}
};
@@ -168,19 +168,19 @@ class test_handler : public messaging_handler, public listen_handler {
connection_options connection_options_;
listener listener_;
- void on_open(listener& l) PN_CPP_OVERRIDE {
+ void on_open(listener& l) override {
on_listener_start(l.container());
}
- connection_options on_accept(listener& l) PN_CPP_OVERRIDE {
+ connection_options on_accept(listener& l) override {
return connection_options_;
}
- void on_container_start(container& c) PN_CPP_OVERRIDE {
+ void on_container_start(container& c) override {
listener_ = c.listen("//:0", *this);
}
- void on_connection_open(connection& c) PN_CPP_OVERRIDE {
+ void on_connection_open(connection& c) override {
if (!c.active()) { // Server side
opened_ = true;
check_connection(c);
@@ -189,11 +189,11 @@ class test_handler : public messaging_handler, public listen_handler {
}
}
- void on_messaging_error(const error_condition& e) PN_CPP_OVERRIDE {
+ void on_messaging_error(const error_condition& e) override {
FAIL("unexpected error " << e);
}
- void on_listen_error(listener&, const string& s) PN_CPP_OVERRIDE {
+ void on_listen_error(listener&, const string& s) override {
FAIL("unexpected listen error " << s);
}
@@ -229,14 +229,14 @@ class test_handler : public messaging_handler, public listen_handler {
class test_almost_default_connect : public test_handler {
public:
- void on_listener_start(container& c) PN_CPP_OVERRIDE {
+ void on_listener_start(container& c) override {
ofstream os("connect.json");
ASSERT(os << config_with_port(RAW_STRING("scheme":"amqp")));
os.close();
c.connect();
}
- void check_connection(connection& c) PN_CPP_OVERRIDE {
+ void check_connection(connection& c) override {
ASSERT_EQUAL("localhost", c.virtual_host());
}
};
@@ -253,7 +253,7 @@ public:
class test_default_connect : public test_handler {
public:
- void on_listener_start(container& c) PN_CPP_OVERRIDE {
+ void on_listener_start(container& c) override {
c.connect();
}
@@ -261,14 +261,14 @@ class test_default_connect : public test_handler {
// connected or rejected due to error.
//
// We use a hacky way to get to the underlying C objects to check what's in them
- void on_transport_open(proton::transport& transport) PN_CPP_OVERRIDE {
+ void on_transport_open(proton::transport& transport) override {
proton::connection connection = transport.connection();
internal_access_of<proton::connection, pn_connection_t> ic(connection);
pn_connection_t* c = ic.pn_object();
ASSERT_EQUAL(std::string("localhost"), pn_connection_get_hostname(c));
}
- void on_transport_error(proton::transport& t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport& t) override {
ASSERT_SUBSTRING("localhost:5671", t.error().description());
t.connection().container().stop();
}
@@ -281,11 +281,11 @@ class test_default_connect : public test_handler {
class test_host_user_pass : public test_handler {
public:
- void on_listener_start(proton::container & c) PN_CPP_OVERRIDE {
+ void on_listener_start(proton::container & c) override {
connect(c, RAW_STRING("scheme":"amqp", "host":"127.0.0.1", "user":"user@proton", "password":"password"));
}
- void check_connection(connection& c) PN_CPP_OVERRIDE {
+ void check_connection(connection& c) override {
ASSERT_EQUAL("127.0.0.1", c.virtual_host());
if (pn_sasl_extended()) {
ASSERT_EQUAL("user@proton", c.user());
@@ -309,7 +309,7 @@ class test_tls : public test_handler {
test_tls() : test_handler(make_opts()) {}
- void on_listener_start(proton::container & c) PN_CPP_OVERRIDE {
+ void on_listener_start(proton::container & c) override {
connect(c, RAW_STRING("scheme":"amqps", "tls": { "verify":false }));
}
};
@@ -329,11 +329,11 @@ class test_tls_default_fail : public test_handler {
test_tls_default_fail() : test_handler(make_opts()), failed_(false) {}
- void on_listener_start(proton::container& c) PN_CPP_OVERRIDE {
+ void on_listener_start(proton::container& c) override {
connect(c, RAW_STRING("scheme":"amqps"));
}
- void on_messaging_error(const proton::error_condition& c) PN_CPP_OVERRIDE {
+ void on_messaging_error(const proton::error_condition& c) override {
if (failed_) return;
ASSERT_SUBSTRING("verify failed", c.description());
@@ -365,7 +365,7 @@ class test_tls_external : public test_handler {
test_tls_external() : test_handler(make_opts()) {}
- void on_listener_start(container& c) PN_CPP_OVERRIDE {
+ void on_listener_start(container& c) override {
connect(c, RAW_STRING(
"scheme":"amqps",
"sasl":{ "mechanisms": "EXTERNAL" },
@@ -395,7 +395,7 @@ class test_tls_plain : public test_handler {
test_tls_plain() : test_handler(make_opts()) {}
- void on_listener_start(container& c) PN_CPP_OVERRIDE {
+ void on_listener_start(container& c) override {
connect(c, RAW_STRING(
"scheme":"amqps", "user":"user@proton", "password": "password",
"sasl":{ "mechanisms": "PLAIN" },
diff --git a/cpp/src/connection_driver_test.cpp b/cpp/src/connection_driver_test.cpp
index 9583f59..b56cd07 100644
--- a/cpp/src/connection_driver_test.cpp
+++ b/cpp/src/connection_driver_test.cpp
@@ -171,34 +171,34 @@ struct record_handler : public messaging_handler {
size_t link_count() const { return senders.size() + receivers.size(); }
- void on_receiver_open(receiver &l) PN_CPP_OVERRIDE {
+ void on_receiver_open(receiver &l) override {
messaging_handler::on_receiver_open(l);
receivers.push_back(l);
}
- void on_sender_open(sender &l) PN_CPP_OVERRIDE {
+ void on_sender_open(sender &l) override {
messaging_handler::on_sender_open(l);
senders.push_back(l);
}
- void on_session_open(session &s) PN_CPP_OVERRIDE {
+ void on_session_open(session &s) override {
messaging_handler::on_session_open(s);
sessions.push_back(s);
}
- void on_transport_error(transport& t) PN_CPP_OVERRIDE {
+ void on_transport_error(transport& t) override {
transport_errors.push_back(t.error().what());
}
- void on_connection_error(connection& c) PN_CPP_OVERRIDE {
+ void on_connection_error(connection& c) override {
connection_errors.push_back(c.error().what());
}
- void on_error(const proton::error_condition& c) PN_CPP_OVERRIDE {
+ void on_error(const proton::error_condition& c) override {
unhandled_errors.push_back(c.what());
}
- void on_message(proton::delivery&, proton::message& m) PN_CPP_OVERRIDE {
+ void on_message(proton::delivery&, proton::message& m) override {
messages.push_back(m);
}
};
diff --git a/cpp/src/container.cpp b/cpp/src/container.cpp
index 013fb4b..494ece8 100644
--- a/cpp/src/container.cpp
+++ b/cpp/src/container.cpp
@@ -91,9 +91,7 @@ listener container::listen(const std::string& url, listen_handler& l) { return i
void container::run() { impl_->run(1); }
-#if PN_CPP_SUPPORTS_THREADS
void container::run(int threads) { impl_->run(threads); }
-#endif
void container::auto_stop(bool set) { impl_->auto_stop(set); }
@@ -116,9 +114,7 @@ returned<receiver> container::open_receiver(
std::string container::id() const { return impl_->id(); }
void container::schedule(duration d, internal::v03::work f) { return impl_->schedule(d, f); }
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
void container::schedule(duration d, internal::v11::work f) { return impl_->schedule(d, f); }
-#endif
void container::schedule(duration d, void_function0& f) { return impl_->schedule(d, make_work(&void_function0::operator(), &f)); }
diff --git a/cpp/src/container_test.cpp b/cpp/src/container_test.cpp
index d6e347e..d49aad9 100644
--- a/cpp/src/container_test.cpp
+++ b/cpp/src/container_test.cpp
@@ -37,12 +37,10 @@
#include <string>
#include <cstdio>
#include <sstream>
+#include <thread>
+#include <mutex>
+#include <condition_variable>
-#if PN_CPP_SUPPORTS_THREADS
-# include <thread>
-# include <mutex>
-# include <condition_variable>
-#endif
namespace {
@@ -62,11 +60,11 @@ struct test_listen_handler : public proton::listen_handler {
const proton::connection_options& opts=proton::connection_options()
) : on_open_(false), on_accept_(false), on_close_(false), host_(host), opts_(opts) {}
- proton::connection_options on_accept(proton::listener&) PN_CPP_OVERRIDE {
+ proton::connection_options on_accept(proton::listener&) override {
on_accept_ = true;
return proton::connection_options();
}
- void on_open(proton::listener& l) PN_CPP_OVERRIDE {
+ void on_open(proton::listener& l) override {
on_open_ = true;
ASSERT(!on_accept_);
ASSERT(on_error_.empty());
@@ -74,12 +72,12 @@ struct test_listen_handler : public proton::listen_handler {
l.container().connect(make_url(host_, l.port()), opts_);
}
- void on_close(proton::listener&) PN_CPP_OVERRIDE {
+ void on_close(proton::listener&) override {
on_close_ = true;
ASSERT(on_open_ || on_error_.size());
}
- void on_error(proton::listener&, const std::string& e) PN_CPP_OVERRIDE {
+ void on_error(proton::listener&, const std::string& e) override {
on_error_ = e;
ASSERT(!on_close_);
}
@@ -102,11 +100,11 @@ class test_handler : public proton::messaging_handler {
: closing(false), done(false), listen_handler(h, c_opts)
{}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
listener = c.listen("//:0", listen_handler);
}
- void on_connection_open(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
ASSERT(listen_handler.on_open_);
ASSERT(!listen_handler.on_close_);
ASSERT(listen_handler.on_error_.empty());
@@ -123,7 +121,7 @@ class test_handler : public proton::messaging_handler {
closing = true;
}
- void on_connection_close(proton::connection &) PN_CPP_OVERRIDE {
+ void on_connection_close(proton::connection &) override {
if (!done) listener.stop();
done = true;
}
@@ -228,7 +226,7 @@ class stop_tester : public proton::messaging_handler {
test_listen_handler listen_handler;
// Set up a listener which would block forever
- void on_container_start(proton::container& c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container& c) override {
ASSERT(state==0);
listener = c.listen("//:0", listen_handler);
c.auto_stop(false);
@@ -236,22 +234,22 @@ class stop_tester : public proton::messaging_handler {
}
// Get here twice - once for listener, once for connector
- void on_connection_open(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
c.close();
state++;
}
- void on_connection_close(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_close(proton::connection &c) override {
ASSERT(state==3);
c.container().stop();
state = 4;
}
- void on_container_stop(proton::container & ) PN_CPP_OVERRIDE {
+ void on_container_stop(proton::container & ) override {
ASSERT(state==4);
state = 5;
}
- void on_transport_error(proton::transport & t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport & t) override {
// Do nothing - ignore transport errors - we're going to get one when
// the container stops.
}
@@ -280,16 +278,16 @@ struct hang_tester : public proton::messaging_handler {
c->connect(make_url("", listener.port()));
}
- void on_container_start(proton::container& c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container& c) override {
listener = c.listen("//:0");
c.schedule(proton::duration(250), proton::make_work(&hang_tester::connect, this, &c));
}
- void on_connection_open(proton::connection& c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection& c) override {
c.close();
}
- void on_connection_close(proton::connection& c) PN_CPP_OVERRIDE {
+ void on_connection_close(proton::connection& c) override {
if (!done) {
done = true;
listener.stop();
@@ -305,7 +303,7 @@ int test_container_schedule_nohang() {
class immediate_stop_tester : public proton::messaging_handler {
public:
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
c.stop();
}
};
@@ -327,7 +325,7 @@ int test_container_pre_stop() {
struct schedule_tester : public proton::messaging_handler {
void stop(proton::container* c) { c->stop(); }
- void on_container_start(proton::container& c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container& c) override {
c.schedule(proton::duration(250), proton::make_work(&schedule_tester::stop, this, &c));
}
};
@@ -362,11 +360,11 @@ class link_test_handler : public proton::messaging_handler {//, public proton::l
sender_options(s_opts)
{}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
listener = c.listen("//:0", listen_handler);
}
- void on_connection_open(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
if (c.uninitialized()) {
proton::messaging_handler::on_connection_open(c);
c.open_receiver("", receiver_options);
@@ -382,14 +380,14 @@ class link_test_handler : public proton::messaging_handler {//, public proton::l
}
}
- void on_receiver_open(proton::receiver &l) PN_CPP_OVERRIDE {
+ void on_receiver_open(proton::receiver &l) override {
had_receiver = true;
// When a client creates a sender then the server is notified about it as a receiver
peer_sender_properties = l.properties();
check_close(l);
}
- void on_sender_open(proton::sender &l) PN_CPP_OVERRIDE {
+ void on_sender_open(proton::sender &l) override {
had_sender = true;
// When a client creates a receiver then the server is notified about it as a sender
peer_receiver_properties = l.properties();
@@ -432,8 +430,6 @@ int test_container_links_properties() {
return 0;
}
-#if PN_CPP_SUPPORTS_THREADS // Tests that require thread support
-
class test_mt_handler : public proton::messaging_handler {
public:
std::mutex lock_;
@@ -456,11 +452,11 @@ class test_mt_handler : public proton::messaging_handler {
}
proton::error_condition error() const { return err_; }
- void on_container_start(proton::container &) PN_CPP_OVERRIDE { set("start"); }
- void on_connection_open(proton::connection &) PN_CPP_OVERRIDE { set("open"); }
+ void on_container_start(proton::container &) override { set("start"); }
+ void on_connection_open(proton::connection &) override { set("open"); }
// Catch errors and save.
- void on_error(const proton::error_condition& e) PN_CPP_OVERRIDE { err_ = e; }
+ void on_error(const proton::error_condition& e) override { err_ = e; }
};
class container_runner {
@@ -527,7 +523,7 @@ public:
test_mt_handler_wq() : wq_(0) {}
- void on_connection_open(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
{
std::unique_lock<std::mutex> l(wqlock_);
// Just record first connection side, inbound or outbound
@@ -546,7 +542,7 @@ public:
wq_->add(call_do_close_);
}
void do_close() { connection_.close(); }
- void on_connection_close(proton::connection &) PN_CPP_OVERRIDE { set("closed"); }
+ void on_connection_close(proton::connection &) override { set("closed"); }
};
void test_container_mt_close_race() {
@@ -578,8 +574,6 @@ void test_container_mt_close_race() {
}
}
-#endif
-
} // namespace
int main(int argc, char** argv) {
@@ -598,10 +592,8 @@ int main(int argc, char** argv) {
RUN_ARGV_TEST(failed, test_container_schedule_stop());
RUN_ARGV_TEST(failed, test_container_links_no_properties());
RUN_ARGV_TEST(failed, test_container_links_properties());
-#if PN_CPP_SUPPORTS_THREADS
RUN_ARGV_TEST(failed, test_container_mt_stop_empty());
RUN_ARGV_TEST(failed, test_container_mt_stop());
RUN_ARGV_TEST(failed, test_container_mt_close_race());
-#endif
return failed;
}
diff --git a/cpp/src/credit_test.cpp b/cpp/src/credit_test.cpp
index a57366e..a6993cb 100644
--- a/cpp/src/credit_test.cpp
+++ b/cpp/src/credit_test.cpp
@@ -61,7 +61,7 @@ class server_connection_handler : public proton::messaging_handler {
opts.handler(h);
}
- void on_open(proton::listener& l) PN_CPP_OVERRIDE {
+ void on_open(proton::listener& l) override {
std::ostringstream o;
o << "//:" << l.port(); // Connect to the actual listening port
url = o.str();
@@ -70,7 +70,7 @@ class server_connection_handler : public proton::messaging_handler {
proton::make_work(&waiter::done, &listen_waiter));
}
- proton::connection_options on_accept(proton::listener&) PN_CPP_OVERRIDE { return opts; }
+ proton::connection_options on_accept(proton::listener&) override { return opts; }
};
proton::listener listener_;
@@ -102,18 +102,18 @@ class server_connection_handler : public proton::messaging_handler {
return listen_handler_.url;
}
- void on_connection_open(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
// Only listen for a single connection
listener_.stop();
c.open();
}
- void on_sender_open(proton::sender &s) PN_CPP_OVERRIDE {
+ void on_sender_open(proton::sender &s) override {
s.open();
sender_ = s;
}
- void on_sendable(proton::sender &s) PN_CPP_OVERRIDE {
+ void on_sendable(proton::sender &s) override {
send_available_messages(s);
}
@@ -133,13 +133,13 @@ class server_connection_handler : public proton::messaging_handler {
notify_wq_->add(notify_work_);
}
- void on_tracker_accept(proton::tracker& d) PN_CPP_OVERRIDE {
+ void on_tracker_accept(proton::tracker& d) override {
acked_++;
if (acked_ == expect_ && (available_ == 0 || d.sender().credit() == 0))
notify_idle();
}
- void on_transport_error(proton::transport & ) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport & ) override {
// If we get an error then (try to) stop the listener
// - this will stop the listener if we didn't already accept a connection
listener_.stop();
@@ -157,20 +157,20 @@ class tester : public proton::messaging_handler, public waiter {
tester() : waiter(1), container_(*this, "credit_tester"),
received_(0), initial_credit_(0) {}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
srv_.reset(new server_connection_handler(c, 100000, *this));
}
// waiter::ready is called when listener can accept connections.
- void ready() PN_CPP_OVERRIDE {
+ void ready() override {
container_.connect(srv_->url());
}
- void on_connection_open(proton::connection& c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection& c) override {
c.open_receiver("messages", proton::receiver_options().credit_window(0));
}
- void on_receiver_open(proton::receiver &r) PN_CPP_OVERRIDE {
+ void on_receiver_open(proton::receiver &r) override {
receiver_ = r;
next_idle_ = proton::make_work(&tester::first_idle, this);
proton::work call_on_server_idle(make_work(&tester::on_server_idle, this));
@@ -178,7 +178,7 @@ class tester : public proton::messaging_handler, public waiter {
r.add_credit(initial_credit_);
}
- void on_message(proton::delivery &d, proton::message &m) PN_CPP_OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &m) override {
received_++;
d.accept();
}
@@ -204,7 +204,7 @@ class tester : public proton::messaging_handler, public waiter {
receiver_.connection().close();
}
- void on_connection_close(proton::connection& c) PN_CPP_OVERRIDE {
+ void on_connection_close(proton::connection& c) override {
if (!fail_msg_.empty())
FAIL(fail_msg_);
}
@@ -226,7 +226,7 @@ class basic_credit_tester : public tester {
public:
basic_credit_tester() { initial_credit_ = 3; }
- void first_idle() PN_CPP_OVERRIDE {
+ void first_idle() override {
if (received_ != 3) {
fail(FAIL_MSG("messages received should be 3 not "), received_);
return;
@@ -269,11 +269,11 @@ class drain_credit_tester : public tester {
public:
drain_credit_tester() : drain_finishes_(0) { initial_credit_ = 10; }
- void on_receiver_drain_finish(proton::receiver &r) PN_CPP_OVERRIDE {
+ void on_receiver_drain_finish(proton::receiver &r) override {
drain_finishes_++;
}
- void first_idle() PN_CPP_OVERRIDE {
+ void first_idle() override {
if (received_ != 10) {
fail(FAIL_MSG("messages received should be 10 not "), received_);
return;
diff --git a/cpp/src/decoder.cpp b/cpp/src/decoder.cpp
index 9a5ace3..284d531 100644
--- a/cpp/src/decoder.cpp
+++ b/cpp/src/decoder.cpp
@@ -141,13 +141,11 @@ decoder& decoder::operator>>(null&) {
return *this;
}
-#if PN_CPP_HAS_NULLPTR
decoder& decoder::operator>>(decltype(nullptr)&) {
internal::state_guard sg(*this);
assert_type_equal(NULL_TYPE, pre_get());
return *this;
}
-#endif
decoder& decoder::operator>>(internal::value_base& x) {
if (*this == x.data_)
diff --git a/cpp/src/delivery_test.cpp b/cpp/src/delivery_test.cpp
index 93dfa40..e4c69eb 100644
--- a/cpp/src/delivery_test.cpp
+++ b/cpp/src/delivery_test.cpp
@@ -56,7 +56,7 @@ int listener_port;
class test_recv : public proton::messaging_handler {
private:
class listener_ready_handler : public proton::listen_handler {
- void on_open(proton::listener &l) PN_CPP_OVERRIDE {
+ void on_open(proton::listener &l) override {
{
std::lock_guard<std::mutex> lk(m);
listener_port = l.port();
@@ -73,11 +73,11 @@ class test_recv : public proton::messaging_handler {
public:
test_recv(const std::string &s) : url(s) {}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
listener = c.listen(url, listen_handler);
}
- void on_message(proton::delivery &d, proton::message &msg) PN_CPP_OVERRIDE {
+ void on_message(proton::delivery &d, proton::message &msg) override {
proton::binary test_tag_recv("TESTTAG");
ASSERT_EQUAL(test_tag_recv, d.tag());
d.receiver().close();
@@ -94,12 +94,12 @@ class test_send : public proton::messaging_handler {
public:
test_send(const std::string &s) : url(s) {}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::connection_options co;
sender = c.open_sender(url, co);
}
- void on_sendable(proton::sender &s) PN_CPP_OVERRIDE {
+ void on_sendable(proton::sender &s) override {
proton::message msg;
msg.body("message");
proton::binary test_tag_send("TESTTAG");
diff --git a/cpp/src/encoder.cpp b/cpp/src/encoder.cpp
index 3430031..30ec5a8 100644
--- a/cpp/src/encoder.cpp
+++ b/cpp/src/encoder.cpp
@@ -145,9 +145,7 @@ encoder& encoder::operator<<(const std::string& x) { return insert(x, pn_data_pu
encoder& encoder::operator<<(const symbol& x) { return insert(x, pn_data_put_amqp_symbol); }
encoder& encoder::operator<<(const binary& x) { return insert(x, pn_data_put_amqp_binary); }
encoder& encoder::operator<<(const null&) { pn_data_put_null(pn_object()); return *this; }
-#if PN_CPP_HAS_NULLPTR
encoder& encoder::operator<<(decltype(nullptr)) { pn_data_put_null(pn_object()); return *this; }
-#endif
encoder& encoder::operator<<(const scalar_base& x) { return insert(x.atom_, pn_data_put_atom); }
diff --git a/cpp/src/error_condition.cpp b/cpp/src/error_condition.cpp
index 91e763a..6934ed0 100644
--- a/cpp/src/error_condition.cpp
+++ b/cpp/src/error_condition.cpp
@@ -51,11 +51,9 @@ error_condition::error_condition(std::string name, std::string description, valu
properties_(properties)
{}
-#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
error_condition::operator bool() const {
return !name_.empty();
}
-#endif
bool error_condition::operator!() const {
return name_.empty();
diff --git a/cpp/src/map.cpp b/cpp/src/map.cpp
index 86bd8c5..fdfb3fd 100644
--- a/cpp/src/map.cpp
+++ b/cpp/src/map.cpp
@@ -70,7 +70,6 @@ map<K,T>& map<K,T>::operator=(const map& x) {
return *this;
}
-#if PN_CPP_HAS_RVALUE_REFERENCES
template <class K, class T>
map<K,T>::map(map&& x) :
map_(std::move(x.map_)), value_(std::move(x.value_)) {}
@@ -83,7 +82,6 @@ map<K,T>& map<K,T>::operator=(map&& x) {
}
return *this;
}
-#endif
template <class K, class T>
map<K,T>::~map() {}
diff --git a/cpp/src/message.cpp b/cpp/src/message.cpp
index 5c0df8d..5902ba0 100644
--- a/cpp/src/message.cpp
+++ b/cpp/src/message.cpp
@@ -70,14 +70,11 @@ struct message::impl {
message::message() : pn_msg_(0) {}
message::message(const message &m) : pn_msg_(0) { *this = m; }
-
-#if PN_CPP_HAS_RVALUE_REFERENCES
message::message(message &&m) : pn_msg_(0) { swap(*this, m); }
message& message::operator=(message&& m) {
swap(*this, m);
return *this;
}
-#endif
message::message(const value& x) : pn_msg_(0) { body() = x; }
diff --git a/cpp/src/proactor_container_impl.cpp b/cpp/src/proactor_container_impl.cpp
index 1fae73b..44dfffe 100644
--- a/cpp/src/proactor_container_impl.cpp
+++ b/cpp/src/proactor_container_impl.cpp
@@ -44,14 +44,8 @@
#include <algorithm>
#include <vector>
-
-#if PN_CPP_SUPPORTS_THREADS
-# include <thread>
-#endif
-
-#if PN_CPP_HAS_HEADER_RANDOM
-# include <random>
-#endif
+#include <thread>
+#include <random>
// XXXX: Debug
//#include <iostream>
@@ -270,19 +264,12 @@ void container::impl::reconnect(pn_connection_t* pnc) {
}
namespace {
-#if PN_CPP_HAS_HEADER_RANDOM && PN_CPP_HAS_THREAD_LOCAL
duration random_between(duration min, duration max)
{
static thread_local std::default_random_engine gen;
std::uniform_int_distribution<duration::numeric_type> dist{min.milliseconds(), max.milliseconds()};
return duration(dist(gen));
}
-#else
-duration random_between(duration, duration max)
-{
- return max;
-}
-#endif
duration next_delay(reconnect_context& rc) {
// If we've not retried before do it immediately
@@ -800,7 +787,6 @@ void container::impl::run(int threads) {
// Have to "manually" generate container events
CALL_ONCE(start_once_, &impl::start_event, this);
-#if PN_CPP_SUPPORTS_THREADS
// Run handler threads
threads = std::max(threads, 1); // Ensure at least 1 thread
typedef std::vector<std::thread*> vt; // pointer vector to work around failures in older compilers
@@ -816,10 +802,6 @@ void container::impl::run(int threads) {
(*i)->join();
delete *i;
}
-#else
- // Run a single handler thread (As we have no threading API)
- thread();
-#endif
bool last = false;
{
diff --git a/cpp/src/proactor_container_impl.hpp b/cpp/src/proactor_container_impl.hpp
index c8dd1ad..f3475b0 100644
--- a/cpp/src/proactor_container_impl.hpp
+++ b/cpp/src/proactor_container_impl.hpp
@@ -43,18 +43,11 @@
#include <string>
#include <vector>
-#if PN_CPP_SUPPORTS_THREADS
#include <mutex>
# define MUTEX(x) std::mutex x;
# define GUARD(x) std::lock_guard<std::mutex> g(x)
# define ONCE_FLAG(x) std::once_flag x;
# define CALL_ONCE(x, ...) std::call_once(x, __VA_ARGS__)
-#else
-# define MUTEX(x)
-# define GUARD(x)
-# define ONCE_FLAG(x)
-# define CALL_ONCE(x, f, o) ((o)->*(f))()
-#endif
struct pn_proactor_t;
struct pn_listener_t;
diff --git a/cpp/src/reconnect_test.cpp b/cpp/src/reconnect_test.cpp
index 17907f1..58e5751 100644
--- a/cpp/src/reconnect_test.cpp
+++ b/cpp/src/reconnect_test.cpp
@@ -62,7 +62,7 @@ class server_connection_handler : public proton::messaging_handler {
opts.handler(h);
}
- void on_open(proton::listener& l) PN_CPP_OVERRIDE {
+ void on_open(proton::listener& l) override {
std::ostringstream o;
o << "//:" << l.port(); // Connect to the actual listening port
url = o.str();
@@ -71,7 +71,7 @@ class server_connection_handler : public proton::messaging_handler {
proton::make_work(&waiter::done, &listen_waiter));
}
- proton::connection_options on_accept(proton::listener&) PN_CPP_OVERRIDE { return opts; }
+ proton::connection_options on_accept(proton::listener&) override { return opts; }
};
proton::listener listener_;
@@ -99,14 +99,14 @@ class server_connection_handler : public proton::messaging_handler {
return listen_handler_.url;
}
- void on_connection_open(proton::connection &c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection &c) override {
// Only listen for a single connection
listener_.stop();
if (messages_==expect_) close(c);
else c.open();
}
- void on_receiver_open(proton::receiver &r) PN_CPP_OVERRIDE {
+ void on_receiver_open(proton::receiver &r) override {
// Reduce message noise in PN_TRACE output for debugging.
// Only the first message is relevant
// Control accepts, accepting the message tells the client to finally close.
@@ -114,14 +114,14 @@ class server_connection_handler : public proton::messaging_handler {
r.add_credit(1);
}
- void on_message(proton::delivery & d, proton::message & m) PN_CPP_OVERRIDE {
+ void on_message(proton::delivery & d, proton::message & m) override {
++messages_;
proton::connection c = d.connection();
if (messages_==expect_) close(c);
else d.accept();
}
- void on_transport_error(proton::transport & ) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport & ) override {
// If we get an error then (try to) stop the listener
// - this will stop the listener if we didn't already accept a connection
listener_.stop();
@@ -134,7 +134,7 @@ class tester : public proton::messaging_handler, public waiter {
start_count(0), open_count(0),
link_open_count(0), transport_error_count(0), transport_close_count(0) {}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Server that fails upon connection
s1.reset(new server_connection_handler(c, 0, *this));
// Server that fails on first message
@@ -144,14 +144,14 @@ class tester : public proton::messaging_handler, public waiter {
}
// waiter::ready is called when all 3 listeners are ready.
- void ready() PN_CPP_OVERRIDE {
+ void ready() override {
std::vector<std::string> urls;
urls.push_back(s2->url());
urls.push_back(s3->url());
container_.connect(s1->url(), proton::connection_options().failover_urls(urls));
}
- void on_connection_open(proton::connection& c) PN_CPP_OVERRIDE {
+ void on_connection_open(proton::connection& c) override {
if (!c.reconnected()) {
start_count++;
c.open_sender("messages");
@@ -160,24 +160,24 @@ class tester : public proton::messaging_handler, public waiter {
open_count++;
}
- void on_sender_open(proton::sender &s) PN_CPP_OVERRIDE {
+ void on_sender_open(proton::sender &s) override {
link_open_count++;
}
- void on_sendable(proton::sender& s) PN_CPP_OVERRIDE {
+ void on_sendable(proton::sender& s) override {
s.send(proton::message("hello"));
}
- void on_tracker_accept(proton::tracker& d) PN_CPP_OVERRIDE {
+ void on_tracker_accept(proton::tracker& d) override {
d.connection().close();
}
- void on_transport_error(proton::transport& t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport& t) override {
ASSERT_EQUAL(bool(transport_error_count), t.connection().reconnected());
transport_error_count++;
}
- void on_transport_close(proton::transport& t) PN_CPP_OVERRIDE {
+ void on_transport_close(proton::transport& t) override {
transport_close_count++;
}
@@ -220,7 +220,7 @@ class stop_reconnect_tester : public proton::messaging_handler {
container_.stop();
}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
proton::reconnect_options reconnect_options;
c.connect("this-is-not-going-to work.com", proton::connection_options().reconnect(reconnect_options));
c.schedule(proton::duration::SECOND, proton::make_work(&stop_reconnect_tester::deferred_stop, this));
@@ -249,17 +249,17 @@ class authfail_reconnect_tester : public proton::messaging_handler, public waite
container_.stop();
}
- void on_container_start(proton::container& c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container& c) override {
// This server won't fail in this test
s1.reset(new server_connection_handler(c, 100, *this));
c.schedule(proton::duration::SECOND, proton::make_work(&authfail_reconnect_tester::deferred_stop, this));
}
- void on_transport_error(proton::transport& t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport& t) override {
errored_ = true;
}
- void ready() PN_CPP_OVERRIDE {
+ void ready() override {
proton::connection_options co;
co.sasl_allowed_mechs("PLAIN");
co.reconnect(proton::reconnect_options());
@@ -283,20 +283,20 @@ class test_reconnecting_close : public proton::messaging_handler, public waiter
test_reconnecting_close() : waiter(1), container_(*this, "test_reconnecting_close"),
transport_error_called(false) {}
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
s1.reset(new server_connection_handler(c, 0, *this));
}
- void ready() PN_CPP_OVERRIDE {
+ void ready() override {
container_.connect(s1->url(), proton::connection_options().reconnect(proton::reconnect_options()));
}
- void on_transport_error(proton::transport& t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport& t) override {
transport_error_called = true;
t.connection().close(); // Abort reconnection
}
- void on_connection_close(proton::connection& c) PN_CPP_OVERRIDE {
+ void on_connection_close(proton::connection& c) override {
ASSERT(0); // Not expecting any clean close
}
@@ -328,7 +328,7 @@ public:
proton::connection_options copts() { return proton::connection_options(); }
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Never actually connects, keeps re-trying to bogus hostnames with
// changing options.
c.connect("nosuchhost0",
@@ -339,7 +339,7 @@ public:
.reconnect_url("hahaha1"));
}
- void on_transport_error(proton::transport &t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport &t) override {
switch (++errors_) {
case 1:
ASSERT_SUBSTRING("nosuchhost0", t.error().what()); // First failure
@@ -383,13 +383,13 @@ public:
proton::connection_options copts() { return proton::connection_options(); }
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Never actually connects, keeps re-trying to bogus hostnames with
// changing options.
c.connect("nosuchhost0", copts().reconnect(ropts()).virtual_host("vhost0").user("user0"));
}
- void on_transport_error(proton::transport &t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport &t) override {
switch (++errors_) {
case 1:
ASSERT_SUBSTRING("nosuchhost0", t.error().what()); // First failure
@@ -440,13 +440,13 @@ public:
proton::connection_options copts() { return proton::connection_options(); }
- void on_container_start(proton::container &c) PN_CPP_OVERRIDE {
+ void on_container_start(proton::container &c) override {
// Never actually connects, keeps re-trying to bogus hostnames with
// changing options.
c.connect("nosuchhost0", copts().reconnect(ropts()).virtual_host("vhost0").user("user0"));
}
- void on_transport_error(proton::transport &t) PN_CPP_OVERRIDE {
+ void on_transport_error(proton::transport &t) override {
switch (++errors_) {
case 1:
ASSERT_SUBSTRING("nosuchhost0", t.error().what()); // First failure
diff --git a/cpp/src/scalar_base.cpp b/cpp/src/scalar_base.cpp
index d18a272..8f0aef9 100644
--- a/cpp/src/scalar_base.cpp
+++ b/cpp/src/scalar_base.cpp
@@ -84,9 +84,7 @@ void scalar_base::put_(const symbol& x) { set(binary(x), PN_SYMBOL); }
void scalar_base::put_(const binary& x) { set(x, PN_BINARY); }
void scalar_base::put_(const char* x) { set(binary(std::string(x)), PN_STRING); }
void scalar_base::put_(const null&) { atom_.type = PN_NULL; }
-#if PN_CPP_HAS_NULLPTR
void scalar_base::put_(decltype(nullptr)) { atom_.type = PN_NULL; }
-#endif
void scalar_base::ok(pn_type_t t) const {
@@ -114,9 +112,7 @@ void scalar_base::get_(std::string& x) const { ok(PN_STRING); x = std::string(by
void scalar_base::get_(symbol& x) const { ok(PN_SYMBOL); x = symbol(bytes_.begin(), bytes_.end()); }
void scalar_base::get_(binary& x) const { ok(PN_BINARY); x = bytes_; }
void scalar_base::get_(null&) const { ok(PN_NULL); }
-#if PN_CPP_HAS_NULLPTR
void scalar_base::get_(decltype(nullptr)&) const { ok(PN_NULL); }
-#endif
namespace {
diff --git a/cpp/src/scalar_test.hpp b/cpp/src/scalar_test.hpp
index 4ed1e31..206a161 100644
--- a/cpp/src/scalar_test.hpp
+++ b/cpp/src/scalar_test.hpp
@@ -193,11 +193,8 @@ template <class V> void scalar_test_group(int& failed) {
RUN_TEST(failed, (simple_integral_test<V, unsigned short>()));
RUN_TEST(failed, (simple_integral_test<V, unsigned int>()));
RUN_TEST(failed, (simple_integral_test<V, unsigned long>()));
-#if PN_CPP_HAS_LONG_LONG_TYPE
RUN_TEST(failed, (simple_integral_test<V, long long>()));
RUN_TEST(failed, (simple_integral_test<V, unsigned long long>()));
-#endif
-
RUN_TEST(failed, (coerce_test<V>()));
RUN_TEST(failed, (null_test<V>()));
diff --git a/cpp/src/test_bits.hpp b/cpp/src/test_bits.hpp
index 50ea2ee..92ecc83 100644
--- a/cpp/src/test_bits.hpp
+++ b/cpp/src/test_bits.hpp
@@ -154,7 +154,6 @@ template <class U, class V> std::ostream& operator<<(std::ostream& o, const std:
return o << "( " << p.first << " , " << p.second << " )";
}
-#if PN_CPP_HAS_CPP11
template <class K, class T> std::ostream& operator<<(std::ostream& o, const std::unordered_map<K, T>& x) {
return o << test::many<std::pair<const K, T> >(x);
}
@@ -162,7 +161,7 @@ template <class K, class T> std::ostream& operator<<(std::ostream& o, const std:
template <class T> std::ostream& operator<<(std::ostream& o, const std::forward_list<T>& s) {
return o << test::many<T>(s);
}
-#endif
+
}
#endif // TEST_BITS_HPP
diff --git a/cpp/src/timestamp.cpp b/cpp/src/timestamp.cpp
index 0e1cc96..03e7187 100644
--- a/cpp/src/timestamp.cpp
+++ b/cpp/src/timestamp.cpp
@@ -19,7 +19,6 @@
#include "proton/timestamp.hpp"
-#include "proton/internal/config.hpp"
#include <proton/error.hpp>
#include <proton/proactor.h>
#include <proton/types.h>
diff --git a/cpp/src/value.cpp b/cpp/src/value.cpp
index 45119ed..7a30cd3 100644
--- a/cpp/src/value.cpp
+++ b/cpp/src/value.cpp
@@ -36,10 +36,8 @@ using codec::start;
value::value() {}
value::value(pn_data_t *d) { data_ = make_wrapper(d); }
value::value(const value& x) { *this = x; }
-#if PN_CPP_HAS_RVALUE_REFERENCES
value::value(value&& x) { swap(*this, x); }
value& value::operator=(value&& x) { swap(*this, x); return *this; }
-#endif
value& value::operator=(const value& x) {
if (this != &x) {
diff --git a/cpp/src/value_test.cpp b/cpp/src/value_test.cpp
index 2d991c4..086e58f 100644
--- a/cpp/src/value_test.cpp
+++ b/cpp/src/value_test.cpp
@@ -104,7 +104,6 @@ void null_test() {
vm2[2] = n;
ASSERT_EQUAL("{null=1, 2=null}", to_string(vm2));
-#if PN_CPP_HAS_CPP11
proton::value nn = nullptr;
ASSERT(n == nn); // Don't use ASSERT_EQUAL, it will try to print
ASSERT_EQUAL("null", to_string(nn));
@@ -114,7 +113,6 @@ void null_test() {
ASSERT_EQUAL("{null=null}", to_string(m));
std::map<proton::value, proton::value> m2 {{nullptr, nullptr}};
ASSERT_EQUAL("{null=null}", to_string(m2));
-#endif
}
}
@@ -163,11 +161,10 @@ int main(int, char**) {
restricted_pairs, "{:a=0, :b=1, :c=2}")));
RUN_TEST(failed, null_test());
-#if PN_CPP_HAS_CPP11
RUN_TEST(failed, sequence_test<forward_list<binary> >(
ARRAY, many<binary>() + binary("xx") + binary("yy"), "@PN_BINARY[b\"xx\", b\"yy\"]"));
RUN_TEST(failed, (map_test<unordered_map<string, uint64_t> >(si_pairs, "")));
-#endif
+
return failed;
} catch (const std::exception& e) {
std::cout << "ERROR in main(): " << e.what() << std::endl;
diff --git a/cpp/src/work_queue.cpp b/cpp/src/work_queue.cpp
index bb6f4f1..4c29b2f 100644
--- a/cpp/src/work_queue.cpp
+++ b/cpp/src/work_queue.cpp
@@ -43,13 +43,11 @@ bool work_queue::add(internal::v03::work f) {
return impl_->add(f);
}
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
bool work_queue::add(internal::v11::work f) {
// If we have no actual work queue, then can't defer
if (!impl_) return false;
return impl_->add(f);
}
-#endif
bool work_queue::add(void_function0& f) {
return add(make_work(&void_function0::operator(), &f));
@@ -61,13 +59,11 @@ void work_queue::schedule(duration d, internal::v03::work f) {
return impl_->schedule(d, f);
}
-#if PN_CPP_HAS_LAMBDAS && PN_CPP_HAS_VARIADIC_TEMPLATES
void work_queue::schedule(duration d, internal::v11::work f) {
// If we have no actual work queue, then can't defer
if (!impl_) return;
return impl_->schedule(d, f);
}
-#endif
void work_queue::schedule(duration d, void_function0& f) {
schedule(d, make_work(&void_function0::operator(), &f));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org