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 2017/09/19 20:10:10 UTC
[3/3] qpid-proton git commit: PROTON-1590: [C++ binding] Make sasl
and ssl objects copyable and assignable - Only ensure that they can't be
default constructed (as that makes little sense) - In retrospect only
allowing these objects to be copied/assigned
PROTON-1590: [C++ binding] Make sasl and ssl objects copyable and assignable
- Only ensure that they can't be default constructed (as that makes little sense)
- In retrospect only allowing these objects to be copied/assigned is harmless
- This fixes some issues when mixing C++03 and C++11 compilation
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/cdd86bcf
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/cdd86bcf
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/cdd86bcf
Branch: refs/heads/master
Commit: cdd86bcfe748bb979d7f7f1a07a73ed81b0acabe
Parents: 80d76d6
Author: Andrew Stitcher <as...@apache.org>
Authored: Mon Sep 18 11:32:50 2017 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Tue Sep 19 15:58:17 2017 -0400
----------------------------------------------------------------------
proton-c/bindings/cpp/include/proton/sasl.hpp | 14 ++++----------
proton-c/bindings/cpp/include/proton/ssl.hpp | 19 ++++++++++---------
.../bindings/cpp/src/include/proton_bits.hpp | 4 ----
proton-c/bindings/cpp/src/transport.cpp | 4 ++--
4 files changed, 16 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cdd86bcf/proton-c/bindings/cpp/include/proton/sasl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/sasl.hpp b/proton-c/bindings/cpp/include/proton/sasl.hpp
index e381dc7..a054086 100644
--- a/proton-c/bindings/cpp/include/proton/sasl.hpp
+++ b/proton-c/bindings/cpp/include/proton/sasl.hpp
@@ -41,19 +41,13 @@ class sasl {
sasl(pn_sasl_t* s) : object_(s) {}
/// @endcond
- public:
#if PN_CPP_HAS_DELETED_FUNCTIONS
sasl() = delete;
- sasl(const sasl&) = delete;
- sasl& operator=(const sasl&) = delete;
- sasl& operator=(sasl&&) = delete;
-#endif
-#if PN_CPP_HAS_DEFAULTED_FUNCTIONS
- /// @cond INTERNAL
- sasl(sasl&&) = default;
- /// @endcond
+#else
+ sasl();
#endif
+ public:
/// The result of the SASL negotiation.
enum outcome {
NONE = PN_SASL_NONE, ///< Negotiation not completed
@@ -77,7 +71,7 @@ class sasl {
private:
pn_sasl_t* const object_;
- friend class internal::factory<sasl>;
+ friend class transport;
/// @endcond
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cdd86bcf/proton-c/bindings/cpp/include/proton/ssl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/ssl.hpp b/proton-c/bindings/cpp/include/proton/ssl.hpp
index 8186f71..62a0dc4 100644
--- a/proton-c/bindings/cpp/include/proton/ssl.hpp
+++ b/proton-c/bindings/cpp/include/proton/ssl.hpp
@@ -23,6 +23,8 @@
*/
#include "./internal/export.hpp"
+#include "./internal/config.hpp"
+
#include <proton/ssl.h>
@@ -33,20 +35,19 @@
namespace proton {
-namespace internal {
-template <class T> class factory;
-}
-
/// SSL information.
class ssl {
/// @cond INTERNAL
ssl(pn_ssl_t* s) : object_(s) {}
/// @endcond
- public:
- /// Create an empty ssl object.
- ssl() : object_(0) {}
+#if PN_CPP_HAS_DELETED_FUNCTIONS
+ ssl() = delete;
+#else
+ ssl();
+#endif
+ public:
/// Determines the level of peer validation.
enum verify_mode {
/// Require peer to provide a valid identifying certificate
@@ -88,10 +89,10 @@ class ssl {
/// @endcond
private:
- pn_ssl_t* object_;
+ pn_ssl_t* const object_;
/// @cond INTERNAL
- friend class internal::factory<ssl>;
+ friend class transport;
/// @endcond
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cdd86bcf/proton-c/bindings/cpp/src/include/proton_bits.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/proton_bits.hpp b/proton-c/bindings/cpp/src/include/proton_bits.hpp
index 675249f..b6636f9 100644
--- a/proton-c/bindings/cpp/src/include/proton_bits.hpp
+++ b/proton-c/bindings/cpp/src/include/proton_bits.hpp
@@ -91,8 +91,6 @@ namespace internal {
template <class T> struct wrapped {};
template <> struct wrapped<internal::data> { typedef pn_data_t type; };
template <> struct wrapped<transport> { typedef pn_transport_t type; };
-template <> struct wrapped<sasl> { typedef pn_sasl_t type; };
-template <> struct wrapped<ssl> { typedef pn_ssl_t type; };
template <> struct wrapped<connection> { typedef pn_connection_t type; };
template <> struct wrapped<session> { typedef pn_session_t type; };
template <> struct wrapped<link> { typedef pn_link_t type; };
@@ -109,8 +107,6 @@ template <> struct wrapped<target> { typedef pn_terminus_t type; };
template <class T> struct wrapper {};
template <> struct wrapper<pn_data_t> { typedef internal::data type; };
template <> struct wrapper<pn_transport_t> { typedef transport type; };
-template <> struct wrapper<pn_sasl_t> { typedef sasl type; };
-template <> struct wrapper<pn_ssl_t> { typedef ssl type; };
template <> struct wrapper<pn_connection_t> { typedef connection type; };
template <> struct wrapper<pn_session_t> { typedef session type; };
template <> struct wrapper<pn_link_t> { typedef link type; };
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cdd86bcf/proton-c/bindings/cpp/src/transport.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/transport.cpp b/proton-c/bindings/cpp/src/transport.cpp
index da3119e..bd487dd 100644
--- a/proton-c/bindings/cpp/src/transport.cpp
+++ b/proton-c/bindings/cpp/src/transport.cpp
@@ -39,11 +39,11 @@ connection transport::connection() const {
}
class ssl transport::ssl() const {
- return make_wrapper(pn_ssl(pn_object()));
+ return pn_ssl(pn_object());
}
class sasl transport::sasl() const {
- return make_wrapper(pn_sasl(pn_object()));
+ return pn_sasl(pn_object());
}
error_condition transport::error() const {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org