You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/01/10 15:58:57 UTC
[36/55] [partial] qpid-proton-j git commit: PROTON-1385: retain
proton-j content only, the rest remains in the other repo at:
https://git-wip-us.apache.org/repos/asf/qpid-proton.git
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/sender_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/sender_options.hpp b/proton-c/bindings/cpp/include/proton/sender_options.hpp
deleted file mode 100644
index 9d7bb42..0000000
--- a/proton-c/bindings/cpp/include/proton/sender_options.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef PROTON_SENDER_OPTIONS_HPP
-#define PROTON_SENDER_OPTIONS_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./internal/pn_unique_ptr.hpp"
-#include "./delivery_mode.hpp"
-
-namespace proton {
-
-/// Options for creating a sender.
-///
-/// Options can be "chained" like this:
-///
-/// @code
-/// l = container.create_sender(url, sender_options().handler(h).auto_settle(false));
-/// @endcode
-///
-/// You can also create an options object with common settings and use
-/// it as a base for different connections that have mostly the same
-/// settings:
-///
-/// @code
-/// sender_options opts;
-/// opts.browsing(true);
-/// l1 = container.open_sender(url1, opts.handler(h1));
-/// c2 = container.open_receiver(url2, opts.handler(h2));
-/// @endcode
-///
-/// Normal value semantics: copy or assign creates a separate copy of
-/// the options.
-// XXX opts.browsing is not a good example here
-class sender_options {
- public:
- /// Create an empty set of options.
- PN_CPP_EXTERN sender_options();
-
- /// Copy options.
- PN_CPP_EXTERN sender_options(const sender_options&);
-
- PN_CPP_EXTERN ~sender_options();
-
- /// Copy options.
- PN_CPP_EXTERN sender_options& operator=(const sender_options&);
-
- /// Merge with another option set
- PN_CPP_EXTERN void update(const sender_options& other);
-
- /// Set a messaging_handler for sender events only.
- /// The handler is no longer in use when messaging_handler::on_sender_close() is called.
- /// messaging_handler::on_sender_close() may not be called if a connection is aborted,
- /// in that case it should be cleaned up in its connection's messaging_handler::on_transport_close()
- PN_CPP_EXTERN sender_options& handler(class messaging_handler&);
-
- /// Set the delivery mode on the sender.
- PN_CPP_EXTERN sender_options& delivery_mode(delivery_mode);
-
- /// Automatically settle messages (default is true).
- PN_CPP_EXTERN sender_options& auto_settle(bool);
-
- /// Options for the source node of the sender.
- PN_CPP_EXTERN sender_options& source(const source_options &);
-
- /// Options for the receiver node of the receiver.
- PN_CPP_EXTERN sender_options& target(const target_options &);
-
- /// @cond INTERNAL
- private:
- void apply(sender&) const;
-
- class impl;
- internal::pn_unique_ptr<impl> impl_;
-
- friend class sender;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_SENDER_OPTIONS_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/session.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/session.hpp b/proton-c/bindings/cpp/include/proton/session.hpp
deleted file mode 100644
index cbdf1b9..0000000
--- a/proton-c/bindings/cpp/include/proton/session.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef PROTON_SESSION_HPP
-#define PROTON_SESSION_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./endpoint.hpp"
-#include "./receiver.hpp"
-#include "./sender.hpp"
-
-#include <string>
-
-struct pn_session_t;
-
-namespace proton {
-
-/// A container of senders and receivers.
-class
-PN_CPP_CLASS_EXTERN session : public internal::object<pn_session_t>, public endpoint {
- public:
- /// @cond INTERNAL
- PN_CPP_EXTERN session(pn_session_t* s) : internal::object<pn_session_t>(s) {}
- /// @endcond
-
- public:
- /// Create an empty session.
- session() : internal::object<pn_session_t>(0) {}
-
- PN_CPP_EXTERN bool uninitialized() const;
- PN_CPP_EXTERN bool active() const;
- PN_CPP_EXTERN bool closed() const;
-
- PN_CPP_EXTERN class error_condition error() const;
-
- /// Open the session.
- ///
- /// @see endpoint_lifecycle
- PN_CPP_EXTERN void open();
-
- /// @copydoc open
- PN_CPP_EXTERN void open(const session_options &opts);
-
- PN_CPP_EXTERN void close();
- PN_CPP_EXTERN void close(const error_condition&);
-
- /// Get the container for this session.
- PN_CPP_EXTERN class container &container() const;
-
- /// Get the connection this session belongs to.
- PN_CPP_EXTERN class connection connection() const;
-
- /// Open a sender for `addr`.
- PN_CPP_EXTERN sender open_sender(const std::string &addr);
-
- /// @copydoc open_sender
- PN_CPP_EXTERN sender open_sender(const std::string &addr, const sender_options &opts);
-
- /// Open a receiver for `addr`.
- PN_CPP_EXTERN receiver open_receiver(const std::string &addr);
-
- /// @copydoc open_receiver
- PN_CPP_EXTERN receiver open_receiver(const std::string &addr, const receiver_options &opts);
-
- /// The number of incoming bytes currently buffered.
- PN_CPP_EXTERN size_t incoming_bytes() const;
-
- /// The number of outgoing bytes currently buffered.
- PN_CPP_EXTERN size_t outgoing_bytes() const;
-
- /// Return the senders on this session.
- PN_CPP_EXTERN sender_range senders() const;
-
- /// Return the receivers on this session.
- PN_CPP_EXTERN receiver_range receivers() const;
-
- /// @cond INTERNAL
- friend class internal::factory<session>;
- friend class session_iterator;
- friend class thread_safe<session>;
- /// @endcond
-};
-
-/// @cond INTERNAL
-
-/// An iterator of sessions.
-class session_iterator : public internal::iter_base<session, session_iterator> {
- public:
- explicit session_iterator(session s = 0) : internal::iter_base<session, session_iterator>(s) {}
-
- /// Advance to the next session.
- PN_CPP_EXTERN session_iterator operator++();
-};
-
-/// A range of sessions.
-typedef internal::iter_range<session_iterator> session_range;
-
-/// @endcond
-
-} // proton
-
-#endif // PROTON_SESSION_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/session_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/session_options.hpp b/proton-c/bindings/cpp/include/proton/session_options.hpp
deleted file mode 100644
index eb47a89..0000000
--- a/proton-c/bindings/cpp/include/proton/session_options.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef PROTON_SESSION_OPTIONS_HPP
-#define PROTON_SESSION_OPTIONS_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./internal/pn_unique_ptr.hpp"
-
-namespace proton {
-
-/// Options for creating a session.
-///
-/// Options can be "chained" (see proton::connection_options).
-///
-/// Normal value semantics: copy or assign creates a separate copy of
-/// the options.
-// XXX Does this need the CLASS_EXTERN stuff? - Add just for consistency
-class session_options {
- public:
- /// Create an empty set of options.
- PN_CPP_EXTERN session_options();
-
- /// Copy options.
- PN_CPP_EXTERN session_options(const session_options&);
-
- PN_CPP_EXTERN ~session_options();
-
- /// Copy options.
- PN_CPP_EXTERN session_options& operator=(const session_options&);
-
- /// Set a messaging_handler for the session.
- PN_CPP_EXTERN session_options& handler(class messaging_handler &);
-
- /// @cond INTERNAL
- // Other useful session configuration TBD.
- private:
- void apply(session&) const;
-
- class impl;
- internal::pn_unique_ptr<impl> impl_;
-
- friend class session;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_SESSION_OPTIONS_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/source.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/source.hpp b/proton-c/bindings/cpp/include/proton/source.hpp
deleted file mode 100644
index 321af9a..0000000
--- a/proton-c/bindings/cpp/include/proton/source.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef PROTON_SOURCE_HPP
-#define PROTON_SOURCE_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./internal/cached_map.hpp"
-#include "./symbol.hpp"
-#include "./terminus.hpp"
-#include "./value.hpp"
-
-#include <string>
-
-struct pn_terminus_t;
-
-namespace proton {
-
-/// A point of origin for messages.
-///
-/// @see proton::sender, proton::receiver, proton::target
-class source : public terminus {
- public:
- /// **Experimental** - A map of AMQP symbol keys and filter
- /// specifiers.
- class filter_map : public internal::cached_map<symbol, value> {};
-
- /// Create an empty source.
- source() : terminus() {}
-
- /// The policy for distributing messages.
- enum distribution_mode {
- // XXX Why is unspecified needed? The protocol doesn't have
- // it.
- /// Unspecified
- UNSPECIFIED = PN_DIST_MODE_UNSPECIFIED,
- /// Once transferred, the message remains available to other links
- COPY = PN_DIST_MODE_COPY,
- /// Once transferred, the message is unavailable to other links
- MOVE = PN_DIST_MODE_MOVE
- };
-
- using terminus::durability_mode;
- using terminus::expiry_policy;
-
- /// The address of the source.
- PN_CPP_EXTERN std::string address() const;
-
- /// Get the distribution mode.
- PN_CPP_EXTERN enum distribution_mode distribution_mode() const;
-
- /// **Experimental** - Obtain the set of message filters.
- PN_CPP_EXTERN filter_map filters() const;
-
- private:
- source(pn_terminus_t* t);
- source(const sender&);
- source(const receiver&);
-
- /// @cond INTERNAL
- friend class proton::internal::factory<source>;
- friend class sender;
- friend class receiver;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_SOURCE_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/source_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/source_options.hpp b/proton-c/bindings/cpp/include/proton/source_options.hpp
deleted file mode 100644
index f7dde48..0000000
--- a/proton-c/bindings/cpp/include/proton/source_options.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef PROTON_SOURCE_OPTIONS_HPP
-#define PROTON_SOURCE_OPTIONS_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.
- *
- */
-
-#include "./internal/export.hpp"
-#include "./internal/pn_unique_ptr.hpp"
-#include "./duration.hpp"
-#include "./source.hpp"
-
-#include <string>
-
-namespace proton {
-
-/// Options for creating a source node for a sender or receiver.
-///
-/// Options can be "chained" (@see proton::connection_options).
-///
-/// Normal value semantics: copy or assign creates a separate copy of
-/// the options.
-class source_options {
- public:
-
- /// Create an empty set of options.
- PN_CPP_EXTERN source_options();
-
- /// Copy options.
- PN_CPP_EXTERN source_options(const source_options&);
-
- PN_CPP_EXTERN ~source_options();
-
- /// Copy options.
- PN_CPP_EXTERN source_options& operator=(const source_options&);
-
- /// Set the address for the source. Ignored if dynamic is true.
- PN_CPP_EXTERN source_options& address(const std::string&);
-
- /// Request a dynamically created node to be created by the remote peer.
- /// Any specified source address is ignored.
- PN_CPP_EXTERN source_options& dynamic(bool);
-
- /// Control whether messsages are browsed or consumed.
- PN_CPP_EXTERN source_options& distribution_mode(enum source::distribution_mode);
-
- /// Control the persistence of source state.
- PN_CPP_EXTERN source_options& durability_mode(enum source::durability_mode);
-
- /// The expiry period after which the source is discarded.
- PN_CPP_EXTERN source_options& timeout(duration);
-
- /// Control when the clock for expiration begins.
- PN_CPP_EXTERN source_options& expiry_policy(enum source::expiry_policy);
-
- /// **Experimental** - Specify a filter mechanism on the source
- /// that restricts message flow to a subset of the available
- /// messages.
- PN_CPP_EXTERN source_options& filters(const source::filter_map&);
-
- private:
- void apply(source&) const;
-
- class impl;
- internal::pn_unique_ptr<impl> impl_;
-
- /// @cond INTERNAL
- friend class source;
- friend class sender_options;
- friend class receiver_options;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_SOURCE_OPTIONS_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/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
deleted file mode 100644
index c6c4c93..0000000
--- a/proton-c/bindings/cpp/include/proton/ssl.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-#ifndef PROTON_SSL_HPP
-#define PROTON_SSL_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.
- *
- */
-
-#include "./internal/export.hpp"
-
-#include <proton/ssl.h>
-
-#include <string>
-
-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) {}
-
- /// Determines the level of peer validation.
- enum verify_mode {
- /// Require peer to provide a valid identifying certificate
- VERIFY_PEER = PN_SSL_VERIFY_PEER,
- /// Do not require a certificate or cipher authorization
- ANONYMOUS_PEER = PN_SSL_ANONYMOUS_PEER,
- /// Require valid certificate and matching name
- VERIFY_PEER_NAME = PN_SSL_VERIFY_PEER_NAME
- };
-
- /// Outcome specifier for an attempted session resume.
- enum resume_status {
- UNKNOWN = PN_SSL_RESUME_UNKNOWN, ///< Session resume state unknown or not supported
- NEW = PN_SSL_RESUME_NEW, ///< Session renegotiated, not resumed
- REUSED = PN_SSL_RESUME_REUSED ///< Session resumed from previous session
- };
-
- /// @cond INTERNAL
-
- /// XXX C API uses cipher_name
- /// Get the cipher name.
- PN_CPP_EXTERN std::string cipher() const;
-
- /// XXX C API uses protocol_name
- /// Get the protocol name.
- PN_CPP_EXTERN std::string protocol() const;
-
- /// Get the security strength factor.
- PN_CPP_EXTERN int ssf() const;
-
- /// XXX discuss, what's the meaning of "remote" here?
- PN_CPP_EXTERN std::string remote_subject() const;
-
- /// XXX setters? versus connection options
- PN_CPP_EXTERN void resume_session_id(const std::string& session_id);
-
- PN_CPP_EXTERN enum resume_status resume_status() const;
-
- /// @endcond
-
- private:
- pn_ssl_t* object_;
-
- /// @cond INTERNAL
- friend class internal::factory<ssl>;
- /// @endcond
-};
-
-/// **Experimental** - An SSL certificate.
-class ssl_certificate {
- public:
- /// Create an SSL certificate.
- PN_CPP_EXTERN ssl_certificate(const std::string &certdb_main);
-
- // XXX Document the following constructors
-
- /// @copydoc ssl_certificate
- PN_CPP_EXTERN ssl_certificate(const std::string &certdb_main, const std::string &certdb_extra);
-
- /// @copydoc ssl_certificate
- PN_CPP_EXTERN ssl_certificate(const std::string &certdb_main, const std::string &certdb_extra, const std::string &passwd);
- /// @endcond
-
- private:
- std::string certdb_main_;
- std::string certdb_extra_;
- std::string passwd_;
- bool pw_set_;
-
- /// @cond INTERNAL
- friend class ssl_client_options;
- friend class ssl_server_options;
- /// @endcond
-};
-
-class ssl_domain_impl;
-
-namespace internal {
-
-// Base class for SSL configuration
-class ssl_domain {
- public:
- PN_CPP_EXTERN ssl_domain(const ssl_domain&);
- PN_CPP_EXTERN ssl_domain& operator=(const ssl_domain&);
- PN_CPP_EXTERN ~ssl_domain();
-
- protected:
- ssl_domain(bool is_server);
- pn_ssl_domain_t *pn_domain();
-
- private:
- ssl_domain_impl *impl_;
- bool server_type_;
-};
-
-}
-
-/// **Experimental** - SSL configuration for inbound connections.
-class ssl_server_options : private internal::ssl_domain {
- public:
- /// Server SSL options based on the supplied X.509 certificate
- /// specifier.
- PN_CPP_EXTERN ssl_server_options(ssl_certificate &cert);
-
- /// Server SSL options requiring connecting clients to provide a
- /// client certificate.
- PN_CPP_EXTERN ssl_server_options(ssl_certificate &cert, const std::string &trust_db,
- const std::string &advertise_db = std::string(),
- enum ssl::verify_mode mode = ssl::VERIFY_PEER);
-
- /// Server SSL options restricted to available anonymous cipher
- /// suites on the platform.
- PN_CPP_EXTERN ssl_server_options();
-
- private:
- // Bring pn_domain into scope and allow connection_options to use
- // it.
- using internal::ssl_domain::pn_domain;
-
- /// @cond INTERNAL
- friend class connection_options;
- /// @endcond
-};
-
-/// **Experimental** - SSL configuration for outbound connections.
-class ssl_client_options : private internal::ssl_domain {
- public:
- /// Create SSL client options (no client certificate).
- PN_CPP_EXTERN ssl_client_options(const std::string &trust_db,
- enum ssl::verify_mode = ssl::VERIFY_PEER_NAME);
-
- /// Create SSL client options with a client certificate.
- PN_CPP_EXTERN ssl_client_options(ssl_certificate&, const std::string &trust_db,
- enum ssl::verify_mode = ssl::VERIFY_PEER_NAME);
-
- /// SSL connections restricted to available anonymous cipher
- /// suites on the platform.
- PN_CPP_EXTERN ssl_client_options();
-
- private:
- // Bring pn_domain into scope and allow connection_options to use
- // it.
- using internal::ssl_domain::pn_domain;
-
- /// @cond INTERNAL
- friend class connection_options;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_SSL_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/symbol.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/symbol.hpp b/proton-c/bindings/cpp/include/proton/symbol.hpp
deleted file mode 100644
index 303f350..0000000
--- a/proton-c/bindings/cpp/include/proton/symbol.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef PROTON_SYMBOL_HPP
-#define PROTON_SYMBOL_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.
- *
- */
-
-#include <string>
-
-namespace proton {
-
-/// A std::string that represents the AMQP symbol type.
-///
-/// A symbol can only contain 7-bit ASCII characters.
-class symbol : public std::string {
- public:
- /// Construct from a std::string.
- symbol(const std::string& s=std::string()) : std::string(s) {}
-
- /// Construct from a C string.
- symbol(const char* s) : std::string(s) {}
-
- /// Construct from any sequence of char.
- template<class Iter> symbol(Iter start, Iter finish) : std::string(start, finish) {}
-};
-
-} // proton
-
-#endif // PROTON_SYMBOL_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/target.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/target.hpp b/proton-c/bindings/cpp/include/proton/target.hpp
deleted file mode 100644
index 746133a..0000000
--- a/proton-c/bindings/cpp/include/proton/target.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef PROTON_TARGET_HPP
-#define PROTON_TARGET_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./terminus.hpp"
-
-#include <string>
-
-struct pn_terminus_t;
-
-namespace proton {
-
-namespace internal {
-template <class T> class factory;
-}
-
-/// A destination for messages.
-///
-/// @see proton::sender, proton::receiver, proton::target
-class target : public terminus {
- public:
- /// Create an empty target.
- target() : terminus() {}
-
- using terminus::durability_mode;
- using terminus::expiry_policy;
-
- /// The address of the target.
- PN_CPP_EXTERN std::string address() const;
-
- private:
- target(pn_terminus_t* t);
- target(const sender&);
- target(const receiver&);
-
- /// @cond INTERNAL
- friend class internal::factory<target>;
- friend class sender;
- friend class receiver;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_TARGET_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/target_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/target_options.hpp b/proton-c/bindings/cpp/include/proton/target_options.hpp
deleted file mode 100644
index 547dbbe..0000000
--- a/proton-c/bindings/cpp/include/proton/target_options.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef PROTON_TARGET_OPTIONS_HPP
-#define PROTON_TARGET_OPTIONS_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.
- *
- */
-
-#include "./internal/export.hpp"
-#include "./internal/pn_unique_ptr.hpp"
-#include "./duration.hpp"
-#include "./target.hpp"
-
-#include <string>
-
-namespace proton {
-
-/// Options for creating a target node for a sender or receiver.
-///
-/// Options can be "chained" (see proton::connection_options).
-///
-/// Normal value semantics: copy or assign creates a separate copy of
-/// the options.
-class target_options {
- public:
- /// Create an empty set of options.
- PN_CPP_EXTERN target_options();
-
- /// Copy options.
- PN_CPP_EXTERN target_options(const target_options&);
-
- PN_CPP_EXTERN ~target_options();
-
- /// Copy options.
- PN_CPP_EXTERN target_options& operator=(const target_options&);
-
- /// Set the address for the target. Ignored if dynamic is true.
- PN_CPP_EXTERN target_options& address(const std::string& addr);
-
- /// Request a dynamically created node to be created by the peer.
- /// Any specified target address is ignored.
- PN_CPP_EXTERN target_options& dynamic(bool);
-
- /// Control the persistence of target state.
- PN_CPP_EXTERN target_options& durability_mode(enum target::durability_mode);
-
- /// The expiry period after which the target is discarded.
- PN_CPP_EXTERN target_options& timeout(duration);
-
- /// Control when the clock for expiration begins.
- PN_CPP_EXTERN target_options& expiry_policy(enum target::expiry_policy);
-
- private:
- void apply(target&) const;
-
- class impl;
- internal::pn_unique_ptr<impl> impl_;
-
- /// @cond INTERNAL
- friend class target;
- friend class sender_options;
- friend class receiver_options;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_TARGET_OPTIONS_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/terminus.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/terminus.hpp b/proton-c/bindings/cpp/include/proton/terminus.hpp
deleted file mode 100644
index b63a8ad..0000000
--- a/proton-c/bindings/cpp/include/proton/terminus.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef PROTON_TERMINUS_HPP
-#define PROTON_TERMINUS_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.
- *
- */
-
-#include "./types_fwd.hpp"
-#include "./internal/export.hpp"
-
-#include <proton/terminus.h>
-
-#include <string>
-
-struct pn_link_t;
-struct pn_terminus_t;
-
-namespace proton {
-
-namespace internal {
-template <class T> class factory;
-}
-
-/// One end of a link, either a source or a target.
-///
-/// The source terminus is where messages originate; the target
-/// terminus is where they go.
-///
-/// @see proton::link
-class terminus {
- /// @cond INTERNAL
- terminus(pn_terminus_t* t);
- /// @endcond
-
- public:
- terminus() : object_(0), parent_(0) {}
-
- /// The persistence mode of the source or target.
- enum durability_mode {
- /// No persistence.
- NONDURABLE = PN_NONDURABLE,
- /// Only configuration is persisted.
- CONFIGURATION = PN_CONFIGURATION,
- /// Configuration and unsettled state are persisted.
- UNSETTLED_STATE = PN_DELIVERIES
- };
-
- /// When expiration of the source or target begins.
- enum expiry_policy {
- /// When the link is closed.
- LINK_CLOSE = PN_EXPIRE_WITH_LINK,
- /// When the containing session is closed.
- SESSION_CLOSE = PN_EXPIRE_WITH_SESSION,
- /// When the containing connection is closed.
- CONNECTION_CLOSE = PN_EXPIRE_WITH_CONNECTION,
- /// The terminus never expires.
- NEVER = PN_EXPIRE_NEVER
- };
-
- // XXX This should have address?
-
- /// Get the policy for when expiration begins.
- PN_CPP_EXTERN enum expiry_policy expiry_policy() const;
-
- /// The period after which the source is discarded on expiry. The
- /// duration is rounded to the nearest second.
- PN_CPP_EXTERN duration timeout() const;
-
- /// Get the durability flag.
- PN_CPP_EXTERN enum durability_mode durability_mode();
-
- /// True if the remote node is created dynamically.
- PN_CPP_EXTERN bool dynamic() const;
-
- /// Obtain a reference to the AMQP dynamic node properties for the
- /// terminus. See also lifetime_policy.
- PN_CPP_EXTERN value node_properties() const;
-
- protected:
- pn_terminus_t *pn_object() { return object_; }
- private:
- pn_terminus_t* object_;
- pn_link_t* parent_;
-
- /// @cond INTERNAL
- friend class internal::factory<terminus>;
- friend class source;
- friend class target;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_TERMINUS_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/thread_safe.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/thread_safe.hpp b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
deleted file mode 100644
index 608a1ca..0000000
--- a/proton-c/bindings/cpp/include/proton/thread_safe.hpp
+++ /dev/null
@@ -1,178 +0,0 @@
-#ifndef PROTON_THREAD_SAFE_HPP
-#define PROTON_THREAD_SAFE_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/config.hpp"
-#include "./connection.hpp"
-#include "./event_loop.hpp"
-#include "./function.hpp"
-#include "./internal/object.hpp"
-#include "./internal/type_traits.hpp"
-
-#include <functional>
-
-namespace proton {
-
-namespace internal {
-template <class T> struct endpoint_traits;
-template<> struct endpoint_traits<connection> {};
-template<> struct endpoint_traits<session> {};
-template<> struct endpoint_traits<link> {};
-template<> struct endpoint_traits<sender> {};
-template<> struct endpoint_traits<receiver> {};
-}
-
-/// **Experimental** - A thread-safe object wrapper.
-///
-/// The proton::object subclasses (proton::connection, proton::sender etc.) are
-/// reference-counted wrappers for C structs. They are not safe for concurrent use,
-/// not even to copy or assign.
-///
-/// A pointer to thread_safe<> can be used from any thread to get the
-/// proton::event_loop for the object's connection. The object will not be
-/// destroyed until the thread_safe<> is deleted. You can use std::shared_ptr,
-/// std::unique_ptr or any other memory management technique to manage the
-/// thread_safe<>.
-///
-/// Use make_thread_safe(), make_shared_thread_safe(), make_unique_thread_safe() to
-/// create a thread_safe<>
-///
-/// @see @ref mt_page
-template <class T>
-class thread_safe : private internal::pn_ptr_base, private internal::endpoint_traits<T> {
- typedef typename T::pn_type pn_type;
-
- struct inject_decref : public void_function0 {
- pn_type* ptr_;
- inject_decref(pn_type* p) : ptr_(p) {}
- void operator()() PN_CPP_OVERRIDE { decref(ptr_); delete this; }
- };
-
- public:
- /// @cond INTERNAL
- static void operator delete(void*) {}
- /// @endcond
-
- ~thread_safe() {
- if (ptr()) {
- if (!!event_loop()) {
-#if PN_CPP_HAS_STD_BIND
- event_loop().inject(std::bind(&decref, ptr()));
-#else
- event_loop().inject(*new inject_decref(ptr()));
-#endif
- } else {
- decref(ptr());
- }
- }
- }
-
- /// Get the event loop for this object.
- class event_loop& event_loop() { return event_loop::get(ptr()); }
-
- /// Get the thread-unsafe proton object wrapped by this thread_safe<T>
- T unsafe() { return T(ptr()); }
-
- private:
- static thread_safe* create(const T& obj) { return new (obj.pn_object()) thread_safe(); }
- static void* operator new(size_t, pn_type* p) { return p; }
- static void operator delete(void*, pn_type*) {}
- thread_safe() { incref(ptr()); }
- pn_type* ptr() { return reinterpret_cast<pn_type*>(this); }
-
-
- // Non-copyable.
- thread_safe(const thread_safe&);
- thread_safe& operator=(const thread_safe&);
-
- /// @cond INTERNAL
- friend class returned<T>;
- /// @endcond
-};
-
-// A return value for functions returning a thread_safe<> object.
-//
-// Temporary return value only, you should release() to get a plain pointer or
-// assign to a smart pointer type.
-template <class T>
-class returned : private internal::endpoint_traits<T>
-{
- public:
- /// Take ownership
- explicit returned(thread_safe<T>* p) : ptr_(p) {}
- /// Create an owned thread_safe<T>
- explicit returned(const T& obj) : ptr_(thread_safe<T>::create(obj)) {}
- /// Transfer ownership.
- /// Use the same "cheat" as std::auto_ptr, calls x.release() even though x is const.
- returned(const returned& x) : ptr_(const_cast<returned&>(x).release()) {}
- /// Delete if still owned.
- ~returned() { if (ptr_) delete ptr_; }
-
- /// Release ownership.
- thread_safe<T>* release() const { thread_safe<T>* p = ptr_; ptr_ = 0; return p; }
-
- /// Get the raw pointer, caller must not delete.
- thread_safe<T>* get() const { return ptr_; }
-
- /// Implicit conversion to target, usable only in a safe context.
- operator T() { return ptr_->unsafe(); }
-
-#if PN_CPP_HAS_SHARED_PTR
- /// Release to a std::shared_ptr
- operator std::shared_ptr<thread_safe<T> >() {
- return std::shared_ptr<thread_safe<T> >(release());
- }
-#endif
-#if PN_CPP_HAS_UNIQUE_PTR
- /// Release to a std::unique_ptr
- operator std::unique_ptr<thread_safe<T> >() {
- return std::unique_ptr<thread_safe<T> >(release());
- }
-#endif
-
- private:
- void operator=(const returned&);
- mutable thread_safe<T>* ptr_;
-};
-
-/// Make a thread-safe wrapper for `obj`.
-template <class T> returned<T> make_thread_safe(const T& obj) { return returned<T>(obj); }
-
-#if PN_CPP_HAS_SHARED_PTR
-/// Create a thread-safe shared_ptr to `obj`.
-template <class T> std::shared_ptr<thread_safe<T> > make_shared_thread_safe(const T& obj) {
- return make_thread_safe(obj);
-}
-#endif
-#if PN_CPP_HAS_UNIQUE_PTR
-/// Create a thread-safe unique_ptr to `obj`.
-template <class T> std::unique_ptr<thread_safe<T> > make_unique_thread_safe(const T& obj) {
- return make_thread_safe(obj);
-}
-
-#endif
-
-} // proton
-
-#endif // PROTON_THREAD_SAFE_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/timestamp.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/timestamp.hpp b/proton-c/bindings/cpp/include/proton/timestamp.hpp
deleted file mode 100644
index 6e4281b..0000000
--- a/proton-c/bindings/cpp/include/proton/timestamp.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef PROTON_TIMESTAMP_HPP
-#define PROTON_TIMESTAMP_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.
- */
-
-#include "./duration.hpp"
-
-#include <proton/type_compat.h>
-
-namespace proton {
-
-/// A 64-bit timestamp in milliseconds since the Unix epoch.
-///
-/// The dawn of the Unix epoch was 00:00:00 (UTC), 1 January 1970.
-class timestamp : private internal::comparable<timestamp> {
- public:
- /// A numeric type holding a milliseconds value.
- typedef int64_t numeric_type;
-
- /// The current wall-clock time.
- PN_CPP_EXTERN static timestamp now();
-
- /// Construct from milliseconds.
- explicit timestamp(numeric_type ms = 0) : ms_(ms) {}
-
- /// Assign from milliseconds.
- timestamp& operator=(numeric_type ms) { ms_ = ms; return *this; }
-
- /// Get milliseconds.
- numeric_type milliseconds() const { return ms_; }
-
- private:
- numeric_type ms_;
-};
-
-/// @name Comparison and arithmetic operators
-/// @{
-inline bool operator==(timestamp x, timestamp y) { return x.milliseconds() == y.milliseconds(); }
-inline bool operator<(timestamp x, timestamp y) { return x.milliseconds() < y.milliseconds(); }
-
-inline timestamp operator+(timestamp ts, duration d) { return timestamp(ts.milliseconds() + d.milliseconds()); }
-inline duration operator-(timestamp t0, timestamp t1) { return duration(t0.milliseconds() - t1.milliseconds()); }
-inline timestamp operator+(duration d, timestamp ts) { return ts + d; }
-/// @}
-
-/// Printable format.
-PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, timestamp);
-
-} // proton
-
-#endif // PROTON_TIMESTAMP_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/tracker.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/tracker.hpp b/proton-c/bindings/cpp/include/proton/tracker.hpp
deleted file mode 100644
index 408b04d..0000000
--- a/proton-c/bindings/cpp/include/proton/tracker.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef PROTON_TRACKER_HPP
-#define PROTON_TRACKER_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.
- *
- */
-
-#include "./internal/export.hpp"
-#include "./transfer.hpp"
-
-struct pn_delivery_t;
-
-namespace proton {
-
-/// A tracker for a sent message. Every tracker exists within the
-/// context of a sender.
-///
-/// A delivery attempt can fail. As a result, a particular message may
-/// correspond to multiple trackers.
-class tracker : public transfer {
- /// @cond INTERNAL
- tracker(pn_delivery_t* d);
- /// @endcond
-
- public:
- /// Create an empty tracker.
- tracker() {}
-
- /// Get the sender for this tracker.
- PN_CPP_EXTERN class sender sender() const;
-
- // @cond INTERNAL
- friend class internal::factory<tracker>;
- // @endcond
-};
-
-} // proton
-
-#endif // PROTON_TRACKER_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/transfer.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/transfer.hpp b/proton-c/bindings/cpp/include/proton/transfer.hpp
deleted file mode 100644
index ea073f6..0000000
--- a/proton-c/bindings/cpp/include/proton/transfer.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef PROTON_TRANSFER_HPP
-#define PROTON_TRANSFER_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./internal/object.hpp"
-
-#include <proton/disposition.h>
-
-struct pn_delivery_t;
-
-namespace proton {
-
-/// The base class for delivery and tracker.
-class transfer : public internal::object<pn_delivery_t> {
- /// @cond INTERNAL
- transfer(pn_delivery_t* d) : internal::object<pn_delivery_t>(d) {}
- /// @endcond
-
- public:
- /// Create an empty transfer.
- transfer() : internal::object<pn_delivery_t>(0) {}
-
- /// Delivery state values.
- enum state {
- NONE = 0, ///< Unknown state
- RECEIVED = PN_RECEIVED, ///< Received but not yet settled
- ACCEPTED = PN_ACCEPTED, ///< Settled as accepted
- REJECTED = PN_REJECTED, ///< Settled as rejected
- RELEASED = PN_RELEASED, ///< Settled as released
- MODIFIED = PN_MODIFIED ///< Settled as modified
- }; // AMQP spec 3.4 delivery State
-
- /// Get the remote state for a delivery.
- PN_CPP_EXTERN enum state state() const;
-
- /// Return the session for this transfer.
- PN_CPP_EXTERN class session session() const;
-
- /// Return the connection for this transfer.
- PN_CPP_EXTERN class connection connection() const;
-
- /// Return the container for this transfer.
- PN_CPP_EXTERN class container &container() const;
-
- /// Settle the delivery; informs the remote end.
- PN_CPP_EXTERN void settle();
-
- /// Return true if the transfer has been settled.
- PN_CPP_EXTERN bool settled() const;
-
- /// @cond INTERNAL
- friend class internal::factory<transfer>;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_TRANSFER_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/transport.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/transport.hpp b/proton-c/bindings/cpp/include/proton/transport.hpp
deleted file mode 100644
index 614eff2..0000000
--- a/proton-c/bindings/cpp/include/proton/transport.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef PROTON_TRANSPORT_HPP
-#define PROTON_TRANSPORT_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.
- *
- */
-
-#include "./fwd.hpp"
-#include "./internal/export.hpp"
-#include "./internal/object.hpp"
-
-struct pn_transport_t;
-
-namespace proton {
-
-/// A network channel supporting an AMQP connection.
-class transport : public internal::object<pn_transport_t> {
- /// @cond INTERNAL
- transport(pn_transport_t* t) : internal::object<pn_transport_t>(t) {}
- /// @endcond
-
- public:
- /// Create an empty transport.
- transport() : internal::object<pn_transport_t>(0) {}
-
- /// Get the connection associated with this transport.
- PN_CPP_EXTERN class connection connection() const;
-
- /// Get SSL information.
- PN_CPP_EXTERN class ssl ssl() const;
-
- /// Get SASL information.
- PN_CPP_EXTERN class sasl sasl() const;
-
- /// Get the error condition.
- PN_CPP_EXTERN class error_condition error() const;
-
- /// @cond INTERNAL
- friend class internal::factory<transport>;
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_TRANSPORT_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/type_id.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/type_id.hpp b/proton-c/bindings/cpp/include/proton/type_id.hpp
deleted file mode 100644
index 4460eb6..0000000
--- a/proton-c/bindings/cpp/include/proton/type_id.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef PROTON_TYPE_ID_HPP
-#define PROTON_TYPE_ID_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.
- *
- */
-
-/// @file
-///
-/// Type-identifiers for AMQP types.
-
-#include "./internal/export.hpp"
-
-#include <proton/codec.h>
-
-#include <string>
-
-namespace proton {
-
-/// An identifier for AMQP types.
-enum type_id {
- NULL_TYPE = PN_NULL, ///< The null type, contains no data.
- BOOLEAN = PN_BOOL, ///< Boolean true or false.
- UBYTE = PN_UBYTE, ///< Unsigned 8-bit integer.
- BYTE = PN_BYTE, ///< Signed 8-bit integer.
- USHORT = PN_USHORT, ///< Unsigned 16-bit integer.
- SHORT = PN_SHORT, ///< Signed 16-bit integer.
- UINT = PN_UINT, ///< Unsigned 32-bit integer.
- INT = PN_INT, ///< Signed 32-bit integer.
- CHAR = PN_CHAR, ///< 32-bit unicode character.
- ULONG = PN_ULONG, ///< Unsigned 64-bit integer.
- LONG = PN_LONG, ///< Signed 64-bit integer.
- TIMESTAMP = PN_TIMESTAMP, ///< Signed 64-bit milliseconds since the epoch.
- FLOAT = PN_FLOAT, ///< 32-bit binary floating point.
- DOUBLE = PN_DOUBLE, ///< 64-bit binary floating point.
- DECIMAL32 = PN_DECIMAL32, ///< 32-bit decimal floating point.
- DECIMAL64 = PN_DECIMAL64, ///< 64-bit decimal floating point.
- DECIMAL128 = PN_DECIMAL128, ///< 128-bit decimal floating point.
- UUID = PN_UUID, ///< 16-byte UUID.
- BINARY = PN_BINARY, ///< Variable-length sequence of bytes.
- STRING = PN_STRING, ///< Variable-length utf8-encoded string.
- SYMBOL = PN_SYMBOL, ///< Variable-length encoded string.
- DESCRIBED = PN_DESCRIBED, ///< A descriptor and a value.
- ARRAY = PN_ARRAY, ///< A sequence of values of the same type.
- LIST = PN_LIST, ///< A sequence of values of mixed types.
- MAP = PN_MAP ///< A sequence of key-value pairs.
-};
-
-/// Get the name of the AMQP type.
-PN_CPP_EXTERN std::string type_name(type_id);
-
-/// Print the type name.
-PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, type_id);
-
-/// Throw a conversion_error if want != got with a message including
-/// the names of the types.
-PN_CPP_EXTERN void assert_type_equal(type_id want, type_id got);
-
-/// @name Test the properties of a type_id.
-/// @{
-inline bool type_id_is_signed_int(type_id t) { return t == BYTE || t == SHORT || t == INT || t == LONG; }
-inline bool type_id_is_unsigned_int(type_id t) { return t == UBYTE || t == USHORT || t == UINT || t == ULONG; }
-inline bool type_id_is_integral(type_id t) { return t == BOOLEAN || t == CHAR || t == TIMESTAMP || type_id_is_unsigned_int(t) || type_id_is_signed_int(t); }
-inline bool type_id_is_floating_point(type_id t) { return t == FLOAT || t == DOUBLE; }
-inline bool type_id_is_decimal(type_id t) { return t == DECIMAL32 || t == DECIMAL64 || t == DECIMAL128; }
-inline bool type_id_is_signed(type_id t) { return type_id_is_signed_int(t) || type_id_is_floating_point(t) || type_id_is_decimal(t); }
-inline bool type_id_is_string_like(type_id t) { return t == BINARY || t == STRING || t == SYMBOL; }
-inline bool type_id_is_container(type_id t) { return t == LIST || t == MAP || t == ARRAY || t == DESCRIBED; }
-inline bool type_id_is_scalar(type_id t) { return type_id_is_integral(t) || type_id_is_floating_point(t) || type_id_is_decimal(t) || type_id_is_string_like(t) || t == TIMESTAMP || t == UUID; }
-inline bool type_id_is_null(type_id t) { return t == NULL_TYPE; }
-/// }
-
-} // proton
-
-#endif // PROTON_TYPE_ID_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/types.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/types.hpp b/proton-c/bindings/cpp/include/proton/types.hpp
deleted file mode 100644
index d21cb8f..0000000
--- a/proton-c/bindings/cpp/include/proton/types.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef PROTON_TYPES_HPP
-#define PROTON_TYPES_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.
- *
- */
-
-/// @file
-///
-/// Include the definitions of all proton types used to represent AMQP
-/// types.
-
-// TODO aconway 2016-03-15: described types, described arrays.
-
-#include "./internal/config.hpp"
-
-#include "./annotation_key.hpp"
-#include "./binary.hpp"
-#include "./codec/deque.hpp"
-#include "./codec/list.hpp"
-#include "./codec/map.hpp"
-#include "./codec/vector.hpp"
-#include "./decimal.hpp"
-#include "./duration.hpp"
-#include "./message_id.hpp"
-#include "./scalar.hpp"
-#include "./symbol.hpp"
-#include "./timestamp.hpp"
-#include "./types_fwd.hpp"
-#include "./uuid.hpp"
-#include "./value.hpp"
-
-#if PN_CPP_HAS_CPP11
-#include "./codec/forward_list.hpp"
-#include "./codec/unordered_map.hpp"
-#endif
-
-#endif // PROTON_TYPES_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/types_fwd.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/types_fwd.hpp b/proton-c/bindings/cpp/include/proton/types_fwd.hpp
deleted file mode 100644
index ff53b0c..0000000
--- a/proton-c/bindings/cpp/include/proton/types_fwd.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef PROTON_TYPES_FWD_HPP
-#define PROTON_TYPES_FWD_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.
- *
- */
-
-/// @file
-///
-/// Forward declarations for all the C++ types used by Proton to
-/// represent AMQP types.
-
-#include "./internal/config.hpp"
-
-#if PN_CPP_HAS_NULLPTR
-#include <cstddef>
-#endif
-
-namespace proton {
-
-class binary;
-class decimal128;
-class decimal32;
-class decimal64;
-class scalar;
-class symbol;
-class timestamp;
-class duration;
-class uuid;
-class value;
-
-struct null {
- null() {}
-#if PN_CPP_HAS_NULLPTR
- null(std::nullptr_t) {}
-#endif
-};
-
-} // proton
-
-#endif // PROTON_TYPES_FWD_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/url.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/url.hpp b/proton-c/bindings/cpp/include/proton/url.hpp
deleted file mode 100644
index b94b24d..0000000
--- a/proton-c/bindings/cpp/include/proton/url.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-#ifndef PROTON_URL_HPP
-#define PROTON_URL_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.
- *
- */
-
-#include "./internal/pn_unique_ptr.hpp"
-#include "./error.hpp"
-
-#include <proton/type_compat.h>
-
-#include <iosfwd>
-#include <string>
-
-namespace proton {
-
-/// An error encountered during URL parsing.
-struct
-PN_CPP_CLASS_EXTERN url_error : public error {
- /// @cond INTERNAL
- /// Construct a URL error with a message.
- PN_CPP_EXTERN explicit url_error(const std::string&);
- /// @endcond
-};
-
-/// A URL parser.
-///
-/// Proton URLs take the form
-/// `<scheme>://<username>:<password>@<host>:<port>/<path>`.
-///
-/// - Scheme can be `amqp` or `amqps`. Host is a DNS name or IP
-/// address (v4 or v6).
-///
-/// - Port can be a number or a symbolic service name such as `amqp`.
-///
-/// - Path is normally used as a link source or target address. On a
-/// broker it typically corresponds to a queue or topic name.
-class url {
- public:
- static const std::string AMQP; ///< "amqp" prefix
- static const std::string AMQPS; ///< "amqps" prefix
-
- // XXX No constructor for an empty URL?
- // XXX What is the default 'defaults' behavior?
-
- /// Parse `url_str` as an AMQP URL.
- ///
- /// @note Converts automatically from string.
- /// @throw url_error if URL is invalid.
- PN_CPP_EXTERN url(const std::string& url_str);
-
- /// @cond INTERNAL
- /// XXX I want to understand why this is important to keep.
- ///
- /// **Experimental** - Parse `url_str` as an AMQP URL. If
- /// `defaults` is true, fill in defaults for missing values.
- /// Otherwise, return an empty string for missing values.
- ///
- /// @note Converts automatically from string.
- /// @throw url_error if URL is invalid.
- PN_CPP_EXTERN url(const std::string& url_str, bool defaults);
- /// @endcond
-
- /// Copy a URL.
- PN_CPP_EXTERN url(const url&);
-
- PN_CPP_EXTERN ~url();
-
- /// Copy a URL.
- PN_CPP_EXTERN url& operator=(const url&);
-
- /// True if the URL is empty.
- PN_CPP_EXTERN bool empty() const;
-
- /// Returns the URL as a string
- PN_CPP_EXTERN operator std::string() const;
-
- /// @name URL fields
- ///
- /// @{
-
- /// `amqp` or `amqps`.
- PN_CPP_EXTERN std::string scheme() const;
- /// The user name for authentication.
- PN_CPP_EXTERN std::string user() const;
- // XXX Passwords in URLs are dumb.
- /// The password.
- PN_CPP_EXTERN std::string password() const;
- /// The host name or IP address.
- PN_CPP_EXTERN std::string host() const;
- /// `port` can be a number or a symbolic name such as "amqp".
- PN_CPP_EXTERN std::string port() const;
- /// `port_int` is the numeric value of the port.
- PN_CPP_EXTERN uint16_t port_int() const;
- /// host_port returns just the `host:port` part of the URL
- PN_CPP_EXTERN std::string host_port() const;
-
- // XXX is this not confusing (or incorrect)? The path starts with
- // the first / after //.
- /// `path` is everything after the final "/".
- PN_CPP_EXTERN std::string path() const;
-
- /// @}
-
- /// Return URL as a string.
- friend PN_CPP_EXTERN std::string to_string(const url&);
-
- private:
- struct impl;
- internal::pn_unique_ptr<impl> impl_;
-
- /// @cond INTERNAL
-
- friend PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, const url&);
-
- // XXX Why is it important to have this?
- /// Parse `url` from istream. This automatically fills in
- /// defaults for missing values.
- ///
- /// @note An invalid url is indicated by setting
- /// std::stream::fail(), NOT by throwing url_error.
- friend PN_CPP_EXTERN std::istream& operator>>(std::istream&, url&);
-
- /// @endcond
-};
-
-} // proton
-
-#endif // PROTON_URL_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/uuid.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/uuid.hpp b/proton-c/bindings/cpp/include/proton/uuid.hpp
deleted file mode 100644
index a60c944..0000000
--- a/proton-c/bindings/cpp/include/proton/uuid.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef PROTON_UUID_HPP
-#define PROTON_UUID_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.
- *
- */
-
-#include "./internal/export.hpp"
-#include "./byte_array.hpp"
-
-#include <string>
-#include <iosfwd>
-
-namespace proton {
-
-/// A 16-byte universally unique identifier.
-class uuid : public byte_array<16> {
- public:
- /// Make a copy.
- PN_CPP_EXTERN static uuid copy();
-
- /// Return a uuid copied from bytes. Bytes must point to at least
- /// 16 bytes. If `bytes == 0` the UUID is zero-initialized.
- PN_CPP_EXTERN static uuid copy(const char* bytes);
-
- /// Return a simple randomly-generated UUID. This is used by the
- /// Proton library to generate default UUIDs.
- ///
- /// For specific security, performance, or uniqueness
- /// requirements, you may want to use a better UUID generator or
- /// some other form of identifier entirely.
- PN_CPP_EXTERN static uuid random();
-
- /// UUID standard string format: 8-4-4-4-12 (36 chars, 32
- /// alphanumeric chars and 4 hypens).
- PN_CPP_EXTERN std::string str() const;
-};
-
-/// UUID standard format: 8-4-4-4-12 (36 chars, 32 alphanumeric chars
-/// and 4 hypens).
-PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, const uuid&);
-
-} // proton
-
-#endif // PROTON_UUID_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/value.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/value.hpp b/proton-c/bindings/cpp/include/proton/value.hpp
deleted file mode 100644
index 3ac1763..0000000
--- a/proton-c/bindings/cpp/include/proton/value.hpp
+++ /dev/null
@@ -1,207 +0,0 @@
-#ifndef PROTON_VALUE_HPP
-#define PROTON_VALUE_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.
- *
- */
-
-#include "./codec/encoder.hpp"
-#include "./codec/decoder.hpp"
-#include "./internal/type_traits.hpp"
-#include "./scalar.hpp"
-#include "./types_fwd.hpp"
-
-#include <proton/type_compat.h>
-
-#include <iosfwd>
-
-namespace proton {
-
-namespace internal {
-
-// Separate value data from implicit conversion constructors to avoid template recursion.
-class value_base {
- protected:
- internal::data& data();
- internal::data data_;
-
- friend class value_ref;
- friend class codec::encoder;
- friend class codec::decoder;
-};
-
-} // internal
-
-/// A holder for any AMQP value, simple or complex.
-///
-/// @see @ref types_page
-class value : public internal::value_base, private internal::comparable<value> {
- private:
- // Enabler for encodable types excluding proton::value.
- template<class T, class U=void> struct assignable :
- public internal::enable_if<codec::is_encodable<T>::value, U> {};
- template<class U> struct assignable<value, U> {};
-
- public:
- /// Create a null value
- PN_CPP_EXTERN value();
-
- /// @name Copy a 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
- /// @}
-
- /// Construct from any allowed type T.
- template <class T> value(const T& x, typename assignable<T>::type* = 0) { *this = x; }
-
- /// Assign from any allowed type T.
- template <class T> typename assignable<T, value&>::type operator=(const T& x) {
- codec::encoder e(*this);
- e << x;
- return *this;
- }
-
- /// Get the type ID for the current value.
- PN_CPP_EXTERN type_id type() const;
-
- /// True if the value is null
- PN_CPP_EXTERN bool empty() const;
-
-
- /// Reset the value to null/empty
- PN_CPP_EXTERN void clear();
-
- /// @cond INTERNAL (deprecated)
- template<class T> void get(T &t) const;
- template<class T> T get() const;
- PN_CPP_EXTERN int64_t as_int() const;
- PN_CPP_EXTERN uint64_t as_uint() const;
- PN_CPP_EXTERN double as_double() const;
- PN_CPP_EXTERN std::string as_string() const;
- /// @endcond
-
- /// swap values
- friend PN_CPP_EXTERN void swap(value&, value&);
-
- /// @name Comparison operators
- /// @{
- friend PN_CPP_EXTERN bool operator==(const value& x, const value& y);
- friend PN_CPP_EXTERN bool operator<(const value& x, const value& y);
- ///@}
-
- /// If contained value is a scalar type T, print using operator<<(T)
- ///
- /// Complex types are printed in a non-standard human-readable format but
- /// that may change in future so should not be parsed.
- friend PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, const value&);
-};
-
-namespace internal {
-
-// value_ref is a `pn_data_t* p` that can be returned as a value& and used to modify
-// the underlying value in-place.
-//
-// Classes with a value_ref member can return it as a value& in accessor functions.
-// It can also be used to copy a pn_data_t* p to a proton::value via: value(value_ref(p));
-// None of the constructors make copies, they just refer to the same value.
-//
-class value_ref : public value {
- public:
- value_ref(pn_data_t* = 0);
- value_ref(const internal::data&);
- value_ref(const value_base&);
-
- // Use refer() not operator= to avoid confusion with value op=
- void refer(pn_data_t*);
- void refer(const internal::data&);
- void refer(const value_base&);
-
- // Reset to refer to nothing, release existing references. Equivalent to refer(0).
- void reset();
-
- // Assignments to value_ref means assigning to the value.
- template <class T> value_ref& operator=(const T& x) {
- static_cast<value&>(*this) = x;
- return *this;
- }
-};
-
-}
-
-
-/// @copydoc scalar::get
-/// @related proton::value
-template<class T> T get(const value& v) { T x; get(v, x); return x; }
-
-/// Like get(const value&) but assigns the value to a reference
-/// instead of returning it. May be more efficient for complex values
-/// (arrays, maps, etc.)
-///
-/// @related proton::value
-template<class T> void get(const value& v, T& x) { codec::decoder d(v, true); d >> x; }
-
-/// @related proton::value
-template<class T, class U> inline void get(const U& u, T& x) { const value v(u); get(v, x); }
-
-/// @copydoc scalar::coerce
-/// @related proton::value
-template<class T> T coerce(const value& v) { T x; coerce(v, x); return x; }
-
-/// Like coerce(const value&) but assigns the value to a reference
-/// instead of returning it. May be more efficient for complex values
-/// (arrays, maps, etc.)
-///
-/// @related proton::value
-template<class T> void coerce(const value& v, T& x) {
- codec::decoder d(v, false);
- if (type_id_is_scalar(v.type())) {
- scalar s;
- d >> s;
- x = internal::coerce<T>(s);
- } else {
- d >> x;
- }
-}
-
-/// Special case for get<null>(), just checks that value contains NULL.
-template<> inline void get<null>(const value& v, null&) {
- assert_type_equal(NULL_TYPE, v.type());
-}
-
-/// Return a readable string representation of x for display purposes.
-PN_CPP_EXTERN std::string to_string(const value& x);
-
-/// @cond INTERNAL
-template<class T> void value::get(T &x) const { x = proton::get<T>(*this); }
-template<class T> T value::get() const { return proton::get<T>(*this); }
-inline int64_t value::as_int() const { return proton::coerce<int64_t>(*this); }
-inline uint64_t value::as_uint() const { return proton::coerce<uint64_t>(*this); }
-inline double value::as_double() const { return proton::coerce<double>(*this); }
-inline std::string value::as_string() const { return proton::coerce<std::string>(*this); }
-/// @endcond
-
-} // proton
-
-#endif // PROTON_VALUE_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/libqpid-proton-cpp.pc.in
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/libqpid-proton-cpp.pc.in b/proton-c/bindings/cpp/libqpid-proton-cpp.pc.in
deleted file mode 100644
index 4b556f4..0000000
--- a/proton-c/bindings/cpp/libqpid-proton-cpp.pc.in
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.
- */
-
-prefix=@PREFIX@
-exec_prefix=@EXEC_PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
-
-Name: Proton C++
-Description: Qpid Proton C++ library
-Version: @PN_VERSION@
-URL: http://qpid.apache.org/proton/
-Libs: -L${libdir} -lqpid-proton-cpp
-Cflags: -I${includedir}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/src/binary.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/binary.cpp b/proton-c/bindings/cpp/src/binary.cpp
deleted file mode 100644
index fb366f0..0000000
--- a/proton-c/bindings/cpp/src/binary.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.
- */
-
-#include "types_internal.hpp"
-
-#include "proton/binary.hpp"
-
-#include <ostream>
-#include <iomanip>
-
-#include <ctype.h>
-
-namespace proton {
-
-std::ostream& operator<<(std::ostream& o, const binary& x) {
- ios_guard restore_flags(o);
- o << std::hex << std::setfill('0') << "b\"";
- for (binary::const_iterator i = x.begin(); i != x.end(); ++i) {
- if (!isprint(*i) && !isspace(*i)) { // Non-printables in hex.
- o << "\\x" << std::setw(2) << printable_byte(*i);
- } else {
- o << char(*i);
- }
- }
- return o << '"';
-}
-
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/src/byte_array.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/byte_array.cpp b/proton-c/bindings/cpp/src/byte_array.cpp
deleted file mode 100644
index cd6bb1b..0000000
--- a/proton-c/bindings/cpp/src/byte_array.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.
- */
-
-
-#include "types_internal.hpp"
-
-#include "proton/byte_array.hpp"
-
-#include <ostream>
-#include <iomanip>
-
-namespace proton {
-namespace internal {
-
-void print_hex(std::ostream& o, const uint8_t* p, size_t n) {
- ios_guard restore_flags(o);
- o << "0x" << std::hex << std::setfill('0');
- for (size_t i = 0; i < n; ++i) {
- o << std::setw(2) << printable_byte(p[i]);
- }
-}
-
-}}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/src/cached_map.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/cached_map.cpp b/proton-c/bindings/cpp/src/cached_map.cpp
deleted file mode 100644
index 5411aa1..0000000
--- a/proton-c/bindings/cpp/src/cached_map.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-#include "proton/internal/cached_map.hpp"
-
-#include "proton/annotation_key.hpp"
-#include "proton/scalar.hpp"
-#include "proton/value.hpp"
-#include "proton/codec/decoder.hpp"
-#include "proton/codec/encoder.hpp"
-#include "proton/codec/map.hpp"
-
-#include <map>
-#include <string>
-
-namespace proton {
-namespace internal {
-
- // use std::map as the actual cached_map implementation type
-template <class K, class V>
-class map_type_impl : public std::map<K, V> {};
-
-template <class K, class V>
-cached_map<K,V>::cached_map() {}
-template <class K, class V>
-cached_map<K,V>::cached_map(const cached_map& cm) { if ( !cm.map_ ) return; map_.reset(new map_type(*cm.map_)); }
-template <class K, class V>
-cached_map<K,V>& cached_map<K,V>::operator=(const cached_map& cm) {
- if (&cm != this) {
- cached_map<K,V> t;
- map_type *m = !cm.map_ ? 0 : new map_type(*cm.map_);
- t.map_.reset(map_.release());
- map_.reset(m);
- }
- return *this;
-}
-
-template <class K, class V>
-#if PN_CPP_HAS_RVALUE_REFERENCES
-cached_map<K,V>::cached_map(cached_map&& cm) : map_(std::move(cm.map_)) {}
-template <class K, class V>
-cached_map<K,V>& cached_map<K,V>::operator=(cached_map&& cm) { map_.reset(cm.map_.release()); return *this; }
-template <class K, class V>
-#endif
-cached_map<K,V>::~cached_map() {}
-
-template <class K, class V>
-V cached_map<K,V>::get(const K& k) const {
- if ( !map_ ) return V();
- typename map_type::const_iterator i = map_->find(k);
- if ( i==map_->end() ) return V();
- return i->second;
-}
-template <class K, class V>
-void cached_map<K,V>::put(const K& k, const V& v) {
- if ( !map_ ) make_cached_map();
- (*map_)[k] = v;
-}
-template <class K, class V>
-size_t cached_map<K,V>::erase(const K& k) {
- if ( !map_ ) return 0;
- return map_->erase(k);
-}
-template <class K, class V>
-bool cached_map<K,V>::exists(const K& k) const {
- if ( !map_ ) return false;
- return map_->count(k) > 0;
-}
-
-template <class K, class V>
-size_t cached_map<K,V>::size() {
- if ( !map_ ) return 0;
- return map_->size();
-}
-template <class K, class V>
-void cached_map<K,V>::clear() {
- map_.reset();
-}
-template <class K, class V>
-bool cached_map<K,V>::empty() {
- if ( !map_ ) return true;
- return map_->empty();
-}
-
-template <class K, class V>
-void cached_map<K,V>::make_cached_map() { map_.reset(new map_type); }
-
-template <class K, class V>
-PN_CPP_EXTERN proton::codec::decoder& operator>>(proton::codec::decoder& d, cached_map<K,V>& m) {
- if ( !m.map_ ) m.make_cached_map();
- return d >> *(m.map_);
-}
-template <class K, class V>
-PN_CPP_EXTERN proton::codec::encoder& operator<<(proton::codec::encoder& e, const cached_map<K,V>& m) {
- if ( !m.map_ ) return e;
- return e << *(m.map_);
-}
-
-// Force the necessary template instantiations so that the library exports the correct symbols
-template class PN_CPP_CLASS_EXTERN cached_map<std::string, scalar>;
-template class PN_CPP_CLASS_EXTERN cached_map<annotation_key, value>;
-template class PN_CPP_CLASS_EXTERN cached_map<symbol, value>;
-
-template proton::codec::decoder& operator>> <>(proton::codec::decoder& d, cached_map<std::string, scalar>& m);
-template proton::codec::encoder& operator<< <>(proton::codec::encoder& e, const cached_map<std::string, scalar>& m);
-template proton::codec::decoder& operator>> <>(proton::codec::decoder& d, cached_map<annotation_key, value>& m);
-template proton::codec::encoder& operator<< <>(proton::codec::encoder& e, const cached_map<annotation_key, value>& m);
-template proton::codec::decoder& operator>> <>(proton::codec::decoder& d, cached_map<symbol, value>& m);
-template proton::codec::encoder& operator<< <>(proton::codec::encoder& e, const cached_map<symbol, value>& m);
-
-}
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/src/codec_test.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/codec_test.cpp b/proton-c/bindings/cpp/src/codec_test.cpp
deleted file mode 100644
index 7791749..0000000
--- a/proton-c/bindings/cpp/src/codec_test.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.
- */
-
-#include "test_bits.hpp"
-
-#include "proton/internal/data.hpp"
-#include "proton/internal/config.hpp"
-#include "proton/types.hpp"
-
-namespace {
-
-using namespace proton;
-
-template <class T> void simple_type_test(const T& x) {
- ASSERT(codec::is_encodable<T>::value);
- value v;
- codec::encoder e(v);
- e << x;
- T y;
- codec::decoder d(v);
- d >> y;
- ASSERT_EQUAL(x, y);
-}
-
-template <class T> T make_fill(const char c) {
- T x; std::fill(x.begin(), x.end(), c);
- return x;
-}
-
-template <class T> void uncodable_type_test() {
- ASSERT(!codec::is_encodable<T>::value);
-}
-
-}
-
-int main(int, char**) {
- int failed = 0;
-
- // Basic AMQP types
- RUN_TEST(failed, simple_type_test(false));
- RUN_TEST(failed, simple_type_test(uint8_t(42)));
- RUN_TEST(failed, simple_type_test(int8_t(-42)));
- RUN_TEST(failed, simple_type_test(uint16_t(4242)));
- RUN_TEST(failed, simple_type_test(int16_t(-4242)));
- RUN_TEST(failed, simple_type_test(uint32_t(4242)));
- RUN_TEST(failed, simple_type_test(int32_t(-4242)));
- RUN_TEST(failed, simple_type_test(uint64_t(4242)));
- RUN_TEST(failed, simple_type_test(int64_t(-4242)));
- RUN_TEST(failed, simple_type_test(wchar_t('X')));
- RUN_TEST(failed, simple_type_test(float(1.234)));
- RUN_TEST(failed, simple_type_test(double(11.2233)));
- RUN_TEST(failed, simple_type_test(timestamp(1234)));
- RUN_TEST(failed, simple_type_test(make_fill<decimal32>(0)));
- RUN_TEST(failed, simple_type_test(make_fill<decimal64>(0)));
- RUN_TEST(failed, simple_type_test(make_fill<decimal128>(0)));
- RUN_TEST(failed, simple_type_test(uuid::copy("\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff")));
- RUN_TEST(failed, simple_type_test(std::string("xxx")));
- RUN_TEST(failed, simple_type_test(symbol("aaa")));
- RUN_TEST(failed, simple_type_test(binary("aaa")));
-
- // Native int type that may map differently per platform to uint types.
- RUN_TEST(failed, simple_type_test(char(42)));
- RUN_TEST(failed, simple_type_test(short(42)));
- RUN_TEST(failed, simple_type_test(int(42)));
- RUN_TEST(failed, simple_type_test(long(42)));
-
- RUN_TEST(failed, simple_type_test(static_cast<signed char>(42)));
- RUN_TEST(failed, simple_type_test(static_cast<signed short>(42)));
- RUN_TEST(failed, simple_type_test(static_cast<signed int>(42)));
- RUN_TEST(failed, simple_type_test(static_cast<signed long>(42)));
-
- RUN_TEST(failed, simple_type_test(static_cast<unsigned char>(42)));
- RUN_TEST(failed, simple_type_test(static_cast<unsigned short>(42)));
- 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
- RUN_TEST(failed, simple_type_test(static_cast<long>(42)));
- RUN_TEST(failed, simple_type_test(static_cast<signed long>(42)));
- RUN_TEST(failed, simple_type_test(static_cast<unsigned long>(42)));
-#endif
-
- // value and scalar types, more tests in value_test and scalar_test.
- RUN_TEST(failed, simple_type_test(value("foo")));
- RUN_TEST(failed, value v(23); simple_type_test(v));
- RUN_TEST(failed, simple_type_test(scalar(23)));
- RUN_TEST(failed, simple_type_test(annotation_key(42)));
- RUN_TEST(failed, simple_type_test(message_id(42)));
-
- // Make sure we reject uncodable types
- RUN_TEST(failed, (uncodable_type_test<std::pair<int, float> >()));
- RUN_TEST(failed, (uncodable_type_test<std::pair<scalar, value> >()));
- RUN_TEST(failed, (uncodable_type_test<std::basic_string<wchar_t> >()));
- RUN_TEST(failed, (uncodable_type_test<internal::data>()));
- RUN_TEST(failed, (uncodable_type_test<pn_data_t*>()));
-
- return failed;
-}
-
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org