Updated Branches: refs/heads/master fda8cee39 -> 5ce808d1a
TS-2551 Add a configure check for shared_ptr, and fall back on tr1 Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5ce808d1 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5ce808d1 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5ce808d1 Branch: refs/heads/master Commit: 5ce808d1acac7b50901058c53401577b21ebeef9 Parents: fda8cee Author: Leif Hedstrom <[email protected]> Authored: Mon Feb 3 16:05:45 2014 -0700 Committer: Leif Hedstrom <[email protected]> Committed: Mon Feb 3 16:05:45 2014 -0700 ---------------------------------------------------------------------- configure.ac | 18 ++++++++++++++++++ .../examples/async_http_fetch/AsyncHttpFetch.cc | 2 +- .../examples/stat_example/StatExample.cc | 4 +--- lib/atscppapi/src/include/atscppapi/shared_ptr.h | 14 ++++++++++++-- 4 files changed, 32 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5ce808d1/configure.ac ---------------------------------------------------------------------- diff --git a/configure.ac b/configure.ac index 5d916bb..8458c04 100644 --- a/configure.ac +++ b/configure.ac @@ -588,6 +588,24 @@ if test "x${have_gnu_cxx_hash_map}" = "xyes" ; then AC_DEFINE(HAVE_GNU_CXX_HASH_MAP, 1, [whether __gnu_cxx::hash_map is available]) fi +# And check for std::shared_ptr vs std::tr1::shared_ptr +TS_FLAG_HEADERS([unordered_map unordered_set]) +AC_MSG_CHECKING([for std::shared_ptr]) +AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([ + #include <memory> + using std::shared_ptr; + ], [ + ])], + [ have_std_shared_ptr=yes ], + [ have_std_shared_ptr=no ] +) + +AC_MSG_RESULT([$have_std_shared_ptr]) +if test "x${have_std_shared_ptr}" = "xyes" ; then + AC_DEFINE(HAVE_STD_SHARED_PTR, 1, [whether std::shared_ptr is available]) +fi + AC_LANG_POP() dnl AC_PROG_SED is only available from version 2.6 (released in 2003). CentosOS http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5ce808d1/lib/atscppapi/examples/async_http_fetch/AsyncHttpFetch.cc ---------------------------------------------------------------------- diff --git a/lib/atscppapi/examples/async_http_fetch/AsyncHttpFetch.cc b/lib/atscppapi/examples/async_http_fetch/AsyncHttpFetch.cc index e156309..c0b8079 100644 --- a/lib/atscppapi/examples/async_http_fetch/AsyncHttpFetch.cc +++ b/lib/atscppapi/examples/async_http_fetch/AsyncHttpFetch.cc @@ -104,7 +104,7 @@ private: const void *body; size_t body_size; async_http_fetch.getResponseBody(body, body_size); - TS_DEBUG(TAG, "Response body is [%.*s]", static_cast<int>(body_size), body); + TS_DEBUG(TAG, "Response body is [%.*s]", static_cast<int>(body_size), static_cast<const char*>(body)); } else { TS_ERROR(TAG, "Fetch did not complete successfully; Result %d", static_cast<int>(async_http_fetch.getResult())); http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5ce808d1/lib/atscppapi/examples/stat_example/StatExample.cc ---------------------------------------------------------------------- diff --git a/lib/atscppapi/examples/stat_example/StatExample.cc b/lib/atscppapi/examples/stat_example/StatExample.cc index 1f4233e..7208526 100644 --- a/lib/atscppapi/examples/stat_example/StatExample.cc +++ b/lib/atscppapi/examples/stat_example/StatExample.cc @@ -23,8 +23,6 @@ #include <atscppapi/PluginInit.h> #include <cstring> -#include <inttypes.h> - using namespace atscppapi; using std::string; @@ -56,7 +54,7 @@ public: virtual void handleReadRequestHeadersPostRemap(Transaction &transaction) { TS_DEBUG(TAG, "Received a request, incrementing the counter."); stat.increment(); - TS_DEBUG(TAG, "Stat '%s' value = %" PRId64, STAT_NAME.c_str(), stat.get()); + TS_DEBUG(TAG, "Stat '%s' value = %lld", STAT_NAME.c_str(), static_cast<long long>(stat.get())); transaction.resume(); } }; http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5ce808d1/lib/atscppapi/src/include/atscppapi/shared_ptr.h ---------------------------------------------------------------------- diff --git a/lib/atscppapi/src/include/atscppapi/shared_ptr.h b/lib/atscppapi/src/include/atscppapi/shared_ptr.h index 5a826db..6fa9571 100644 --- a/lib/atscppapi/src/include/atscppapi/shared_ptr.h +++ b/lib/atscppapi/src/include/atscppapi/shared_ptr.h @@ -25,7 +25,13 @@ #ifndef ASTCPPAPI_SHARED_PTR_H_ #define ASTCPPAPI_SHARED_PTR_H_ -#include <memory> +#include "ink_autoconf.h" + +#if HAVE_STD_SHARED_PTR +# include <memory> +#else +# include <tr1/memory> +#endif namespace atscppapi { @@ -34,7 +40,11 @@ namespace atscppapi { * \todo Consider adding a simple macro to check if c++0x/11 is enabled * and if so change it to std::shared_ptr and #include <memory>s */ -using std::shared_ptr; +#if HAVE_STD_SHARED_PTR + using std::shared_ptr; +#else + using std::tr1::shared_ptr; +#endif } /* atscppapi */
