adapt to new version of boost and fix compile error (#417)
(cherry picked from commit 00a4d1cae74a4c01d998f651dc37c9c82e6fe1c2)
Co-authored-by: dinglei <libya_003@163.com>
diff --git a/src/common/ByteOrder.h b/src/common/ByteOrder.h
index 9263822..6b370db 100644
--- a/src/common/ByteOrder.h
+++ b/src/common/ByteOrder.h
@@ -1,217 +1,217 @@
-/*
- * 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.
- */
-#ifndef BYTEORDER_H_INCLUDED
-#define BYTEORDER_H_INCLUDED
-
-#include <stddef.h>
-#include <stdint.h>
-#include <algorithm>
-#include <boost/endian/arithmetic.hpp>
-#include "RocketMQClient.h"
-#include "UtilAll.h"
-//==============================================================================
-/** Contains static methods for converting the byte order between different
- endiannesses.
-*/
-namespace rocketmq {
-
-class ROCKETMQCLIENT_API ByteOrder {
- public:
- //==============================================================================
- /** Swaps the upper and lower bytes of a 16-bit integer. */
- static uint16 swap(uint16 value);
-
- /** Reverses the order of the 4 bytes in a 32-bit integer. */
- static uint32 swap(uint32 value);
-
- /** Reverses the order of the 8 bytes in a 64-bit integer. */
- static uint64 swap(uint64 value);
-
- //==============================================================================
- /** Swaps the byte order of a 16-bit int if the CPU is big-endian */
- static uint16 swapIfBigEndian(uint16 value);
-
- /** Swaps the byte order of a 32-bit int if the CPU is big-endian */
- static uint32 swapIfBigEndian(uint32 value);
-
- /** Swaps the byte order of a 64-bit int if the CPU is big-endian */
- static uint64 swapIfBigEndian(uint64 value);
-
- /** Swaps the byte order of a 16-bit int if the CPU is little-endian */
- static uint16 swapIfLittleEndian(uint16 value);
-
- /** Swaps the byte order of a 32-bit int if the CPU is little-endian */
- static uint32 swapIfLittleEndian(uint32 value);
-
- /** Swaps the byte order of a 64-bit int if the CPU is little-endian */
- static uint64 swapIfLittleEndian(uint64 value);
-
- //==============================================================================
- /** Turns 4 bytes into a little-endian integer. */
- static uint32 littleEndianInt(const void* bytes);
-
- /** Turns 8 bytes into a little-endian integer. */
- static uint64 littleEndianInt64(const void* bytes);
-
- /** Turns 2 bytes into a little-endian integer. */
- static uint16 littleEndianShort(const void* bytes);
-
- /** Turns 4 bytes into a big-endian integer. */
- static uint32 bigEndianInt(const void* bytes);
-
- /** Turns 8 bytes into a big-endian integer. */
- static uint64 bigEndianInt64(const void* bytes);
-
- /** Turns 2 bytes into a big-endian integer. */
- static uint16 bigEndianShort(const void* bytes);
-
- //==============================================================================
- /** Converts 3 little-endian bytes into a signed 24-bit value (which is
- * sign-extended to 32 bits). */
- static int littleEndian24Bit(const void* bytes);
-
- /** Converts 3 big-endian bytes into a signed 24-bit value (which is
- * sign-extended to 32 bits). */
- static int bigEndian24Bit(const void* bytes);
-
- /** Copies a 24-bit number to 3 little-endian bytes. */
- static void littleEndian24BitToChars(int value, void* destBytes);
-
- /** Copies a 24-bit number to 3 big-endian bytes. */
- static void bigEndian24BitToChars(int value, void* destBytes);
-
- //==============================================================================
- /** Returns true if the current CPU is big-endian. */
- static bool isBigEndian();
-};
-
-//==============================================================================
-
-inline uint16 ByteOrder::swap(uint16 n) {
- return static_cast<uint16>((n << 8) | (n >> 8));
-}
-
-inline uint32 ByteOrder::swap(uint32 n) {
- return (n << 24) | (n >> 24) | ((n & 0xff00) << 8) | ((n & 0xff0000) >> 8);
-}
-
-inline uint64 ByteOrder::swap(uint64 value) {
- return (((uint64)swap((uint32)value)) << 32) | swap((uint32)(value >> 32));
-}
-
-#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ //__BYTE_ORDER__ is defined by GCC
-inline uint16 ByteOrder::swapIfBigEndian(const uint16 v) {
- return v;
-}
-inline uint32 ByteOrder::swapIfBigEndian(const uint32 v) {
- return v;
-}
-inline uint64 ByteOrder::swapIfBigEndian(const uint64 v) {
- return v;
-}
-inline uint16 ByteOrder::swapIfLittleEndian(const uint16 v) {
- return swap(v);
-}
-inline uint32 ByteOrder::swapIfLittleEndian(const uint32 v) {
- return swap(v);
-}
-inline uint64 ByteOrder::swapIfLittleEndian(const uint64 v) {
- return swap(v);
-}
-inline uint32 ByteOrder::littleEndianInt(const void* const bytes) {
- return *static_cast<const uint32*>(bytes);
-}
-inline uint64 ByteOrder::littleEndianInt64(const void* const bytes) {
- return *static_cast<const uint64*>(bytes);
-}
-inline uint16 ByteOrder::littleEndianShort(const void* const bytes) {
- return *static_cast<const uint16*>(bytes);
-}
-inline uint32 ByteOrder::bigEndianInt(const void* const bytes) {
- return swap(*static_cast<const uint32*>(bytes));
-}
-inline uint64 ByteOrder::bigEndianInt64(const void* const bytes) {
- return swap(*static_cast<const uint64*>(bytes));
-}
-inline uint16 ByteOrder::bigEndianShort(const void* const bytes) {
- return swap(*static_cast<const uint16*>(bytes));
-}
-inline bool ByteOrder::isBigEndian() {
- return false;
-}
-#else
-inline uint16 ByteOrder::swapIfBigEndian(const uint16 v) {
- return swap(v);
-}
-inline uint32 ByteOrder::swapIfBigEndian(const uint32 v) {
- return swap(v);
-}
-inline uint64 ByteOrder::swapIfBigEndian(const uint64 v) {
- return swap(v);
-}
-inline uint16 ByteOrder::swapIfLittleEndian(const uint16 v) {
- return v;
-}
-inline uint32 ByteOrder::swapIfLittleEndian(const uint32 v) {
- return v;
-}
-inline uint64 ByteOrder::swapIfLittleEndian(const uint64 v) {
- return v;
-}
-inline uint32 ByteOrder::littleEndianInt(const void* const bytes) {
- return swap(*static_cast<const uint32*>(bytes));
-}
-inline uint64 ByteOrder::littleEndianInt64(const void* const bytes) {
- return swap(*static_cast<const uint64*>(bytes));
-}
-inline uint16 ByteOrder::littleEndianShort(const void* const bytes) {
- return swap(*static_cast<const uint16*>(bytes));
-}
-inline uint32 ByteOrder::bigEndianInt(const void* const bytes) {
- return *static_cast<const uint32*>(bytes);
-}
-inline uint64 ByteOrder::bigEndianInt64(const void* const bytes) {
- return *static_cast<const uint64*>(bytes);
-}
-inline uint16 ByteOrder::bigEndianShort(const void* const bytes) {
- return *static_cast<const uint16*>(bytes);
-}
-inline bool ByteOrder::isBigEndian() {
- return true;
-}
-#endif
-
-inline int ByteOrder::littleEndian24Bit(const void* const bytes) {
- return (((int)static_cast<const int8*>(bytes)[2]) << 16) | (((int)static_cast<const uint8*>(bytes)[1]) << 8) |
- ((int)static_cast<const uint8*>(bytes)[0]);
-}
-inline int ByteOrder::bigEndian24Bit(const void* const bytes) {
- return (((int)static_cast<const int8*>(bytes)[0]) << 16) | (((int)static_cast<const uint8*>(bytes)[1]) << 8) |
- ((int)static_cast<const uint8*>(bytes)[2]);
-}
-inline void ByteOrder::littleEndian24BitToChars(const int value, void* const destBytes) {
- static_cast<uint8*>(destBytes)[0] = (uint8)value;
- static_cast<uint8*>(destBytes)[1] = (uint8)(value >> 8);
- static_cast<uint8*>(destBytes)[2] = (uint8)(value >> 16);
-}
-inline void ByteOrder::bigEndian24BitToChars(const int value, void* const destBytes) {
- static_cast<uint8*>(destBytes)[0] = (uint8)(value >> 16);
- static_cast<uint8*>(destBytes)[1] = (uint8)(value >> 8);
- static_cast<uint8*>(destBytes)[2] = (uint8)value;
-}
-} // namespace rocketmq
-#endif // BYTEORDER_H_INCLUDED
+/*
+ * 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.
+ */
+#ifndef BYTEORDER_H_INCLUDED
+#define BYTEORDER_H_INCLUDED
+
+#include <stddef.h>
+#include <stdint.h>
+#include <algorithm>
+#include <boost/endian/arithmetic.hpp>
+#include "RocketMQClient.h"
+#include "UtilAll.h"
+//==============================================================================
+/** Contains static methods for converting the byte order between different
+ endiannesses.
+*/
+namespace rocketmq {
+
+class ROCKETMQCLIENT_API ByteOrder {
+ public:
+ //==============================================================================
+ /** Swaps the upper and lower bytes of a 16-bit integer. */
+ static uint16 swap(uint16 value);
+
+ /** Reverses the order of the 4 bytes in a 32-bit integer. */
+ static uint32 swap(uint32 value);
+
+ /** Reverses the order of the 8 bytes in a 64-bit integer. */
+ static uint64 swap(uint64 value);
+
+ //==============================================================================
+ /** Swaps the byte order of a 16-bit int if the CPU is big-endian */
+ static uint16 swapIfBigEndian(uint16 value);
+
+ /** Swaps the byte order of a 32-bit int if the CPU is big-endian */
+ static uint32 swapIfBigEndian(uint32 value);
+
+ /** Swaps the byte order of a 64-bit int if the CPU is big-endian */
+ static uint64 swapIfBigEndian(uint64 value);
+
+ /** Swaps the byte order of a 16-bit int if the CPU is little-endian */
+ static uint16 swapIfLittleEndian(uint16 value);
+
+ /** Swaps the byte order of a 32-bit int if the CPU is little-endian */
+ static uint32 swapIfLittleEndian(uint32 value);
+
+ /** Swaps the byte order of a 64-bit int if the CPU is little-endian */
+ static uint64 swapIfLittleEndian(uint64 value);
+
+ //==============================================================================
+ /** Turns 4 bytes into a little-endian integer. */
+ static uint32 littleEndianInt(const void* bytes);
+
+ /** Turns 8 bytes into a little-endian integer. */
+ static uint64 littleEndianInt64(const void* bytes);
+
+ /** Turns 2 bytes into a little-endian integer. */
+ static uint16 littleEndianShort(const void* bytes);
+
+ /** Turns 4 bytes into a big-endian integer. */
+ static uint32 bigEndianInt(const void* bytes);
+
+ /** Turns 8 bytes into a big-endian integer. */
+ static uint64 bigEndianInt64(const void* bytes);
+
+ /** Turns 2 bytes into a big-endian integer. */
+ static uint16 bigEndianShort(const void* bytes);
+
+ //==============================================================================
+ /** Converts 3 little-endian bytes into a signed 24-bit value (which is
+ * sign-extended to 32 bits). */
+ static int littleEndian24Bit(const void* bytes);
+
+ /** Converts 3 big-endian bytes into a signed 24-bit value (which is
+ * sign-extended to 32 bits). */
+ static int bigEndian24Bit(const void* bytes);
+
+ /** Copies a 24-bit number to 3 little-endian bytes. */
+ static void littleEndian24BitToChars(int value, void* destBytes);
+
+ /** Copies a 24-bit number to 3 big-endian bytes. */
+ static void bigEndian24BitToChars(int value, void* destBytes);
+
+ //==============================================================================
+ /** Returns true if the current CPU is big-endian. */
+ static bool isBigEndian();
+};
+
+//==============================================================================
+
+inline uint16 ByteOrder::swap(uint16 n) {
+ return static_cast<uint16>((n << 8) | (n >> 8));
+}
+
+inline uint32 ByteOrder::swap(uint32 n) {
+ return (n << 24) | (n >> 24) | ((n & 0xff00) << 8) | ((n & 0xff0000) >> 8);
+}
+
+inline uint64 ByteOrder::swap(uint64 value) {
+ return (((uint64)swap((uint32)value)) << 32) | swap((uint32)(value >> 32));
+}
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ //__BYTE_ORDER__ is defined by GCC
+inline uint16 ByteOrder::swapIfBigEndian(const uint16 v) {
+ return v;
+}
+inline uint32 ByteOrder::swapIfBigEndian(const uint32 v) {
+ return v;
+}
+inline uint64 ByteOrder::swapIfBigEndian(const uint64 v) {
+ return v;
+}
+inline uint16 ByteOrder::swapIfLittleEndian(const uint16 v) {
+ return swap(v);
+}
+inline uint32 ByteOrder::swapIfLittleEndian(const uint32 v) {
+ return swap(v);
+}
+inline uint64 ByteOrder::swapIfLittleEndian(const uint64 v) {
+ return swap(v);
+}
+inline uint32 ByteOrder::littleEndianInt(const void* const bytes) {
+ return *static_cast<const uint32*>(bytes);
+}
+inline uint64 ByteOrder::littleEndianInt64(const void* const bytes) {
+ return *static_cast<const uint64*>(bytes);
+}
+inline uint16 ByteOrder::littleEndianShort(const void* const bytes) {
+ return *static_cast<const uint16*>(bytes);
+}
+inline uint32 ByteOrder::bigEndianInt(const void* const bytes) {
+ return swap(*static_cast<const uint32*>(bytes));
+}
+inline uint64 ByteOrder::bigEndianInt64(const void* const bytes) {
+ return swap(*static_cast<const uint64*>(bytes));
+}
+inline uint16 ByteOrder::bigEndianShort(const void* const bytes) {
+ return swap(*static_cast<const uint16*>(bytes));
+}
+inline bool ByteOrder::isBigEndian() {
+ return false;
+}
+#else
+inline uint16 ByteOrder::swapIfBigEndian(const uint16 v) {
+ return swap(v);
+}
+inline uint32 ByteOrder::swapIfBigEndian(const uint32 v) {
+ return swap(v);
+}
+inline uint64 ByteOrder::swapIfBigEndian(const uint64 v) {
+ return swap(v);
+}
+inline uint16 ByteOrder::swapIfLittleEndian(const uint16 v) {
+ return v;
+}
+inline uint32 ByteOrder::swapIfLittleEndian(const uint32 v) {
+ return v;
+}
+inline uint64 ByteOrder::swapIfLittleEndian(const uint64 v) {
+ return v;
+}
+inline uint32 ByteOrder::littleEndianInt(const void* const bytes) {
+ return swap(*static_cast<const uint32*>(bytes));
+}
+inline uint64 ByteOrder::littleEndianInt64(const void* const bytes) {
+ return swap(*static_cast<const uint64*>(bytes));
+}
+inline uint16 ByteOrder::littleEndianShort(const void* const bytes) {
+ return swap(*static_cast<const uint16*>(bytes));
+}
+inline uint32 ByteOrder::bigEndianInt(const void* const bytes) {
+ return *static_cast<const uint32*>(bytes);
+}
+inline uint64 ByteOrder::bigEndianInt64(const void* const bytes) {
+ return *static_cast<const uint64*>(bytes);
+}
+inline uint16 ByteOrder::bigEndianShort(const void* const bytes) {
+ return *static_cast<const uint16*>(bytes);
+}
+inline bool ByteOrder::isBigEndian() {
+ return true;
+}
+#endif
+
+inline int ByteOrder::littleEndian24Bit(const void* const bytes) {
+ return (((int)static_cast<const int8*>(bytes)[2]) << 16) | (((int)static_cast<const uint8*>(bytes)[1]) << 8) |
+ ((int)static_cast<const uint8*>(bytes)[0]);
+}
+inline int ByteOrder::bigEndian24Bit(const void* const bytes) {
+ return (((int)static_cast<const int8*>(bytes)[0]) << 16) | (((int)static_cast<const uint8*>(bytes)[1]) << 8) |
+ ((int)static_cast<const uint8*>(bytes)[2]);
+}
+inline void ByteOrder::littleEndian24BitToChars(const int value, void* const destBytes) {
+ static_cast<uint8*>(destBytes)[0] = (uint8)value;
+ static_cast<uint8*>(destBytes)[1] = (uint8)(value >> 8);
+ static_cast<uint8*>(destBytes)[2] = (uint8)(value >> 16);
+}
+inline void ByteOrder::bigEndian24BitToChars(const int value, void* const destBytes) {
+ static_cast<uint8*>(destBytes)[0] = (uint8)(value >> 16);
+ static_cast<uint8*>(destBytes)[1] = (uint8)(value >> 8);
+ static_cast<uint8*>(destBytes)[2] = (uint8)value;
+}
+} // namespace rocketmq
+#endif // BYTEORDER_H_INCLUDED
diff --git a/src/log/Logging.h b/src/log/Logging.h
index a6aec39..3917328 100644
--- a/src/log/Logging.h
+++ b/src/log/Logging.h
@@ -30,7 +30,7 @@
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/scoped_array.hpp>
-#include <boost/shared_ptr.hpp>
+#include <boost/smart_ptr.hpp>
#include "include/DefaultMQClient.h"
namespace logging = boost::log;
diff --git a/src/producer/TransactionMQProducerImpl.h b/src/producer/TransactionMQProducerImpl.h
index 603318b..319ee88 100644
--- a/src/producer/TransactionMQProducerImpl.h
+++ b/src/producer/TransactionMQProducerImpl.h
@@ -22,7 +22,7 @@
#include <boost/asio/io_service.hpp>
#include <boost/bind.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
-#include <boost/weak_ptr.hpp>
+#include <boost/smart_ptr.hpp>
#include <memory>
#include <string>
#include "DefaultMQProducerImpl.h"