From 1cae4d3481f6c2ef263822f26bec60ce3989c718 Mon Sep 17 00:00:00 2001
From: pbattu123
Date: Mon, 6 Jan 2020 17:00:41 -0400
Subject: [PATCH] Revert "Merge pull request #13 from gladcow/feature/GRPH-92"
This reverts commit c30f3b7d32502fc1a746cefa132848cb80a4129b, reversing
changes made to 31e289c53d3625afea87c54edb6d97c3bca4c626.
---
include/fc/exception/exception.hpp | 117 ++++++++++++-----------------
include/fc/io/raw.hpp | 8 +-
include/fc/network/ip.hpp | 13 ++--
src/exception.cpp | 18 -----
4 files changed, 61 insertions(+), 95 deletions(-)
diff --git a/include/fc/exception/exception.hpp b/include/fc/exception/exception.hpp
index 34dbf42..091cc4b 100755
--- a/include/fc/exception/exception.hpp
+++ b/include/fc/exception/exception.hpp
@@ -5,7 +5,6 @@
*/
#include
#include
-#include
#include
#include
#include
@@ -223,97 +222,81 @@ namespace fc
}(); \
-#define FC_DECLARE_DERIVED_EXCEPTION( TYPE, BASE, CODE ) \
+#define FC_DECLARE_DERIVED_EXCEPTION( TYPE, BASE, CODE, WHAT ) \
class TYPE : public BASE \
{ \
public: \
enum code_enum { \
code_value = CODE, \
}; \
- explicit TYPE( int64_t code, const std::string& name_value, const std::string& what_value ); \
- explicit TYPE( fc::log_message&& m, int64_t code, const std::string& name_value, const std::string& what_value ); \
- explicit TYPE( fc::log_messages&& m, int64_t code, const std::string& name_value, const std::string& what_value );\
- explicit TYPE( const fc::log_messages& m, int64_t code, const std::string& name_value, const std::string& what_value );\
- explicit TYPE( const std::string& what_value, const fc::log_messages& m ); \
- explicit TYPE( fc::log_message&& m ); \
- explicit TYPE( fc::log_messages msgs ); \
- TYPE( TYPE&& c ) = default; \
- TYPE( const TYPE& c ); \
- TYPE( const BASE& c ); \
- explicit TYPE();\
+ explicit TYPE( int64_t code, const std::string& name_value, const std::string& what_value ) \
+ :BASE( code, name_value, what_value ){} \
+ explicit TYPE( fc::log_message&& m, int64_t code, const std::string& name_value, const std::string& what_value ) \
+ :BASE( std::move(m), code, name_value, what_value ){} \
+ explicit TYPE( fc::log_messages&& m, int64_t code, const std::string& name_value, const std::string& what_value )\
+ :BASE( std::move(m), code, name_value, what_value ){}\
+ explicit TYPE( const fc::log_messages& m, int64_t code, const std::string& name_value, const std::string& what_value )\
+ :BASE( m, code, name_value, what_value ){}\
+ TYPE( const std::string& what_value, const fc::log_messages& m ) \
+ :BASE( m, CODE, BOOST_PP_STRINGIZE(TYPE), what_value ){} \
+ TYPE( fc::log_message&& m ) \
+ :BASE( fc::move(m), CODE, BOOST_PP_STRINGIZE(TYPE), WHAT ){}\
+ TYPE( fc::log_messages msgs ) \
+ :BASE( fc::move( msgs ), CODE, BOOST_PP_STRINGIZE(TYPE), WHAT ) {} \
+ TYPE( const TYPE& c ) \
+ :BASE(c){} \
+ TYPE( const BASE& c ) \
+ :BASE(c){} \
+ TYPE():BASE(CODE, BOOST_PP_STRINGIZE(TYPE), WHAT){}\
\
- virtual std::shared_ptr dynamic_copy_exception()const;\
- virtual NO_RETURN void dynamic_rethrow_exception()const; \
+ virtual std::shared_ptr dynamic_copy_exception()const\
+ { return std::make_shared( *this ); } \
+ virtual NO_RETURN void dynamic_rethrow_exception()const \
+ { if( code() == CODE ) throw *this;\
+ else fc::exception::dynamic_rethrow_exception(); \
+ } \
};
-#define FC_IMPLEMENT_DERIVED_EXCEPTION( TYPE, BASE, CODE, WHAT ) \
- TYPE::TYPE( int64_t code, const std::string& name_value, const std::string& what_value ) \
- : BASE( code, name_value, what_value ) {} \
- TYPE::TYPE( fc::log_message&& m, int64_t code, const std::string& name_value, const std::string& what_value ) \
- : BASE( std::move(m), code, name_value, what_value ) {} \
- TYPE::TYPE( fc::log_messages&& m, int64_t code, const std::string& name_value, const std::string& what_value ) \
- : BASE( std::move(m), code, name_value, what_value ) {} \
- TYPE::TYPE( const fc::log_messages& m, int64_t code, const std::string& name_value, const std::string& what_value ) \
- : BASE( m, code, name_value, what_value ) {} \
- TYPE::TYPE( const std::string& what_value, const fc::log_messages& m ) \
- : BASE( m, CODE, BOOST_PP_STRINGIZE(TYPE), what_value ) {} \
- TYPE::TYPE( fc::log_message&& m ) \
- : BASE( std::move(m), CODE, BOOST_PP_STRINGIZE(TYPE), WHAT ) {} \
- TYPE::TYPE( fc::log_messages msgs ) \
- : BASE( std::move( msgs ), CODE, BOOST_PP_STRINGIZE(TYPE), WHAT ) {} \
- TYPE::TYPE( const TYPE& c ) : BASE(c) {} \
- TYPE::TYPE( const BASE& c ) : BASE(c) {} \
- TYPE::TYPE() : BASE(CODE, BOOST_PP_STRINGIZE(TYPE), WHAT) {} \
- \
- std::shared_ptr TYPE::dynamic_copy_exception()const \
- { \
- return std::make_shared( *this ); \
- } \
- NO_RETURN void TYPE::dynamic_rethrow_exception()const \
- { \
- if( code() == CODE ) throw *this;\
- else fc::exception::dynamic_rethrow_exception(); \
- }
+ #define FC_DECLARE_EXCEPTION( TYPE, CODE, WHAT ) \
+ FC_DECLARE_DERIVED_EXCEPTION( TYPE, fc::exception, CODE, WHAT )
-#define FC_DECLARE_EXCEPTION( TYPE, CODE ) \
- FC_DECLARE_DERIVED_EXCEPTION( TYPE, fc::exception, CODE )
-
-#define FC_IMPLEMENT_EXCEPTION( TYPE, CODE, WHAT ) \
- FC_IMPLEMENT_DERIVED_EXCEPTION( TYPE, fc::exception, CODE, WHAT )
-
- FC_DECLARE_EXCEPTION( timeout_exception, timeout_exception_code );
- FC_DECLARE_EXCEPTION( file_not_found_exception, file_not_found_exception_code );
+ FC_DECLARE_EXCEPTION( timeout_exception, timeout_exception_code, "Timeout" );
+ FC_DECLARE_EXCEPTION( file_not_found_exception, file_not_found_exception_code, "File Not Found" );
/**
- * @brief reports parse errors
+ * @brief report's parse errors
*/
- FC_DECLARE_EXCEPTION( parse_error_exception, parse_error_exception_code );
- FC_DECLARE_EXCEPTION( invalid_arg_exception, invalid_arg_exception_code );
+ FC_DECLARE_EXCEPTION( parse_error_exception, parse_error_exception_code, "Parse Error" );
+ FC_DECLARE_EXCEPTION( invalid_arg_exception, invalid_arg_exception_code, "Invalid Argument" );
/**
* @brief reports when a key, guid, or other item is not found.
*/
- FC_DECLARE_EXCEPTION( key_not_found_exception, key_not_found_exception_code );
- FC_DECLARE_EXCEPTION( bad_cast_exception, bad_cast_exception_code );
- FC_DECLARE_EXCEPTION( out_of_range_exception, out_of_range_exception_code );
+ FC_DECLARE_EXCEPTION( key_not_found_exception, key_not_found_exception_code, "Key Not Found" );
+ FC_DECLARE_EXCEPTION( bad_cast_exception, bad_cast_exception_code, "Bad Cast" );
+ FC_DECLARE_EXCEPTION( out_of_range_exception, out_of_range_exception_code, "Out of Range" );
/** @brief if an operation is unsupported or not valid this may be thrown */
- FC_DECLARE_EXCEPTION( invalid_operation_exception, invalid_operation_exception_code );
+ FC_DECLARE_EXCEPTION( invalid_operation_exception,
+ invalid_operation_exception_code,
+ "Invalid Operation" );
/** @brief if an host name can not be resolved this may be thrown */
- FC_DECLARE_EXCEPTION( unknown_host_exception, unknown_host_exception_code );
+ FC_DECLARE_EXCEPTION( unknown_host_exception,
+ unknown_host_exception_code,
+ "Unknown Host" );
/**
* @brief used to report a canceled Operation
*/
- FC_DECLARE_EXCEPTION( canceled_exception, canceled_exception_code );
+ FC_DECLARE_EXCEPTION( canceled_exception, canceled_exception_code, "Canceled" );
/**
* @brief used inplace of assert() to report violations of pre conditions.
*/
- FC_DECLARE_EXCEPTION( assert_exception, assert_exception_code );
- FC_DECLARE_EXCEPTION( eof_exception, eof_exception_code );
- FC_DECLARE_EXCEPTION( null_optional, null_optional_code );
- FC_DECLARE_EXCEPTION( aes_exception, aes_error_code );
- FC_DECLARE_EXCEPTION( overflow_exception, overflow_code );
- FC_DECLARE_EXCEPTION( underflow_exception, underflow_code );
- FC_DECLARE_EXCEPTION( divide_by_zero_exception, divide_by_zero_code );
+ FC_DECLARE_EXCEPTION( assert_exception, assert_exception_code, "Assert Exception" );
+ FC_DECLARE_EXCEPTION( eof_exception, eof_exception_code, "End Of File" );
+ FC_DECLARE_EXCEPTION( null_optional, null_optional_code, "null optional" );
+ FC_DECLARE_EXCEPTION( aes_exception, aes_error_code, "AES error" );
+ FC_DECLARE_EXCEPTION( overflow_exception, overflow_code, "Integer Overflow" );
+ FC_DECLARE_EXCEPTION( underflow_exception, underflow_code, "Integer Underflow" );
+ FC_DECLARE_EXCEPTION( divide_by_zero_exception, divide_by_zero_code, "Integer Divide By Zero" );
std::string except_str();
diff --git a/include/fc/io/raw.hpp b/include/fc/io/raw.hpp
index bb97647..2125865 100755
--- a/include/fc/io/raw.hpp
+++ b/include/fc/io/raw.hpp
@@ -616,12 +616,14 @@ namespace fc {
}
+
template
- void pack( Stream& s, const T& v ) {
- fc::raw::detail::if_reflected< typename fc::reflector::is_defined >::pack(s,v);
+ inline void pack( Stream& s, const T& v, uint32_t _max_depth ) {
+ FC_ASSERT( _max_depth > 0 );
+ fc::raw::detail::if_reflected< typename fc::reflector::is_defined >::pack( s, v, _max_depth - 1 );
}
template
- void unpack( Stream& s, T& v )
+ inline void unpack( Stream& s, T& v, uint32_t _max_depth )
{ try {
FC_ASSERT( _max_depth > 0 );
fc::raw::detail::if_reflected< typename fc::reflector::is_defined >::unpack( s, v, _max_depth - 1 );
diff --git a/include/fc/network/ip.hpp b/include/fc/network/ip.hpp
index d428e60..7a55616 100755
--- a/include/fc/network/ip.hpp
+++ b/include/fc/network/ip.hpp
@@ -82,14 +82,14 @@ namespace fc {
namespace raw
{
- template
- void pack( Stream& s, const ip::address& v )
+ template
+ inline void pack( Stream& s, const ip::address& v, uint32_t _max_depth=FC_PACK_MAX_DEPTH )
{
FC_ASSERT( _max_depth > 0 );
fc::raw::pack( s, uint32_t(v), _max_depth - 1 );
}
- template
- void unpack( Stream& s, ip::address& v )
+ template
+ inline void unpack( Stream& s, ip::address& v, uint32_t _max_depth=FC_PACK_MAX_DEPTH )
{
FC_ASSERT( _max_depth > 0 );
uint32_t _ip;
@@ -119,9 +119,8 @@ namespace fc {
}
} // namespace fc
-
-FC_REFLECT_EMPTY( fc::ip::address )
-FC_REFLECT_TYPENAME( fc::ip::endpoint )
+FC_REFLECT_TYPENAME( fc::ip::address )
+FC_REFLECT_TYPENAME( fc::ip::endpoint )
namespace std
{
template<>
diff --git a/src/exception.cpp b/src/exception.cpp
index ce67b4a..1f84286 100755
--- a/src/exception.cpp
+++ b/src/exception.cpp
@@ -8,24 +8,6 @@
namespace fc
{
- FC_IMPLEMENT_EXCEPTION( timeout_exception, timeout_exception_code, "Timeout" )
- FC_IMPLEMENT_EXCEPTION( file_not_found_exception, file_not_found_exception_code, "File Not Found" )
- FC_IMPLEMENT_EXCEPTION( parse_error_exception, parse_error_exception_code, "Parse Error" )
- FC_IMPLEMENT_EXCEPTION( invalid_arg_exception, invalid_arg_exception_code, "Invalid Argument" )
- FC_IMPLEMENT_EXCEPTION( key_not_found_exception, key_not_found_exception_code, "Key Not Found" )
- FC_IMPLEMENT_EXCEPTION( bad_cast_exception, bad_cast_exception_code, "Bad Cast" )
- FC_IMPLEMENT_EXCEPTION( out_of_range_exception, out_of_range_exception_code, "Out of Range" )
- FC_IMPLEMENT_EXCEPTION( invalid_operation_exception, invalid_operation_exception_code, "Invalid Operation" )
- FC_IMPLEMENT_EXCEPTION( unknown_host_exception, unknown_host_exception_code, "Unknown Host" )
- FC_IMPLEMENT_EXCEPTION( canceled_exception, canceled_exception_code, "Canceled" )
- FC_IMPLEMENT_EXCEPTION( assert_exception, assert_exception_code, "Assert Exception" )
- FC_IMPLEMENT_EXCEPTION( eof_exception, eof_exception_code, "End Of File" )
- FC_IMPLEMENT_EXCEPTION( null_optional, null_optional_code, "null optional" )
- FC_IMPLEMENT_EXCEPTION( aes_exception, aes_error_code, "AES error" )
- FC_IMPLEMENT_EXCEPTION( overflow_exception, overflow_code, "Integer Overflow" )
- FC_IMPLEMENT_EXCEPTION( underflow_exception, underflow_code, "Integer Underflow" )
- FC_IMPLEMENT_EXCEPTION( divide_by_zero_exception, divide_by_zero_code, "Integer Divide By Zero" )
-
FC_REGISTER_EXCEPTIONS( (timeout_exception)
(file_not_found_exception)
(parse_error_exception)