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:59:00 UTC

[39/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/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
deleted file mode 100644
index 5f26d43..0000000
--- a/proton-c/CMakeLists.txt
+++ /dev/null
@@ -1,751 +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(CheckLibraryExists)
-include(CheckSymbolExists)
-
-include(soversion.cmake)
-
-add_custom_target(docs)
-add_custom_target(doc DEPENDS docs)
-
-# Set the default SSL/TLS implementation
-find_package(OpenSSL)
-find_package(PythonInterp REQUIRED)
-find_package(SWIG)
-# FindSwig.cmake "forgets" make its outputs advanced like a good citizen
-mark_as_advanced(SWIG_DIR SWIG_EXECUTABLE SWIG_VERSION)
-
-# See if Cyrus SASL is available
-find_library(CYRUS_SASL_LIBRARY sasl2)
-find_path(CYRUS_SASL_INCLUDE_DIR sasl/sasl.h PATH_SUFFIXES include)
-find_package_handle_standard_args(CyrusSASL DEFAULT_MSG CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
-mark_as_advanced(CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
-
-# Find saslpasswd2 executable to generate test config
-find_program(SASLPASSWD_EXE saslpasswd2 DOC "Program used to make SASL user db for testing")
-mark_as_advanced(SASLPASSWD_EXE)
-
-if(WIN32 AND NOT CYGWIN)
-  # linking against Windows native libraries, including mingw
-  set (PN_WINAPI TRUE)
-endif(WIN32 AND NOT CYGWIN)
-
-set(ssl_impl, none)
-if(PN_WINAPI)
-  set(ssl_impl schannel)
-  set(ssl_providers "'none','schannel','openssl'")
-else(PN_WINAPI)
-  if (OPENSSL_FOUND)
-    set(ssl_impl openssl)
-  endif (OPENSSL_FOUND)
-  set(ssl_providers "'none','openssl'")
-endif(PN_WINAPI)
-set(SSL_IMPL ${ssl_impl} CACHE STRING "Library to use for SSL/TLS support. Valid values: ${ssl_providers}")
-
-set(sasl_providers cyrus none)
-if (CYRUSSASL_FOUND)
-  set (sasl_impl cyrus)
-else ()
-  set (sasl_impl none)
-endif ()
-set(SASL_IMPL ${sasl_impl} CACHE STRING "Library to use for SASL support. Valid values: ${sasl_providers}")
-
-configure_file (
-  "${CMAKE_CURRENT_SOURCE_DIR}/include/proton/version.h.in"
-  "${CMAKE_CURRENT_BINARY_DIR}/include/proton/version.h"
-  )
-
-include_directories ("${CMAKE_CURRENT_BINARY_DIR}/src")
-include_directories ("${CMAKE_CURRENT_BINARY_DIR}/include")
-include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/src")
-include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/include")
-
-set (env_py ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/env.py)
-
-add_custom_command (
-  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
-  COMMAND ${env_py} PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
-  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/encodings.h.py
-  )
-
-add_custom_command (
-  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
-  COMMAND ${env_py} PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py > ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
-  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.h.py
-  )
-
-add_custom_target(
-  generated_c_files
-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
-  )
-
-# Select IO impl
-if(PN_WINAPI)
-  set (pn_io_impl src/reactor/io/windows/io.c src/reactor/io/windows/iocp.c src/reactor/io/windows/write_pipeline.c)
-  set (pn_selector_impl src/reactor/io/windows/selector.c)
-else(PN_WINAPI)
-  set (pn_io_impl src/reactor/io/posix/io.c)
-  set (pn_selector_impl src/reactor/io/posix/selector.c)
-endif(PN_WINAPI)
-
-# Link in SASL if present
-if (SASL_IMPL STREQUAL cyrus)
-  set(pn_sasl_impl src/sasl/sasl.c src/sasl/cyrus_sasl.c)
-  include_directories (${CYRUS_SASL_INCLUDE_DIR})
-  set(SASL_LIB ${CYRUS_SASL_LIBRARY} -lpthread)
-elseif (SASL_IMPL STREQUAL none)
-  set(pn_sasl_impl src/sasl/sasl.c src/sasl/none_sasl.c)
-endif ()
-
-# Set Compiler extra flags for Solaris when using SunStudio
-if(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro" )
-    set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mt" )
-endif()
-
-if(CMAKE_C_COMPILER_ID STREQUAL "SunPro" )
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mt")
-endif()
-
-# Link in openssl if present
-if (SSL_IMPL STREQUAL openssl)
-  set (pn_ssl_impl src/ssl/openssl.c)
-  include_directories (${OPENSSL_INCLUDE_DIR})
-  set (SSL_LIB ${OPENSSL_LIBRARIES})
-elseif (SSL_IMPL STREQUAL schannel)
-  set (pn_ssl_impl src/ssl/schannel.c)
-  set (SSL_LIB Crypt32.lib Secur32.lib)
-else ()
-  set (pn_ssl_impl src/ssl/ssl_stub.c)
-endif ()
-
-# First check whether we get clock_gettime without any special library linked
-CHECK_SYMBOL_EXISTS(clock_gettime "time.h" CLOCK_GETTIME_IN_LIBC)
-if (CLOCK_GETTIME_IN_LIBC)
-  list(APPEND PLATFORM_DEFINITIONS "USE_CLOCK_GETTIME")
-else (CLOCK_GETTIME_IN_LIBC)
-  CHECK_LIBRARY_EXISTS (rt clock_gettime "" CLOCK_GETTIME_IN_RT)
-  if (CLOCK_GETTIME_IN_RT)
-    set (TIME_LIB rt)
-    list(APPEND PLATFORM_DEFINITIONS "USE_CLOCK_GETTIME")
-  else (CLOCK_GETTIME_IN_RT)
-    CHECK_SYMBOL_EXISTS(GetSystemTimeAsFileTime "windows.h" WINDOWS_FILETIME)
-    if (WINDOWS_FILETIME)
-      list(APPEND PLATFORM_DEFINITIONS "USE_WIN_FILETIME")
-    else (WINDOWS_FILETIME)
-      list(APPEND PLATFORM_DEFINITIONS "USE_GETTIMEOFDAY")
-    endif (WINDOWS_FILETIME)
-  endif (CLOCK_GETTIME_IN_RT)
-endif (CLOCK_GETTIME_IN_LIBC)
-
-if (PN_WINAPI)
-  CHECK_SYMBOL_EXISTS(strerror_s "string.h" STRERROR_S_IN_WINAPI)
-  if (STRERROR_S_IN_WINAPI)
-    list(APPEND PLATFORM_DEFINITIONS "USE_STRERROR_S")
-  else (STRERROR_S_IN_WINAPI)
-    if (MINGW)
-      message (STATUS, "NOTE: your MinGW version lacks a thread safe strerror")
-      list(APPEND PLATFORM_DEFINITIONS "USE_OLD_STRERROR")
-    endif (MINGW)
-  endif (STRERROR_S_IN_WINAPI)
-else (PN_WINAPI)
-  CHECK_SYMBOL_EXISTS(strerror_r "string.h" STRERROR_R_IN_LIBC)
-  if (STRERROR_R_IN_LIBC)
-    list(APPEND PLATFORM_DEFINITIONS "USE_STRERROR_R")
-  endif (STRERROR_R_IN_LIBC)
-endif (PN_WINAPI)
-
-CHECK_SYMBOL_EXISTS(atoll "stdlib.h" C99_ATOLL)
-if (C99_ATOLL)
-  list(APPEND PLATFORM_DEFINITIONS "USE_ATOLL")
-else (C99_ATOLL)
-  CHECK_SYMBOL_EXISTS(_atoi64 "stdlib.h" WINAPI_ATOI64)
-  if (WINAPI_ATOI64)
-    list(APPEND PLATFORM_DEFINITIONS "USE_ATOI64")
-  else (WINAPI_ATOI64)
-    message(FATAL_ERROR "No atoll API found")
-  endif (WINAPI_ATOI64)
-endif (C99_ATOLL)
-
-if (PN_WINAPI)
-  set (PLATFORM_LIBS ws2_32 Rpcrt4)
-  list(APPEND PLATFORM_DEFINITIONS "PN_WINAPI")
-endif (PN_WINAPI)
-
-# Try to keep any platform specific overrides together here:
-
-# MacOS has a bunch of differences in build tools and process and so we have to turn some things
-# off if building there:
-if (APPLE)
-  set (NOBUILD_PHP ON)
-  set (NOENABLE_WARNING_ERROR ON)
-  set (NOENABLE_UNDEFINED_ERROR ON)
-endif (APPLE)
-
-# Make LTO default to off until we can figure out the valgrind issues
-set (NOENABLE_LINKTIME_OPTIMIZATION ON)
-
-# Add options here called <whatever> they will turn into "ENABLE_<whatever" and can be
-# overridden on a platform specific basis above by NOENABLE_<whatever>
-set (OPTIONS WARNING_ERROR UNDEFINED_ERROR LINKTIME_OPTIMIZATION HIDE_UNEXPORTED_SYMBOLS)
-
-foreach (OPTION ${OPTIONS})
-  if (NOT NOENABLE_${OPTION})
-    set ("DEFAULT_${OPTION}" ON)
-  endif ()
-endforeach (OPTION)
-
-# And add the option here too with help text
-option(ENABLE_WARNING_ERROR "Consider compiler warnings to be errors" ${DEFAULT_WARNING_ERROR})
-option(ENABLE_UNDEFINED_ERROR "Check for unresolved library symbols" ${DEFAULT_UNDEFINED_ERROR})
-option(ENABLE_LINKTIME_OPTIMIZATION "Perform link time optimization" ${DEFAULT_LINKTIME_OPTIMIZATION})
-option(ENABLE_HIDE_UNEXPORTED_SYMBOLS "Only export library symbols that are explicitly requested" ${DEFAULT_HIDE_UNEXPORTED_SYMBOLS})
-
-# Set any additional compiler specific flags
-if (CMAKE_COMPILER_IS_GNUCC)
-  if (ENABLE_WARNING_ERROR)
-    set (WERROR "-Werror")
-  endif (ENABLE_WARNING_ERROR)
-  set (COMPILE_WARNING_FLAGS "${WERROR} -Wall -pedantic-errors")
-  # C++ allow "%z" format specifier and variadic macros
-  set (CXX_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wno-format -Wno-variadic-macros")
-  if (NOT BUILD_WITH_CXX)
-    set (COMPILE_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wstrict-prototypes")
-    set (COMPILE_LANGUAGE_FLAGS "-std=c99")
-    set (COMPILE_PLATFORM_FLAGS "-std=gnu99")
-
-    execute_process(COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${CMAKE_C_COMPILER_ARG2} -dumpversion OUTPUT_VARIABLE GCC_VERSION
-      OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if (${GCC_VERSION} VERSION_LESS "4.3.0")
-      # Only a concern if contibuting code back.
-      message (STATUS "Old gcc version detected.  C++ compatibility checks disabled")
-    else (${GCC_VERSION} VERSION_LESS "4.3.0")
-      set (COMPILE_WARNING_FLAGS "${COMPILE_WARNING_FLAGS} -Wc++-compat -Wvla -Wsign-compare -Wwrite-strings")
-    endif (${GCC_VERSION} VERSION_LESS "4.3.0")
-  else (NOT BUILD_WITH_CXX)
-    set (COMPILE_WARNING_FLAGS "${CXX_WARNING_FLAGS}")
-  endif (NOT BUILD_WITH_CXX)
-
-  if (ENABLE_UNDEFINED_ERROR)
-    set (CATCH_UNDEFINED "-Wl,--no-undefined")
-    set (ALLOW_UNDEFINED "-Wl,--allow-shlib-undefined")
-  endif (ENABLE_UNDEFINED_ERROR)
-
-  if (ENABLE_LINKTIME_OPTIMIZATION)
-    set (LTO "-flto")
-  endif (ENABLE_LINKTIME_OPTIMIZATION)
-
-  if (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
-  endif (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
-elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
-  if (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -xldscope=hidden")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xldscope=hidden")
-  endif (ENABLE_HIDE_UNEXPORTED_SYMBOLS)
-endif (CMAKE_COMPILER_IS_GNUCC)
-
-if (CMAKE_C_COMPILER_ID MATCHES "Clang")
-  if (ENABLE_WARNING_ERROR)
-    set (COMPILE_WARNING_FLAGS "-Werror -Wall -pedantic")
-  endif (ENABLE_WARNING_ERROR)
-endif()
-
-if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-  if (ENABLE_WARNING_ERROR)
-    set (WERROR "-Werror")
-  endif (ENABLE_WARNING_ERROR)
-  # TODO aconway 2016-01-06: we should be able to clean up the code and turn on
-  # some of these warnings.
-  set (CXX_WARNING_FLAGS "${WERROR} -pedantic -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-float-equal -Wno-padded -Wno-sign-conversion -Wno-switch-enum -Wno-weak-vtables -Wno-exit-time-destructors -Wno-global-constructors -Wno-shorten-64-to-32 -Wno-documentation -Wno-documentation-unknown-command -Wno-old-style-cast -Wno-missing-noreturn")
-endif()
-
-# Make flags visible to examples.
-set(CXX_WARNING_FLAGS "${CXX_WARNING_FLAGS}" PARENT_SCOPE)
-set(COMPILE_WARNING_FLAGS "${COMPILE_WARNING_FLAGS}" PARENT_SCOPE)
-set(COMPILE_LANGUAGE_FLAGS "${COMPILE_LANGUAGE_FLAGS}" PARENT_SCOPE)
-set(LINK_TIME_OPTIMIZATION "${LTO}" PARENT_SCOPE)
-
-
-if (MSVC)
-    set(CMAKE_DEBUG_POSTFIX "d")
-    add_definitions(
-        /wd4244
-        /wd4267
-        /wd4800
-        /wd4996
-    )
-    set (qpid-proton-platform src/compiler/msvc/snprintf.c)
-endif (MSVC)
-
-macro (pn_absolute_install_dir NAME VALUE PREFIX)
-  if(IS_ABSOLUTE ${VALUE})
-    set(${NAME} "${VALUE}")
-  elseif(IS_ABSOLUTE ${PREFIX})
-    set(${NAME} "${PREFIX}/${VALUE}")
-  else()
-    set(${NAME} "${CMAKE_BINARY_DIR}/${PREFIX}/${VALUE}")
-  endif(IS_ABSOLUTE ${VALUE})
-  get_filename_component(${NAME} ${${NAME}} ABSOLUTE)
-endmacro()
-
-pn_absolute_install_dir(PREFIX "." ${CMAKE_INSTALL_PREFIX})
-pn_absolute_install_dir(EXEC_PREFIX "." ${CMAKE_INSTALL_PREFIX})
-pn_absolute_install_dir(LIBDIR ${LIB_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX})
-pn_absolute_install_dir(INCLUDEDIR ${INCLUDE_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX})
-
-add_subdirectory(docs/api)
-add_subdirectory(../tests/tools/apps/c ../tests/tools/apps/c)
-
-# for full source distribution:
-set (qpid-proton-platform-all
-  src/platform/platform.c
-  src/reactor/io/windows/io.c
-  src/reactor/io/windows/iocp.c
-  src/reactor/io/windows/write_pipeline.c
-  src/reactor/io/windows/selector.c
-  src/reactor/io/posix/io.c
-  src/reactor/io/posix/selector.c
-  )
-
-# platform specific library build:
-set (qpid-proton-platform-io
-  src/platform/platform.c
-  ${pn_io_impl}
-  ${pn_selector_impl}
-  )
-
-# for full source distribution:
-set (qpid-proton-layers-all
-  src/sasl/sasl.c
-  src/sasl/cyrus_sasl.c
-  src/sasl/none_sasl.c
-  src/ssl/openssl.c
-  src/ssl/schannel.c
-  src/ssl/ssl_stub.c
-  )
-
-# for current build system's environment:
-set (qpid-proton-layers
-  ${pn_sasl_impl}
-  ${pn_ssl_impl}
-  )
-
-set (qpid-proton-core
-  src/core/object/object.c
-  src/core/object/list.c
-  src/core/object/map.c
-  src/core/object/string.c
-  src/core/object/iterator.c
-  src/core/object/record.c
-
-  src/core/log.c
-  src/core/util.c
-  src/core/error.c
-  src/core/buffer.c
-  src/core/types.c
-
-  src/core/framing.c
-
-  src/core/codec.c
-  src/core/decoder.c
-  src/core/encoder.c
-
-  src/core/dispatcher.c
-  src/core/connection_driver.c
-  src/core/engine.c
-  src/core/event.c
-  src/core/autodetect.c
-  src/core/transport.c
-  src/core/message.c
-  )
-
-set (qpid-proton-include-generated
-  ${CMAKE_CURRENT_BINARY_DIR}/src/encodings.h
-  ${CMAKE_CURRENT_BINARY_DIR}/src/protocol.h
-  ${CMAKE_CURRENT_BINARY_DIR}/include/proton/version.h
-  )
-
-set (qpid-proton-private-includes
-  src/extra/scanner.h
-  src/messenger/store.h
-  src/messenger/subscription.h
-  src/messenger/messenger.h
-  src/messenger/transform.h
-  src/ssl/ssl-internal.h
-  src/sasl/sasl-internal.h
-  src/core/autodetect.h
-  src/core/log_private.h
-  src/core/config.h
-  src/core/encoder.h
-  src/core/dispatch_actions.h
-  src/core/engine-internal.h
-  src/core/transport.h
-  src/core/framing.h
-  src/core/buffer.h
-  src/core/util.h
-  src/core/dispatcher.h
-  src/core/data.h
-  src/core/decoder.h
-  src/reactor/io/windows/iocp.h
-  src/reactor/selector.h
-  src/reactor/io.h
-  src/reactor/reactor.h
-  src/reactor/selectable.h
-  src/platform/platform.h
-  src/platform/platform_fmt.h
-  )
-
-set (qpid-proton-extra
-  src/extra/parser.c
-  src/extra/scanner.c
-  src/extra/url.c
-
-  src/reactor/reactor.c
-  src/reactor/handler.c
-  src/reactor/connection.c
-  src/reactor/acceptor.c
-  src/reactor/selectable.c
-  src/reactor/timer.c
-
-  src/handlers/handshaker.c
-  src/handlers/iohandler.c
-  src/handlers/flowcontroller.c
-
-  src/messenger/messenger.c
-  src/messenger/subscription.c
-  src/messenger/store.c
-  src/messenger/transform.c
-  )
-
-set (qpid-proton-include
-  include/proton/cid.h
-  include/proton/codec.h
-  include/proton/condition.h
-  include/proton/connection.h
-  include/proton/connection_driver.h
-  include/proton/delivery.h
-  include/proton/disposition.h
-  include/proton/engine.h
-  include/proton/error.h
-  include/proton/event.h
-  include/proton/import_export.h
-  include/proton/link.h
-  include/proton/log.h
-  include/proton/message.h
-  include/proton/object.h
-  include/proton/sasl.h
-  include/proton/session.h
-  include/proton/ssl.h
-  include/proton/terminus.h
-  include/proton/transport.h
-  include/proton/type_compat.h
-  include/proton/types.h
-)
-
-set (qpid-proton-include-extra
-  include/proton/handlers.h
-  include/proton/messenger.h
-  include/proton/parser.h
-  include/proton/reactor.h
-  include/proton/selectable.h
-  include/proton/url.h
-)
-
-# note: process bindings after the source lists have been defined so
-# the bindings can reference them
-add_subdirectory(bindings)
-
-source_group("API Header Files" FILES ${qpid-proton-include} ${qpid-proton-include-extra})
-
-set_source_files_properties (
-  ${qpid-proton-core}
-  ${qpid-proton-layers}
-  ${qpid-proton-extra}
-  PROPERTIES
-  COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_LANGUAGE_FLAGS} ${LTO}"
-  )
-
-set_source_files_properties (
-  ${qpid-proton-platform}
-  ${qpid-proton-platform-io}
-  PROPERTIES
-  COMPILE_FLAGS "${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS} ${LTO}"
-  COMPILE_DEFINITIONS "${PLATFORM_DEFINITIONS}"
-  )
-
-if (BUILD_WITH_CXX)
-  set_source_files_properties (
-    ${qpid-proton-core}
-    ${qpid-proton-layers}
-    ${qpid-proton-extra}
-    ${qpid-proton-platform}
-    ${qpid-proton-platform-io}
-    PROPERTIES LANGUAGE CXX
-    )
-endif (BUILD_WITH_CXX)
-
-add_library (
-  qpid-proton-core SHARED
-  ${qpid-proton-core}
-  ${qpid-proton-layers}
-  ${qpid-proton-platform}
-  ${qpid-proton-include}
-  ${qpid-proton-include-generated}
-  )
-add_dependencies(qpid-proton-core generated_c_files)
-
-target_link_libraries (qpid-proton-core ${UUID_LIB} ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS})
-
-set_target_properties (
-  qpid-proton-core
-  PROPERTIES
-  VERSION   "${PN_LIB_SOMAJOR}.${PN_LIB_SOMINOR}"
-  SOVERSION "${PN_LIB_SOMAJOR}"
-  LINK_FLAGS "${CATCH_UNDEFINED} ${LTO}"
-  )
-
-add_library(
-  qpid-proton SHARED
-  # Proton Core
-  ${qpid-proton-core}
-  ${qpid-proton-layers}
-  ${qpid-proton-platform}
-  ${qpid-proton-include}
-  ${qpid-proton-include-generated}
-
-  # Proton Reactor/Messenger
-  ${qpid-proton-extra}
-  ${qpid-proton-platform-io}
-  ${qpid-proton-include-extra}
-  )
-add_dependencies(qpid-proton generated_c_files)
-
-target_link_libraries (qpid-proton ${UUID_LIB} ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS})
-
-set_target_properties (
-  qpid-proton
-  PROPERTIES
-  VERSION   "${PN_LIB_SOMAJOR}.${PN_LIB_SOMINOR}"
-  SOVERSION "${PN_LIB_SOMAJOR}"
-  LINK_FLAGS "${CATCH_UNDEFINED} ${LTO}"
-  )
-
-if (MSVC)
-  # guard against use of C99 violating functions on Windows
-  include(WindowsC99CheckDef)
-endif(MSVC)
-
-# Install executables and libraries
-install (TARGETS qpid-proton qpid-proton-core
-  EXPORT  proton
-  RUNTIME DESTINATION bin
-  ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-  LIBRARY DESTINATION ${LIB_INSTALL_DIR})
-
-# Install windows qpid-proton pdb files
-if (MSVC)
-  install(FILES $<TARGET_PDB_FILE:qpid-proton>
-    DESTINATION bin
-    CONFIGURATIONS RelWithDebInfo Debug
-    OPTIONAL)
-endif (MSVC)
-
-# Install header files
-file(GLOB headers "include/proton/*.[hi]")
-install (FILES ${headers} DESTINATION ${INCLUDE_INSTALL_DIR}/proton)
-install (FILES  ${CMAKE_CURRENT_BINARY_DIR}/include/proton/version.h
-         DESTINATION ${INCLUDE_INSTALL_DIR}/proton)
-
-# Pkg config file
-configure_file(
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/libqpid-proton.pc.in
-  ${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton.pc @ONLY)
-install (FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton.pc
-  DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-configure_file(
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/libqpid-proton-core.pc.in
-  ${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton-core.pc @ONLY)
-install (FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton-core.pc
-  DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-
-
-if (DEFINED CMAKE_IMPORT_LIBRARY_PREFIX)
-set(PROTONLIB ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton${CMAKE_IMPORT_LIBRARY_SUFFIX})
-set(PROTONLIBDEBUG ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton${CMAKE_DEBUG_POSTFIX}${CMAKE_IMPORT_LIBRARY_SUFFIX})
-set(PROTONCORELIB ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-core${CMAKE_IMPORT_LIBRARY_SUFFIX})
-set(PROTONCORELIBDEBUG ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-core${CMAKE_DEBUG_POSTFIX}${CMAKE_IMPORT_LIBRARY_SUFFIX})
-else ()
-set(PROTONLIB ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton${CMAKE_SHARED_LIBRARY_SUFFIX})
-set(PROTONLIBDEBUG ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton${CMAKE_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
-set(PROTONCORELIB ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-core${CMAKE_SHARED_LIBRARY_SUFFIX})
-set(PROTONCORELIBDEBUG ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-core${CMAKE_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
-endif ()
-
-include(WriteBasicConfigVersionFile)
-
-configure_file(
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/ProtonConfig.cmake.in
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfig.cmake @ONLY)
-write_basic_config_version_file(
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfigVersion.cmake
-  VERSION ${PN_VERSION}
-  COMPATIBILITY AnyNewerVersion)
-install (FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfig.cmake
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfigVersion.cmake
-  DESTINATION ${LIB_INSTALL_DIR}/cmake/Proton)
-
-# c tests:
-
-add_subdirectory(src/tests)
-
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  # No change needed for windows already use correct separator
-  function(to_native_path path result)
-    file (TO_NATIVE_PATH "${path}" path)
-    set (${result} ${path} PARENT_SCOPE)
-  endfunction()
-else (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  # Just change ';'->':'
-  function(to_native_path path result)
-    file (TO_NATIVE_PATH "${path}" path)
-    string (REGEX REPLACE ";" ":" path "${path}")
-    set (${result} ${path} PARENT_SCOPE)
-  endfunction()
-endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
-
-# python test: tests/python/proton-test
-if (BUILD_PYTHON)
-  set (py_root "${pn_test_root}/python")
-  set (py_src "${CMAKE_CURRENT_SOURCE_DIR}/bindings/python")
-  set (py_bin "${CMAKE_CURRENT_BINARY_DIR}/bindings/python")
-  set (py_dll "$<TARGET_FILE_DIR:_cproton>")
-  set (py_bld "$<TARGET_FILE_DIR:qpid-proton>") # For windows
-  set (app_path $<TARGET_FILE_DIR:msgr-send> "${pn_test_root}/tools/apps/python")
-  set (py_path ${py_bld} ${app_path} $ENV{PATH})
-  set (py_pythonpath ${py_root} ${py_src} ${py_bin} ${py_dll} $ENV{PYTHONPATH})
-  to_native_path ("${py_pythonpath}" py_pythonpath)
-  to_native_path ("${py_path}" py_path)
-
-  add_test (NAME python-test
-            COMMAND ${env_py}
-              "PATH=${py_path}" "PYTHONPATH=${py_pythonpath}"
-              "CLASSPATH=${CMAKE_BINARY_DIR}/proton-j/proton-j.jar"
-              "SASLPASSWD=${SASLPASSWD_EXE}"
-              ${VALGRIND_ENV}
-              ${PYTHON_EXECUTABLE} "${py_root}/proton-test")
-  set_tests_properties(python-test PROPERTIES PASS_REGULAR_EXPRESSION "Totals: .* 0 failed")
-
-  # Eventually, we'll get rid of this check when other
-  # platforms will be supported. Since `setup.py` will skip
-  # the build for non linux plaforms, it doesn't make sense
-  # to try to run them.
-  option(TOX_TEST "Enable muti-version python testing with TOX" ON)
-  if (CMAKE_SYSTEM_NAME STREQUAL Linux AND TOX_TEST)
-    find_program(TOX_EXE "tox")
-    if (CMAKE_BUILD_TYPE MATCHES "Coverage")
-      message(STATUS "Building for coverage analysis; skipping the python-tox-tests")
-    elseif (TOX_EXE)
-      configure_file(
-        "${CMAKE_CURRENT_SOURCE_DIR}/tox.ini.in"
-        "${CMAKE_CURRENT_BINARY_DIR}/tox.ini")
-      add_test (NAME python-tox-test
-                COMMAND ${env_py}
-                  "PATH=${py_path}"
-                  "CLASSPATH=${CMAKE_BINARY_DIR}/proton-j/proton-j.jar"
-                  "SASLPASSWD=${SASLPASSWD_EXE}"
-                  "SWIG=${SWIG_EXECUTABLE}"
-                  ${VALGRIND_ENV}
-                  ${TOX_EXE})
-      set_tests_properties(python-tox-test
-                           PROPERTIES
-                             PASS_REGULAR_EXPRESSION "Totals: .* ignored, 0 failed"
-                             FAIL_REGULAR_EXPRESSION "ERROR:[ ]+py[0-9]*: commands failed")
-    else (TOX_EXE)
-      message(STATUS "The tox tool is not available; skipping the python-tox-tests")
-    endif ()
-  endif (CMAKE_SYSTEM_NAME STREQUAL Linux AND TOX_TEST)
-
-  set (perf_pythonpath "${py_pythonpath}" "${CMAKE_SOURCE_DIR}/examples/cpp")
-  to_native_path ("${perf_pythonpath}" perf_pythonpath)
-  add_custom_target(quick_perf_c ${env_py} -- "PATH=${py_path}" "PYTHONPATH=${perf_pythonpath}"
-                           ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/tests/perf/quick_perf.py" "C")
-  add_dependencies(quick_perf_c reactor-send reactor-recv)
-
-  add_custom_target(quick_perf_py COMMAND ${env_py} --
-                    "PATH=${py_path}" "PYTHONPATH=${perf_pythonpath}"
-                    ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/tests/perf/quick_perf.py" "PYTHON"
-                    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests/tools/apps/python")
-  add_dependencies(quick_perf_py reactor-recv _cproton)
-
-endif (BUILD_PYTHON)
-
-find_program(RUBY_EXE "ruby")
-if (RUBY_EXE AND BUILD_RUBY)
-  set (rb_root "${pn_test_root}/ruby")
-  set (rb_src "${CMAKE_CURRENT_SOURCE_DIR}/bindings/ruby")
-  set (rb_lib "${CMAKE_CURRENT_SOURCE_DIR}/bindings/ruby/lib")
-  set (rb_bin "${CMAKE_CURRENT_BINARY_DIR}/bindings/ruby")
-  set (rb_bld "$<TARGET_FILE_DIR:qpid-proton>")
-  set (rb_path $ENV{PATH} ${rb_bin} ${rb_bld})
-  set (rb_rubylib ${rb_root} ${rb_src} ${rb_bin} ${rb_bld} ${rb_lib})
-  to_native_path("${rb_path}" rb_path)
-  to_native_path("${rb_rubylib}" rb_rubylib)
-
-  # ruby example tests have no dependencies other than standard ruby.
-  add_test(NAME ruby-example-test
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/examples/ruby
-    COMMAND ${env_py} -- "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}"
-    ${RUBY_EXE} example_test.rb -v)
-
-  # ruby unit tests:  tests/ruby/proton-test
-  # only enable the tests if the Ruby gem dependencies were found
-  if (DEFAULT_RUBY_TESTING)
-    add_test (NAME ruby-unit-test
-              COMMAND ${env_py} "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}"
-                      "${rb_root}/proton-test")
-
-    # ruby spec tests
-    find_program(RSPEC_EXE rspec)
-    if (RSPEC_EXE)
-      add_test (NAME ruby-spec-test
-                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bindings/ruby
-                COMMAND ${env_py} "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}"
-                        ${RSPEC_EXE})
-
-    else(RSPEC_EXE)
-      message (STATUS "Cannot find rspec, skipping rspec tests")
-    endif(RSPEC_EXE)
-  else (DEFAULT_RUBY_TESTING)
-    message(STATUS "Skipping Ruby tests: missing dependencies")
-  endif (DEFAULT_RUBY_TESTING)
-else (RUBY_EXE)
-  message (STATUS "Cannot find ruby, skipping ruby tests")
-endif()
-
-mark_as_advanced (RUBY_EXE RSPEC_EXE)
-
-if (BUILD_JAVASCRIPT)
-  add_test (javascript-codec ${env_py} node ${pn_test_root}/javascript/codec.js)
-  add_test (javascript-message ${env_py} node ${pn_test_root}/javascript/message.js)
-endif (BUILD_JAVASCRIPT)

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/bindings/CMakeLists.txt b/proton-c/bindings/CMakeLists.txt
deleted file mode 100644
index 37943dc..0000000
--- a/proton-c/bindings/CMakeLists.txt
+++ /dev/null
@@ -1,144 +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.
-#
-
-# Add bindings that do not require swig here - the directory name must be the same as the binding name
-# See below for swig bindings
-set(BINDINGS javascript cpp go)
-
-# Prerequisites for javascript.
-#
-# It uses a C/C++ to JavaScript cross-compiler called emscripten (https://github.com/kripken/emscripten). Emscripten takes C/C++
-# and compiles it into a highly optimisable subset of JavaScript called asm.js (http://asmjs.org/) that can be
-# aggressively optimised and run at near-native speed (usually between 1.5 to 10 times slower than native C/C++).
-find_package(Emscripten)
-if (EMSCRIPTEN_FOUND)
-  set (DEFAULT_JAVASCRIPT ON)
-endif (EMSCRIPTEN_FOUND)
-
-# Prerequisites for C++
-if (CMAKE_CXX_COMPILER)
-  set (DEFAULT_CPP ON)
-endif (CMAKE_CXX_COMPILER)
-
-# Prerequisites for Go
-find_program(GO_EXE go)
-mark_as_advanced(GO_EXE)
-if (GO_EXE)
-  if(WIN32)
-    # Go on windows requires gcc tool chain
-    set (DEFAULT_GO OFF)
-  else()
-    set (DEFAULT_GO ON)
-  endif()
-endif (GO_EXE)
-
-if(SWIG_FOUND)
-  # Add any new swig bindings here - the directory name must be the same as the binding name
-  list(APPEND BINDINGS python ruby php perl)
-
-  include(UseSWIG)
-
-  # All swig modules should include ${PROTON_HEADERS} in SWIG_MODULE_<name>_EXTRA_DEPS
-  file(GLOB PROTON_HEADERS "${CMAKE_SOURCE_DIR}/proton-c/include/proton/*.h")
-  # All swig modules should include ${BINDING_DEPS} in swig_link_libraries
-  set (BINDING_DEPS qpid-proton)
-
-  # If swig version is 3.0 or greater then we can build some additional bindings
-  if (${SWIG_VERSION} VERSION_GREATER 3.0 OR ${SWIG_VERSION} VERSION_EQUAL 3.0)
-    list(APPEND SWIG_BINDINGS node)
-  endif()
-
-  # Add a block here to detect the prerequisites to build each language binding:
-  #
-  # If the prerequisites for the binding are present set a variable called
-  # DEFAULT_{uppercase name of binding} to ON
-
-  # Prerequisites for Python wrapper:
-  find_package (PythonLibs ${PYTHON_VERSION_STRING} EXACT)
-  if (PYTHONLIBS_FOUND)
-    set (DEFAULT_PYTHON ON)
-  endif (PYTHONLIBS_FOUND)
-
-  # Prerequisites for Ruby:
-  find_program(GEM_EXE "gem")
-  mark_as_advanced(GEM_EXE)
-  macro(CheckRubyGem varname gemname)
-    execute_process(COMMAND ${GEM_EXE} list --local ${gemname}
-      OUTPUT_VARIABLE CHECK_OUTPUT)
-
-    set (${varname} OFF)
-
-    if (CHECK_OUTPUT MATCHES "${gemname}[ ]+\(.*\)")
-      message(STATUS "Found Ruby gem: ${gemname}")
-      set (${varname} ON)
-    else()
-      message(STATUS "Missing Ruby gem dependency: ${gemname}")
-      set (${varname} OFF)
-    endif()
-  endmacro()
-
-  find_package(Ruby)
-  if (RUBY_FOUND)
-    set (DEFAULT_RUBY ON)
-
-    CheckRubyGem("HAS_RUBY_GEM_RSPEC"     "rspec")
-    CheckRubyGem("HAS_RUBY_GEM_SIMPLECOV" "simplecov")
-
-    if (HAS_RUBY_GEM_RSPEC AND HAS_RUBY_GEM_SIMPLECOV)
-      set (DEFAULT_RUBY_TESTING ON CACHE INTERNAL "")
-    else()
-      message(STATUS "Skipping Ruby bindings due to missing dependencies...")
-      set (DEFAULT_RUBY_TESTING OFF CACHE INTERNAL "")
-      set (DEFAULT_RUBY OFF)
-    endif (HAS_RUBY_GEM_RSPEC AND HAS_RUBY_GEM_SIMPLECOV)
-  endif (RUBY_FOUND)
-
-  # Prerequites for PHP:
-  # For now, assume PHP support if the 'php-config' tool is present.
-  # @todo: allow user to specify which php-config if multiple PHP sources installed!
-  find_program(PHP_CONFIG_EXE php-config)
-  if (PHP_CONFIG_EXE)
-    find_program(PHP_EXE php)
-    mark_as_advanced (PHP_EXE)
-    if (PHP_EXE)
-      set (DEFAULT_PHP ON)
-    endif (PHP_EXE)
-  endif (PHP_CONFIG_EXE)
-  mark_as_advanced (PHP_CONFIG_EXE)
-
-  # Prerequisites for Perl:
-  include(ProtonFindPerl)
-  if (PERLLIBS_FOUND)
-    set (DEFAULT_PERL ON)
-  endif (PERLLIBS_FOUND)
-
-endif()
-
-# Shouldn't need to modify below here when adding new language binding
-foreach(BINDING ${BINDINGS})
-  string(TOUPPER ${BINDING} UBINDING)
-  # Check whether default was overridden
-  if ("NOBUILD_${UBINDING}")
-    set ("DEFAULT_${UBINDING}" OFF)
-  endif ()
-  option("BUILD_${UBINDING}" "Build ${BINDING} language binding" ${DEFAULT_${UBINDING}})
-  if (BUILD_${UBINDING})
-    add_subdirectory(${BINDING})
-  endif ()
-endforeach(BINDING)

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/CMakeLists.txt b/proton-c/bindings/cpp/CMakeLists.txt
deleted file mode 100644
index 0cc4024..0000000
--- a/proton-c/bindings/cpp/CMakeLists.txt
+++ /dev/null
@@ -1,182 +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(cpp.cmake) # Compiler checks
-
-include_directories(
-  "${CMAKE_SOURCE_DIR}/proton-c/include"
-  "${CMAKE_CURRENT_SOURCE_DIR}/include"
-  "${CMAKE_CURRENT_SOURCE_DIR}/src/include")
-
-add_definitions(${CXX_WARNING_FLAGS})
-
-set(qpid-proton-cpp-source
-  src/binary.cpp
-  src/byte_array.cpp
-  src/cached_map.cpp
-  src/connection.cpp
-  src/connection_options.cpp
-  src/connector.cpp
-  src/container.cpp
-  src/container_impl.cpp
-  src/contexts.cpp
-  src/data.cpp
-  src/decimal.cpp
-  src/decoder.cpp
-  src/delivery.cpp
-  src/duration.cpp
-  src/encoder.cpp
-  src/endpoint.cpp
-  src/error.cpp
-  src/error_condition.cpp
-  src/event_loop.cpp
-  src/handler.cpp
-  src/io/connection_driver.cpp
-  src/io/link_namer.cpp
-  src/link.cpp
-  src/listener.cpp
-  src/message.cpp
-  src/messaging_adapter.cpp
-  src/node_options.cpp
-  src/object.cpp
-  src/proton_bits.cpp
-  src/proton_event.cpp
-  src/proton_handler.cpp
-  src/reactor.cpp
-  src/receiver.cpp
-  src/receiver_options.cpp
-  src/reconnect_timer.cpp
-  src/sasl.cpp
-  src/scalar_base.cpp
-  src/sender.cpp
-  src/sender_options.cpp
-  src/session.cpp
-  src/session_options.cpp
-  src/source.cpp
-  src/ssl.cpp
-  src/ssl_domain.cpp
-  src/target.cpp
-  src/terminus.cpp
-  src/timestamp.cpp
-  src/tracker.cpp
-  src/transfer.cpp
-  src/transport.cpp
-  src/type_id.cpp
-  src/url.cpp
-  src/uuid.cpp
-  src/value.cpp
-  )
-
-set_source_files_properties (
-  ${qpid-proton-cpp-source}
-  PROPERTIES
-  COMPILE_FLAGS "${LTO}"
-  )
-
-add_library(qpid-proton-cpp SHARED ${qpid-proton-cpp-source})
-
-target_link_libraries (qpid-proton-cpp ${PLATFORM_LIBS} qpid-proton)
-
-set_target_properties (
-  qpid-proton-cpp
-  PROPERTIES
-  LINKER_LANGUAGE CXX
-  VERSION   "${PN_LIB_SOMAJOR}.${PN_LIB_SOMINOR}"
-  SOVERSION "${PN_LIB_SOMAJOR}"
-  LINK_FLAGS "${CATCH_UNDEFINED} ${LTO}"
-  )
-
-## Install
-
-install(TARGETS qpid-proton-cpp
-  EXPORT  proton-cpp
-  RUNTIME DESTINATION bin
-  ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-  LIBRARY DESTINATION ${LIB_INSTALL_DIR})
-
-# Install windows qpid-proton-cpp pdb files
-if (MSVC)
-  install(FILES $<TARGET_PDB_FILE:qpid-proton-cpp>
-    DESTINATION bin
-    CONFIGURATIONS RelWithDebInfo Debug
-    OPTIONAL)
-endif (MSVC)
-
-install (DIRECTORY "include/proton" DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.hpp")
-
-add_subdirectory(docs)
-add_subdirectory(${CMAKE_SOURCE_DIR}/tests/tools/apps/cpp ${CMAKE_BINARY_DIR}/tests/tools/apps/cpp)
-
-# Pkg config file
-configure_file(
-  ${CMAKE_CURRENT_SOURCE_DIR}/libqpid-proton-cpp.pc.in
-  ${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton-cpp.pc @ONLY)
-install (FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton-cpp.pc
-  DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-
-if (DEFINED CMAKE_IMPORT_LIBRARY_PREFIX)
-set(PROTONCPPLIB ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_IMPORT_LIBRARY_SUFFIX})
-set(PROTONCPPLIBDEBUG ${CMAKE_IMPORT_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_DEBUG_POSTFIX}${CMAKE_IMPORT_LIBRARY_SUFFIX})
-else ()
-set(PROTONCPPLIB ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_SHARED_LIBRARY_SUFFIX})
-set(PROTONCPPLIBDEBUG ${CMAKE_SHARED_LIBRARY_PREFIX}qpid-proton-cpp${CMAKE_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
-endif ()
-
-include(WriteBasicConfigVersionFile)
-
-configure_file(
-  ${CMAKE_CURRENT_SOURCE_DIR}/ProtonCppConfig.cmake.in
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfig.cmake @ONLY)
-write_basic_config_version_file(
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfigVersion.cmake
-  VERSION ${PN_VERSION}
-  COMPATIBILITY AnyNewerVersion)
-install (FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfig.cmake
-  ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfigVersion.cmake
-  DESTINATION ${LIB_INSTALL_DIR}/cmake/ProtonCpp)
-
-## Test
-if (ENABLE_VALGRIND AND VALGRIND_EXE)
-  set(memcheck-cmd ${VALGRIND_EXE} --error-exitcode=42 --quiet --leak-check=full --trace-children=yes)
-endif ()
-
-macro(add_cpp_test test)
-  add_executable (${test} src/${test}.cpp)
-  target_link_libraries (${test} qpid-proton qpid-proton-cpp)
-  if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-    add_test (NAME cpp-${test}
-      COMMAND ${env_py}
-      "PATH=$<TARGET_FILE_DIR:qpid-proton>"
-      $<TARGET_FILE:${test}> ${ARGN})
-  else ()
-    add_test (NAME cpp-${test} COMMAND ${memcheck-cmd} ${CMAKE_CURRENT_BINARY_DIR}/${test} ${ARGN})
-  endif ()
-endmacro(add_cpp_test)
-
-add_cpp_test(codec_test)
-#add_cpp_test(engine_test)
-add_cpp_test(thread_safe_test)
-add_cpp_test(interop_test ${CMAKE_SOURCE_DIR}/tests)
-add_cpp_test(message_test)
-add_cpp_test(scalar_test)
-add_cpp_test(value_test)
-add_cpp_test(container_test)
-add_cpp_test(url_test)

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/ProtonCppConfig.cmake.in
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/ProtonCppConfig.cmake.in b/proton-c/bindings/cpp/ProtonCppConfig.cmake.in
deleted file mode 100644
index 0068067..0000000
--- a/proton-c/bindings/cpp/ProtonCppConfig.cmake.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.
-#
-
-# Name: Proton
-# Description: Qpid Proton C library
-# Version: @PN_VERSION@
-# URL: http://qpid.apache.org/proton/
-
-set (ProtonCpp_VERSION       @PN_VERSION@)
-
-set (ProtonCpp_INCLUDE_DIRS  @INCLUDEDIR@)
-set (ProtonCpp_LIBRARIES     optimized @LIBDIR@/@PROTONCPPLIB@ debug @LIBDIR@/@PROTONCPPLIBDEBUG@)
-
-set (ProtonCpp_FOUND True)

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/README.md
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/README.md b/proton-c/bindings/cpp/README.md
deleted file mode 100644
index bedfd0d..0000000
--- a/proton-c/bindings/cpp/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Qpid Proton C++
-
-This is a C++ binding for the Proton API.
-
-The documentation includes a tutorial and API documentation.
-
-To generate the documentation go to your build directory, run `make
-docs-cpp`, and open `proton-c/bindings/cpp/docs/html/index.html` in a
-browser.
-
-## Todo
-
-### Tests
-
-- Interop/type testing: proton/tests/interop, new interop suite
-- More unit testing, measured code coverage
-- Test examples against ActiveMQ and qpidd
-
-### Bugs
-
-- Error handling:
-  - examples exit silently on broker exit/not running, core on
-    no-such-queue (e.g., with qpidd)
-
-### Features
-
-- SASL/SSL support with interop tests.
-- Reconnection
-- Browsing
-- Selectors
-- AMQP described types and arrays, full support and tests
-- Durable subscriptions & demos (see python changes)
-- Transactions
-- Heartbeats
-
-### Nice to have
-
-- C++11 lambda version of handlers
-- Helpers (or at least doc) for multi-threaded use (container per connection)
-- Usable support for decimal types
-- Expose endpoint conditions as C++ proton::condition error class
-- Selectables and 3rd party event loop support
-- More efficient shared_ptr (single family per proton object)

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/cpp.cmake
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/cpp.cmake b/proton-c/bindings/cpp/cpp.cmake
deleted file mode 100644
index 51980d7..0000000
--- a/proton-c/bindings/cpp/cpp.cmake
+++ /dev/null
@@ -1,35 +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.
-#
-
-# Check C++ capabilities.
-
-include(CheckCXXSourceCompiles)
-
-if (CMAKE_CXX_COMPILER)
-  set(CMAKE_REQUIRED_FLAGS "${CXX_WARNING_FLAGS}")
-  check_cxx_source_compiles("long long ll; int main(int, char**) { return 0; }" HAS_LONG_LONG)
-  if (HAS_LONG_LONG)
-    add_definitions(-DPN_CPP_HAS_LONG_LONG=1)
-  endif()
-  check_cxx_source_compiles("#include <memory>\nstd::shared_ptr<int> i; std::unique_ptr<int> u; int main(int, char**) { return 0; }" HAS_STD_PTR)
-  if (HAS_STD_PTR)
-    add_definitions(-DPN_CPP_HAS_STD_PTR=1)
-  endif()
-  check_cxx_source_compiles("#if defined(__cplusplus) && __cplusplus >= 201100\nint main(int, char**) { return 0; }\n#endif" HAS_CPP11)
-endif()

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/docs/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/CMakeLists.txt b/proton-c/bindings/cpp/docs/CMakeLists.txt
deleted file mode 100644
index d512d15..0000000
--- a/proton-c/bindings/cpp/docs/CMakeLists.txt
+++ /dev/null
@@ -1,41 +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.
-#
-
-find_package(Doxygen)
-
-if (DOXYGEN_FOUND)
-  configure_file (
-    ${CMAKE_CURRENT_SOURCE_DIR}/user.doxygen.in
-    ${CMAKE_CURRENT_BINARY_DIR}/user.doxygen)
-
-  file(GLOB_RECURSE headers ../include/proton/*.hpp)
-  add_custom_target (docs-cpp
-    COMMAND ${CMAKE_COMMAND} -E remove_directory html # get rid of old files
-    COMMAND ${DOXYGEN_EXECUTABLE} user.doxygen
-    DEPENDS ${headers}
-    )
-  add_dependencies (docs docs-cpp)
-  # HTML files are generated to ./html - put those in the install.
-  install (DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html/"
-    DESTINATION "${PROTON_SHARE}/docs/api-cpp"
-    COMPONENT documentation
-    OPTIONAL)
-endif (DOXYGEN_FOUND)
-
-set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES html)

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/docs/io.md
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/io.md b/proton-c/bindings/cpp/docs/io.md
deleted file mode 100644
index 230e538..0000000
--- a/proton-c/bindings/cpp/docs/io.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# IO integration {#io_page}
-
-**Experimental** - The `proton::io` interfaces are new and remain
-subject to change.
-
-The `proton::io` namespace contains a service provider interface (SPI)
-that allows you to implement the Proton API over alternative IO or
-threading libraries.
-
-The `proton::io::connection_driver` class converts an AMQP-encoded
-byte stream, read from any IO source, into `proton::messaging_handler`
-calls. It generates an AMQP-encoded byte stream as output that can be
-written to any IO destination.
-
-The connection driver is deliberately very simple and low level. It
-performs no IO of its own, no thread-related locking, and is written
-in simple C++98-compatible code.
-
-The connection dirver can be used standalone as an AMQP translator, or
-you can implement the following two interfaces to provide a complete
-implementation of the Proton API that can run any Proton application:
-
- - `proton::container` lets the user initiate or listen for connections.
- - `proton::event_loop` lets the user serialize work with respect to a
-   connection.
-
-@see @ref mt/epoll\_container.cpp for an example.

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/docs/main.md
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/main.md b/proton-c/bindings/cpp/docs/main.md
deleted file mode 100644
index 93ba2c0..0000000
--- a/proton-c/bindings/cpp/docs/main.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Introduction {#mainpage}
-
-This is the C++ API for the Proton AMQP protocol engine. It allows you
-to write client and server applications that send and receive AMQP
-messages.
-
-The best way to start is with the @ref tutorial.
-
-## An overview of the AMQP model
-
-Messages are transferred between connected peers over *links*. The
-sending end of a link is a `proton::sender`, and the receiving end is
-a `proton::receiver`.  Links have named 'source' and 'target'
-addresses.  See "Sources and Targets" below for more information.
-
-Links are grouped in a `proton::session`. Messages for links in the
-same session are sent sequentially.  Messages on different sessions
-can be interleaved, so a large message being sent on one session does
-not block messages being sent on other sessions.
-
-Sessions are created over a `proton::connection`, which represents the
-network connection. You can create links directly on a connection
-using its default session if you don't need multiple sessions.
-
-`proton::message` represents the message: the body (content),
-properties, headers, and annotations. A `proton::delivery` represents
-a message being received over a link. The receiver acknowledges the
-delivery by accepting or rejecting it.  The corresponding message
-sender uses a `proton::tracker` to follow the state of the delivery.
-
-The delivery is *settled* when both ends are done with it.  Different
-settlement methods give different levels of reliability:
-*at-most-once*, *at-least-once*, and *exactly-once*. See "Delivery
-Guarantees" below for details.
-
-## Sources and targets
-
-Every link has two addresses, *source* and *target*. The most common
-pattern for using these addresses is as follows:
-
-When a client creates a *receiver* link, it sets the *source*
-address. This means "I want to receive messages from this source."
-This is often referred to as "subscribing" to the source. When a
-client creates a *sender* link, it sets the *target* address. This
-means "I want to send to this target."
-
-In the case of a broker, the source or target usually refers to a
-queue or topic. In general they can refer to any AMQP-capable node.
-
-In the *request-response* pattern, a request message carries a
-*reply-to* address for the response message. This can be any AMQP
-address, but it is often useful to create a temporary address for just
-the response message.
-
-The most common approach is for the client to create a *receiver* for
-the response with the *dynamic* flag set. This asks the server to
-generate a unique *source* address automatically and discard it when
-the link closes. The client uses this "dynamic" source address as the
-reply-to when it sends the request, and the response is delivered to
-the client's dynamic receiver.
-
-In the case of a broker, a dynamic address usually corresponds to a
-temporary queue, but any AMQP request-response server can use this
-technique. The @ref server_direct.cpp example illustrates how to
-implement a queueless request-response server.
-
-## Delivery guarantees
-
-Proton offers three levels of message delivery guarantee:
-*at-most-once*, *at-least-once*, and *exactly-once*.
-
-For *at-most-once*, the sender settles the message as soon as it sends
-it. If the connection is lost before the message is received by the
-receiver, the message will not be delivered.
-
-For *at-least-once*, the receiver accepts and settles the message on
-receipt. If the connection is lost before the sender is informed of
-the settlement, then the delivery is considered in-doubt and should be
-retried. This will ensure it eventually gets delivered (provided of
-course the connection and link can be reestablished). It may mean that
-it is delivered multiple times, however.
-
-Finally, for *exactly-once*, the receiver accepts the message but
-doesn't settle it. The sender settles once it is aware that the
-receiver accepted it. In this way the receiver retains knowledge of an
-accepted message until it is sure the sender knows it has been
-accepted. If the connection is lost before settlement, the receiver
-informs the sender of all the unsettled deliveries it knows about, and
-from this the sender can deduce which need to be redelivered. The
-sender likewise informs the receiver which deliveries it knows about,
-from which the receiver can deduce which have already been settled.
-
-## Anatomy of a Proton application
-
-To send AMQP commands, call methods on classes like `proton::connection`,
-`proton::sender`, `proton::receiver`, or `proton::delivery`.
-
-To handle incoming commands, subclass the `proton::messaging_handler`
-interface. The handler member functions are called when AMQP protocol
-events occur on a connection. For example
-`proton::messaging_handler::on_message` is called when a message is
-received.
-
-Messages are represented by `proton::message`. AMQP defines a type
-encoding that you can use for interoperability, but you can also use
-any encoding you wish and pass binary data as the
-`proton::message::body`. `proton::value` and `proton::scalar` provide
-conversion between AMQP and C++ data types.
-
-There are several ways to manage handlers and AMQP objects, for
-different types of application. All of them use the same
-`proton::messaging_handler` subclasses so code can be re-used if you
-change your approach.
-
-### %proton::default_container - Easy single-threaded applications
-
-`proton::container` is the top-level object in a proton application.
-Use proton::container::connect() and proton::container::listen() to
-create connections. The container polls multiple connections and calls
-protocol events on your `proton::messaging_handler` subclasses.
-
-The default container implementation is created using
-`proton::default_container`.
-
-You can implement your own container to integrate proton with any IO
-provider using the `proton::io::connection_driver`.
-
-@see @ref io_page

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/docs/mt.md
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/mt.md b/proton-c/bindings/cpp/docs/mt.md
deleted file mode 100644
index 1a63ea6..0000000
--- a/proton-c/bindings/cpp/docs/mt.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Multithreaded Proton applications {#mt_page}
-
-For an example see @ref mt/broker.cpp
-
-Most classes in namespace @ref proton are not thread-safe. Objects
-belonging to a single connection (`proton::connection`,
-`proton::sender`, `proton::receiver`, and so on) *must not* be used
-concurrently. Objects associated with *different* connections *can* be
-used concurrently in separate threads.
-
-A multithreaded container calls event-handling functions for each
-connection *sequentially* but can process *different* connections
-concurrently in different threads. If you use a *separate*
-`proton::messaging_handler` for each connection, then event-handling
-functions can can use their parameters and the handler's own data
-members without locks. The handler functions will never be called
-concurrently. You can set the handlers for each connection using
-`proton::container::connect()` and `proton::container::listen()`.
-
-The example @ref mt/broker.cpp is a multithreaded broker using this
-approach.  It creates a new handler for each incoming connection to
-manage the state of that connection's `proton::sender` and
-`proton::receiver` links. The handler needs no lock because it only
-deals with state in the context of one connection.
-
-The `proton::event_loop` class represents the sequence of events
-associated with a connection.  `proton::event_loop::inject()` allows
-another thread to "inject" work to be executed in sequence with the
-rest of the events so it can operate safely on data associated with
-the connection.
-
-In the @ref mt/broker.cpp example, a queue can receive messages from
-one connection but have subscribers on another connection. Subscribers
-pass a function object to the queue which uses
-`proton::event_loop::inject()` to call a notification callback on the
-handler for that connection. The callback is executed in the
-connection's event loop so it can use a `proton::sender` object to
-send the message safely.
-
-*Note*: It is possible to share a single handler between more than one
-connection.  In that case it *can* be called concurrently on behalf of
-different connections, so you will need suitable locking.
-
-@see @ref io_page - Implementing your own container.

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/docs/types.md
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/types.md b/proton-c/bindings/cpp/docs/types.md
deleted file mode 100644
index 6a56be0..0000000
--- a/proton-c/bindings/cpp/docs/types.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# AMQP and C++ types {#types_page}
-
-An AMQP message body can hold binary data using any encoding you
-like. AMQP also defines its own encoding and types. The AMQP encoding
-is often used in message bodies because it is supported by AMQP
-libraries on many languages and platforms. You also need to use the
-AMQP types to set and examine message properties.
-
-## Scalar types
-
-Each type is identified by a proton::type_id.
-
-C++ type            | AMQP type_id         | Description
---------------------|----------------------|-----------------------
-bool                | proton::BOOLEAN      | Boolean true or false
-uint8_t             | proton::UBYTE        | 8-bit unsigned byte
-int8_t              | proton::BYTE         | 8-bit signed byte
-uint16_t            | proton::USHORT       | 16-bit unsigned integer
-int16_t             | proton::SHORT        | 16-bit signed integer
-uint32_t            | proton::UINT         | 32-bit unsigned integer
-int32_t             | proton::INT          | 32-bit signed integer
-uint64_t            | proton::ULONG        | 64-bit unsigned integer
-int64_t             | proton::LONG         | 64-bit signed integer
-wchar_t             | proton::CHAR         | 32-bit unicode code point
-float               | proton::FLOAT        | 32-bit binary floating point
-double              | proton::DOUBLE       | 64-bit binary floating point
-proton::timestamp   | proton::TIMESTAMP    | 64-bit signed milliseconds since 00:00:00 (UTC), 1 January 1970.
-proton::decimal32   | proton::DECIMAL32    | 32-bit decimal floating point
-proton::decimal64   | proton::DECIMAL64    | 64-bit decimal floating point
-proton::decimal128  | proton::DECIMAL128   | 128-bit decimal floating point
-proton::uuid        | proton::UUID         | 128-bit universally-unique identifier
-std::string         | proton::STRING       | UTF-8 encoded Unicode string
-proton::symbol      | proton::SYMBOL       | 7-bit ASCII encoded string
-proton::binary      | proton::BINARY       | Variable-length binary data
-
-proton::scalar is a holder that can accept a scalar value of any type.
-
-## Compound types
-
-C++ type            | AMQP type_id         | Description
---------------------|----------------------|-----------------------
-See below           | proton::ARRAY        | Sequence of values of the same type
-See below           | proton::LIST         | Sequence of values of mixed types
-See below           | proton::MAP          | Map of key-value pairs
-
-proton::value is a holder that can accept any AMQP value, scalar or
-compound.
-
-proton::ARRAY converts to and from C++ sequences: std::vector,
-std::deque, std::list, and std::forward_list.
-
-proton::LIST converts to and from sequences of proton::value or
-proton::scalar, which can hold mixed types of data.
-
-proton::MAP converts to and from std::map, std::unordered_map, and
-sequences of std::pair.
-
-When decoding, the encoded map types must be convertible to the element type of the
-C++ sequence or the key-value types of the C++ map.  Use proton::value as the
-element or key-value type to decode any ARRAY, LIST, or MAP.
-
-For example you can decode any AMQP MAP into:
-
-    std::map<proton::value, proton::value>
-
-You can decode any AMQP LIST or ARRAY into:
-
-    std::vector<proton::value>
-
-## Include files
-
-You can simply include proton/types.hpp to get all the type
-definitions and conversions. Alternatively, you can selectively
-include only what you need:
-
- - Include proton/types_fwd.hpp: forward declarations for all types.
- - Include individual `.hpp` files as per the table above.

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/docs/user.doxygen.in
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/user.doxygen.in b/proton-c/bindings/cpp/docs/user.doxygen.in
deleted file mode 100644
index a56eb98..0000000
--- a/proton-c/bindings/cpp/docs/user.doxygen.in
+++ /dev/null
@@ -1,78 +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.
-##
-
-# Project options
-
-PROJECT_NAME            = "Qpid Proton C++"
-PROJECT_NUMBER          = @PN_VERSION_MAJOR@.@PN_VERSION_MINOR@.@PN_VERSION_POINT@
-OUTPUT_DIRECTORY        = .
-OUTPUT_LANGUAGE         = English
-BRIEF_MEMBER_DESC       = YES
-REPEAT_BRIEF            = YES
-ALWAYS_DETAILED_SEC     = NO
-INLINE_INHERITED_MEMB   = YES
-JAVADOC_AUTOBRIEF       = YES
-MULTILINE_CPP_IS_BRIEF  = NO
-INHERIT_DOCS            = YES
-BUILTIN_STL_SUPPORT     = YES
-INLINE_SIMPLE_STRUCTS   = YES
-HIDE_UNDOC_CLASSES      = YES
-HIDE_COMPOUND_REFERENCE = YES
-HIDE_SCOPE_NAMES        = YES
-MAX_INITIALIZER_LINES   = 0
-ALPHABETICAL_INDEX      = NO
-
-# Redefine protected as private and strip out the PN_CPP_EXTERN macro
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-PREDEFINED = protected=private PN_CPP_EXTERN= PN_CPP_OVERRIDE= PN_CPP_HAS_CPP11=1 PN_CPP_HAS_SHARED_PTR=1 PN_CPP_HAS_UNIQUE_PTR=1 PN_CPP_HAS_LONG_LONG=1 PN_CPP_HAS_NULLPTR=1 PN_CPP_HAS_RVALUE_REFERENCES=1 PN_CPP_HAS_OVERRIDE=override PN_CPP_HAS_EXPLICIT_CONVERSIONS=1 PN_CPP_HAS_DEFAULTED_FUNCTIONS=1 PN_CPP_HAS_DELETED_FUNCTIONS=1 PN_CPP_HAS_STD_FUNCTION=1 PN_CPP_HAS_CHRONO=1
-EXCLUDE_SYMBOLS = internal internal::*
-
-# Configuration options related to warning and progress messages
-
-QUIET                  = YES
-WARNINGS               = YES
-
-# Configuration options related to the input files
-
-INPUT = @CMAKE_SOURCE_DIR@/proton-c/bindings/cpp/include @CMAKE_SOURCE_DIR@/proton-c/bindings/cpp/docs @CMAKE_SOURCE_DIR@/examples/cpp
-FILE_PATTERNS          = *.hpp *.md *.dox
-EXCLUDE_PATTERNS       = @CMAKE_SOURCE_DIR@/examples/*.?pp  # Don't parse example sources, only *.dox
-FULL_PATH_NAMES        = YES
-RECURSIVE              = YES
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@/proton-c/bindings/cpp/include
-EXAMPLE_PATH           = @CMAKE_SOURCE_DIR@/examples/cpp
-EXAMPLE_RECURSIVE      = YES
-
-# View and list options
-
-GENERATE_TREEVIEW       = YES
-GENERATE_TODOLIST       = NO
-GENERATE_TESTLIST       = NO
-GENERATE_BUGLIST        = NO
-GENERATE_DEPRECATEDLIST = YES
-
-# Configuration options related to the output format
-
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-GENERATE_LATEX         = NO

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/annotation_key.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/annotation_key.hpp b/proton-c/bindings/cpp/include/proton/annotation_key.hpp
deleted file mode 100644
index 4995141..0000000
--- a/proton-c/bindings/cpp/include/proton/annotation_key.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef PROTON_ANNOTATION_KEY_HPP
-#define PROTON_ANNOTATION_KEY_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 "./scalar_base.hpp"
-#include "./symbol.hpp"
-
-#include <proton/type_compat.h>
-
-namespace proton {
-
-/// A key for use with AMQP annotation maps.
-///
-/// An annotation_key can contain either a uint64_t or a proton::symbol.
-class annotation_key : public scalar_base {
-  public:
-    /// An empty annotation key.
-    annotation_key() {}
-
-    /// Construct from any type that can be assigned.
-    template <class T> annotation_key(const T& x) { *this = x; }
-
-    /// @name Assign from a uint64_t or symbol.
-    /// @{
-    annotation_key& operator=(uint64_t x) { put_(x); return *this; }
-    annotation_key& operator=(const symbol& x) { put_(x); return *this; }
-    /// @}
-
-    /// @name Extra conversions for strings, treated as codec::SYMBOL.
-    /// @{
-    annotation_key& operator=(const std::string& x) { put_(symbol(x)); return *this; }
-    annotation_key& operator=(const char *x) { put_(symbol(x)); return *this; }
-    /// @}
-
-    /// @cond INTERNAL
-  friend class message;
-  friend class codec::decoder;
-    /// @endcond
-};
-
-/// @cond INTERNAL
-/// Primary template for get<T>(message_id), specialized for legal types.
-template <class T> T get(const annotation_key& x);
-/// @endcond
-
-/// Get the uint64_t value or throw conversion_error.
-///
-/// @related annotation_key
-template<> inline uint64_t get<uint64_t>(const annotation_key& x) { return internal::get<uint64_t>(x); }
-
-/// Get the @ref symbol value or throw conversion_error.
-///
-/// @related annotation_key
-template<> inline symbol get<symbol>(const annotation_key& x) { return internal::get<symbol>(x); }
-
-/// Get the @ref binary value or throw conversion_error.
-///
-/// @copydoc scalar::coerce
-/// @related annotation_key
-template<class T> T coerce(const annotation_key& x) { return internal::coerce<T>(x); }
-
-} // proton
-
-#endif // PROTON_ANNOTATION_KEY_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/binary.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/binary.hpp b/proton-c/bindings/cpp/include/proton/binary.hpp
deleted file mode 100644
index cf4c7a2..0000000
--- a/proton-c/bindings/cpp/include/proton/binary.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef PROTON_BINARY_HPP
-#define PROTON_BINARY_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 "./types_fwd.hpp"
-
-#include <proton/type_compat.h>
-
-#include <iosfwd>
-#include <string>
-#include <vector>
-
-namespace proton {
-
-/// Arbitrary binary data.
-class binary : public std::vector<uint8_t> {
-  public:
-    /// @name Constructors
-    /// @{
-    explicit binary() : std::vector<value_type>() {}
-    explicit binary(size_t n) : std::vector<value_type>(n) {}
-    explicit binary(size_t n, value_type x) : std::vector<value_type>(n, x) {}
-    explicit binary(const std::string& s) : std::vector<value_type>(s.begin(), s.end()) {}
-    template <class Iter> binary(Iter first, Iter last) : std::vector<value_type>(first, last) {}
-    /// @}
-
-    /// Convert to std::string
-    operator std::string() const { return std::string(begin(), end()); }
-
-    /// Assignment
-    binary& operator=(const std::string& x) { assign(x.begin(), x.end()); return *this; }
-};
-
-/// Print a binary value
-PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, const binary&);
-
-} // proton
-
-#endif // PROTON_BINARY_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/byte_array.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/byte_array.hpp b/proton-c/bindings/cpp/include/proton/byte_array.hpp
deleted file mode 100644
index 9040133..0000000
--- a/proton-c/bindings/cpp/include/proton/byte_array.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef PROTON_BYTE_ARRAY_HPP
-#define PROTON_BYTE_ARRAY_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/comparable.hpp"
-#include "./types_fwd.hpp"
-
-#include <proton/type_compat.h>
-
-#include <algorithm>
-#include <iterator>
-
-namespace proton {
-
-namespace internal {
-PN_CPP_EXTERN void print_hex(std::ostream& o, const uint8_t* p, size_t n);
-}
-
-/// Arbitrary fixed-size data.
-///    
-/// Used to represent fixed-sized data types that don't have a natural
-/// C++ representation as an array of bytes.
-template <size_t N> class byte_array : private internal::comparable<byte_array<N> > {
-  public:
-    /// @name Sequence container typedefs
-    /// @{
-    typedef uint8_t                                   value_type;
-    typedef value_type*			              pointer;
-    typedef const value_type*                         const_pointer;
-    typedef value_type&                   	      reference;
-    typedef const value_type&             	      const_reference;
-    typedef value_type*          		      iterator;
-    typedef const value_type*			      const_iterator;
-    typedef std::size_t                    	      size_type;
-    typedef std::ptrdiff_t                   	      difference_type;
-    typedef std::reverse_iterator<iterator>	      reverse_iterator;
-    typedef std::reverse_iterator<const_iterator>     const_reverse_iterator;
-    /// @}
-
-    /// Zero-initialized byte array
-    byte_array() { std::fill(bytes_, bytes_+N, '\0'); }
-
-    /// Size of the array
-    static size_t size() { return N; }
-
-    /// @name Array operators
-    /// @{
-    value_type* begin() { return bytes_; }
-    value_type* end() { return bytes_+N; }
-    value_type& operator[](size_t i) { return bytes_[i]; }
-
-    const value_type* begin() const { return bytes_; }
-    const value_type* end() const { return bytes_+N; }
-    const value_type& operator[](size_t i) const { return bytes_[i]; }
-    /// @}
-
-    /// @name Comparison operators
-    /// @{
-  friend bool operator==(const byte_array& x, const byte_array& y) {
-      return std::equal(x.begin(), x.end(), y.begin());
-  }
-
-  friend bool operator<(const byte_array& x, const byte_array& y) {
-      return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end());
-  }
-    /// @}
-
-    /// Print byte array in hex
-  friend std::ostream& operator<<(std::ostream& o, const byte_array& b) {
-      internal::print_hex(o, b.begin(), b.size());
-      return o;
-  }
-
-  private:
-    value_type bytes_[N];
-};
-
-} // proton
-
-#endif // PROTON_BYTE_ARRAY_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/codec/amqp_types.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/amqp_types.hpp b/proton-c/bindings/cpp/include/proton/codec/amqp_types.hpp
deleted file mode 100644
index 5456225..0000000
--- a/proton-c/bindings/cpp/include/proton/codec/amqp_types.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef PROTON_CODEC_AMQP_TYPES_HPP
-#define PROTON_CODEC_AMQP_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.
- *
- */
-
-/// @cond INTERNAL
-/// XXX Remove this entirely
-    
-namespace proton {
-namespace codec {
-
-/// @name Experimental - Typedefs for AMQP scalar types.
-///
-/// These typedefs associate AMQP scalar type names with the
-/// corresponding C++ types. They are provided as a convenience for
-/// those familiar with AMQP, but you do not need to use them.  You
-/// can use the C++ types directly.
-///
-/// The typedef names have a `_type` suffix to avoid ambiguity with
-/// C++ reserved and std library type names.
-///    
-/// @{
-
-// XXX Consider prefixing these with amqp_ and dropping _type, now
-// that they're in the codec namespace
-    
-/// True or false.
-typedef bool boolean_type;
-
-/// 8-bit unsigned byte 
-typedef uint8_t ubyte_type;
-
-/// 8-bit signed byte
-typedef int8_t byte_type;
-
-/// 16-bit unsigned short integer
-typedef uint16_t ushort_type;
-
-/// 16-bit signed short integer
-typedef int16_t short_type;
-
-/// 32-bit unsigned integer
-typedef uint32_t uint_type;
-
-/// 32-bit signed integer
-typedef int32_t int_type;
-
-/// 64-bit unsigned long integer
-typedef uint64_t ulong_type;
-
-/// 64-bit signed long integer
-typedef int64_t long_type;
-
-/// 32-bit unicode code point
-typedef wchar_t char_type;
-
-/// 32-bit binary floating point
-typedef float float_type;
-
-/// 64-bit binary floating point
-typedef double double_type;
-
-/// An AMQP string is unicode UTF-8 encoded.
-typedef std::string string_type;
-
-/// An AMQP symbol is ASCII 7-bit encoded.
-typedef proton::symbol symbol_type;
-
-/// An AMQP binary contains variable length raw binary data.
-typedef proton::binary binary_type;
-
-/// A timestamp in milliseconds since the epoch 00:00:00 (UTC), 1 January 1970.
-typedef proton::timestamp timestamp_type;
-
-/// A 16-byte universally unique identifier.
-typedef proton::uuid uuid_type;
-
-/// 32-bit decimal floating point
-typedef proton::decimal32 decimal32_type;
-
-/// 64-bit decimal floating point
-typedef proton::decimal64 decimal64_type;
-
-/// 128-bit decimal floating point
-typedef proton::decimal128 decimal128_type;
-
-} // codec
-} // proton
-
-/// @endcond
-
-#endif // PROTON_CODEC_AMQP_TYPES_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/codec/common.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/common.hpp b/proton-c/bindings/cpp/include/proton/codec/common.hpp
deleted file mode 100644
index e8d8ce5..0000000
--- a/proton-c/bindings/cpp/include/proton/codec/common.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef PROTON_CODEC_COMMON_HPP
-#define PROTON_CODEC_COMMON_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 "../type_id.hpp"
-
-namespace proton {
-namespace codec {
-
-/// **Experimental** - Start encoding a complex type.
-struct start {
-    /// @cond INTERNAL
-    /// XXX Document
-    start(type_id type_=NULL_TYPE, type_id element_=NULL_TYPE,
-          bool described_=false, size_t size_=0) :
-        type(type_), element(element_), is_described(described_), size(size_) {}
-
-    type_id type;            ///< The container type: ARRAY, LIST, MAP or DESCRIBED.
-    type_id element;         ///< the element type for array only.
-    bool is_described;       ///< true if first value is a descriptor.
-    size_t size;             ///< the element count excluding the descriptor (if any)
-    /// @endcond
-
-    /// @cond INTERNAL
-    /// XXX Document
-    static start array(type_id element, bool described=false) { return start(ARRAY, element, described); }
-    static start list() { return start(LIST); }
-    static start map() { return start(MAP); }
-    static start described() { return start(DESCRIBED, NULL_TYPE, true); }
-    /// @endcond
-};
-
-/// **Experimental** - Finish inserting or extracting a complex type.
-struct finish {};
-
-} // codec
-} // proton
-
-#endif // PROTON_CODEC_COMMON_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/decoder.hpp b/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
deleted file mode 100644
index 3dc6d57..0000000
--- a/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
+++ /dev/null
@@ -1,214 +0,0 @@
-#ifndef PROTON_CODEC_DECODER_HPP
-#define PROTON_CODEC_DECODER_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/data.hpp"
-#include "../internal/type_traits.hpp"
-#include "../types_fwd.hpp"
-#include "./common.hpp"
-
-#include <proton/type_compat.h>
-
-#include <utility>
-
-namespace proton {
-
-class annotation_key;
-class message_id;
-class scalar;
-class value;
-
-namespace internal {
-class value_base;
-}
-
-namespace codec {
-
-/// **Experimental** - Stream-like decoder from AMQP bytes to C++
-/// values.
-///
-/// For internal use only.
-///
-/// @see @ref types_page for the recommended ways to manage AMQP data
-class decoder : public internal::data {
-  public:
-    /// Wrap a Proton C data object.  The exact flag if set means
-    /// decode only when there is an exact match between the AMQP and
-    /// C++ type. If not set then perform automatic conversions.
-    explicit decoder(const data& d, bool exact=false) : data(d), exact_(exact) {}
-
-    /// Attach decoder to a proton::value. The decoder is rewound to
-    /// the start of the data.
-    PN_CPP_EXTERN explicit decoder(const internal::value_base&, bool exact=false);
-
-    /// Decode AMQP data from a buffer and add it to the end of the
-    /// decoders stream.
-    PN_CPP_EXTERN void decode(const char* buffer, size_t size);
-
-    /// Decode AMQP data from a std::string and add it to the end of
-    /// the decoders stream.
-    PN_CPP_EXTERN void decode(const std::string&);
-
-    /// Return true if there are more value to extract at the current level.
-    PN_CPP_EXTERN bool more();
-
-    /// Get the type of the next value that will be read by
-    /// operator>>.
-    ///
-    /// @throw conversion_error if no more values. @see
-    /// decoder::more().
-    PN_CPP_EXTERN type_id next_type();
-
-    /// @name Extract built-in types
-    ///
-    /// @throw conversion_error if the decoder is empty or has an
-    /// incompatible type.
-    ///
-    /// @{
-    PN_CPP_EXTERN decoder& operator>>(bool&);
-    PN_CPP_EXTERN decoder& operator>>(uint8_t&);
-    PN_CPP_EXTERN decoder& operator>>(int8_t&);
-    PN_CPP_EXTERN decoder& operator>>(uint16_t&);
-    PN_CPP_EXTERN decoder& operator>>(int16_t&);
-    PN_CPP_EXTERN decoder& operator>>(uint32_t&);
-    PN_CPP_EXTERN decoder& operator>>(int32_t&);
-    PN_CPP_EXTERN decoder& operator>>(wchar_t&);
-    PN_CPP_EXTERN decoder& operator>>(uint64_t&);
-    PN_CPP_EXTERN decoder& operator>>(int64_t&);
-    PN_CPP_EXTERN decoder& operator>>(timestamp&);
-    PN_CPP_EXTERN decoder& operator>>(float&);
-    PN_CPP_EXTERN decoder& operator>>(double&);
-    PN_CPP_EXTERN decoder& operator>>(decimal32&);
-    PN_CPP_EXTERN decoder& operator>>(decimal64&);
-    PN_CPP_EXTERN decoder& operator>>(decimal128&);
-    PN_CPP_EXTERN decoder& operator>>(uuid&);
-    PN_CPP_EXTERN decoder& operator>>(std::string&);
-    PN_CPP_EXTERN decoder& operator>>(symbol&);
-    PN_CPP_EXTERN decoder& operator>>(binary&);
-    PN_CPP_EXTERN decoder& operator>>(message_id&);
-    PN_CPP_EXTERN decoder& operator>>(annotation_key&);
-    PN_CPP_EXTERN decoder& operator>>(scalar&);
-    PN_CPP_EXTERN decoder& operator>>(internal::value_base&);
-    PN_CPP_EXTERN decoder& operator>>(null&);
-    ///@}
-
-    /// Start decoding a container type, such as an ARRAY, LIST or
-    /// MAP.  This "enters" the container, more() will return false at
-    /// the end of the container.  Call finish() to "exit" the
-    /// container and move on to the next value.
-    PN_CPP_EXTERN decoder& operator>>(start&);
-
-    /// Finish decoding a container type, and move on to the next
-    /// value in the stream.
-    PN_CPP_EXTERN decoder& operator>>(const finish&);
-
-    /// @cond INTERNAL
-    template <class T> struct sequence_ref { T& ref; sequence_ref(T& r) : ref(r) {} };
-    template <class T> struct associative_ref { T& ref; associative_ref(T& r) : ref(r) {} };
-    template <class T> struct pair_sequence_ref { T& ref;  pair_sequence_ref(T& r) : ref(r) {} };
-
-    template <class T> static sequence_ref<T> sequence(T& x) { return sequence_ref<T>(x); }
-    template <class T> static associative_ref<T> associative(T& x) { return associative_ref<T>(x); }
-    template <class T> static pair_sequence_ref<T> pair_sequence(T& x) { return pair_sequence_ref<T>(x); }
-    /// @endcond
-
-    /// Extract any AMQP sequence (ARRAY, LIST or MAP) to a C++
-    /// sequence container of T if the elements types are convertible
-    /// to T. A MAP is extracted as `[key1, value1, key2, value2...]`.
-    template <class T> decoder& operator>>(sequence_ref<T> r)  {
-        start s;
-        *this >> s;
-        if (s.is_described) next();
-        r.ref.resize(s.size);
-        for (typename T::iterator i = r.ref.begin(); i != r.ref.end(); ++i)
-            *this >> *i;
-        return *this;
-    }
-
-    /// Extract an AMQP MAP to a C++ associative container
-    template <class T> decoder& operator>>(associative_ref<T> r)  {
-        using namespace internal;
-        start s;
-        *this >> s;
-        assert_type_equal(MAP, s.type);
-        r.ref.clear();
-        for (size_t i = 0; i < s.size/2; ++i) {
-            typename remove_const<typename T::key_type>::type k;
-            typename remove_const<typename T::mapped_type>::type v;
-            *this >> k >> v;
-            r.ref[k] = v;
-        }
-        return *this;
-    }
-
-    /// Extract an AMQP MAP to a C++ push_back sequence of pairs
-    /// preserving encoded order.
-    template <class T> decoder& operator>>(pair_sequence_ref<T> r)  {
-        using namespace internal;
-        start s;
-        *this >> s;
-        assert_type_equal(MAP, s.type);
-        r.ref.clear();
-        for (size_t i = 0; i < s.size/2; ++i) {
-            typedef typename T::value_type value_type;
-            typename remove_const<typename value_type::first_type>::type k;
-            typename remove_const<typename value_type::second_type>::type v;
-            *this >> k >> v;
-            r.ref.push_back(value_type(k, v));
-        }
-        return *this;
-    }
-
-  private:
-    type_id pre_get();
-    template <class T, class U> decoder& extract(T& x, U (*get)(pn_data_t*));
-    bool exact_;
-
-  friend class message;
-};
-
-/// @cond INTERNAL
-/// XXX Document this
-template<class T> T get(decoder& d) {
-    assert_type_equal(internal::type_id_of<T>::value, d.next_type());
-    T x;
-    d >> x;
-    return x;
-}
-/// @endcond
-
-/// operator>> for integer types that are not covered by the standard
-/// overrides.
-template <class T> typename internal::enable_if<internal::is_unknown_integer<T>::value, decoder&>::type
-operator>>(decoder& d, T& i)  {
-    using namespace internal;
-    typename integer_type<sizeof(T), is_signed<T>::value>::type v;
-    d >> v;                     // Extract as a known integer type
-    i = v;                      // C++ conversion to the target type.
-    return d;
-}
-
-} // codec
-} // proton
-
-#endif // PROTON_CODEC_DECODER_HPP

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/bindings/cpp/include/proton/codec/deque.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/deque.hpp b/proton-c/bindings/cpp/include/proton/codec/deque.hpp
deleted file mode 100644
index 2f570a4..0000000
--- a/proton-c/bindings/cpp/include/proton/codec/deque.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef PROTON_CODEC_DEQUE_HPP
-#define PROTON_CODEC_DEQUE_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 "./encoder.hpp"
-#include "./decoder.hpp"
-
-#include <deque>
-#include <utility>
-
-namespace proton {
-namespace codec {
-
-/// std::deque<T> for most T is encoded as an amqp::ARRAY (same type elements)
-template <class T, class A>
-encoder& operator<<(encoder& e, const std::deque<T, A>& x) {
-    return e << encoder::array(x, internal::type_id_of<T>::value);
-}
-
-/// std::deque<value> encodes as codec::list_type (mixed type elements)
-template <class A>
-encoder& operator<<(encoder& e, const std::deque<value, A>& x) { return e << encoder::list(x); }
-
-/// std::deque<scalar> encodes as codec::list_type (mixed type elements)
-template <class A>
-encoder& operator<<(encoder& e, const std::deque<scalar, A>& x) { return e << encoder::list(x); }
-
-/// std::deque<std::pair<k,t> > encodes as codec::map_type.
-/// Map entries are encoded in order they appear in the list.
-template <class A, class K, class T>
-encoder& operator<<(encoder& e, const std::deque<std::pair<K,T>, A>& x) { return e << encoder::map(x); }
-
-/// Decode to std::deque<T> from an amqp::LIST or amqp::ARRAY.
-template <class T, class A> decoder& operator>>(decoder& d, std::deque<T, A>& x) { return d >> decoder::sequence(x); }
-
-/// Decode to std::deque<std::pair<K, T> from an amqp::MAP.
-template <class A, class K, class T> decoder& operator>>(decoder& d, std::deque<std::pair<K, T> , A>& x) { return d >> decoder::pair_sequence(x); }
-
-} // codec
-} // proton
-
-#endif // PROTON_CODEC_DEQUE_HPP


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org