Fix #116 and fix build

This commit is contained in:
Daniel Larimer 2015-07-01 13:51:35 -04:00
parent 1d18fe58be
commit e336691e59
2 changed files with 20 additions and 16 deletions

View file

@ -23,9 +23,7 @@ template<typename T>
void register_serializer();
extern map<string, size_t > st;
/*
extern vector<std::function<void()>> serializers;
*/
bool register_serializer( const string& name, std::function<void()> sr );
@ -128,7 +126,7 @@ class serialize_member_visitor
template<typename Member, class Class, Member (Class::*member)>
void operator()( const char* name )const
{
current_stream() << name << " : " << "";//js_name<Member>::name();
current_stream() << " " << name << " : " << fc::get_typename<Member>::name() <<"\n";
}
};
@ -268,6 +266,8 @@ std::string get_type_description()
current_stream( std::unique_ptr<std::stringstream>(new std::stringstream()) );
processed_types().clear();
serializer<T>::init();
for( const auto& gen : serializers )
gen();
return current_stream().str();
}

View file

@ -30,6 +30,8 @@
using namespace graphene::chain;
namespace detail_ns {
string remove_tail_if( const string& str, char c, const string& match )
{
auto last = str.find_last_of( c );
@ -317,6 +319,8 @@ struct serializer
}
};
} // namespace detail_ns
int main( int argc, char** argv )
{
try {
@ -326,22 +330,22 @@ int main( int argc, char** argv )
for( uint32_t i = 0; i < op.count(); ++i )
{
op.set_which(i);
op.visit( serialize_type_visitor(i) );
op.visit( detail_ns::serialize_type_visitor(i) );
}
std::cout << "\n";
js_name<operation>::name("operation");
js_name<static_variant<address,public_key_type>>::name("key_data");
js_name<operation_result>::name("operation_result");
js_name<header_extension>::name("header_extension");
js_name<static_variant<refund_worker_type::initializer, vesting_balance_worker_type::initializer>>::name("initializer_type");
serializer<signed_block>::init();
serializer<block_header>::init();
serializer<signed_block_header>::init();
serializer<operation>::init();
serializer<transaction>::init();
serializer<signed_transaction>::init();
for( const auto& gen : serializers )
detail_ns::js_name<operation>::name("operation");
detail_ns::js_name<static_variant<address,public_key_type>>::name("key_data");
detail_ns::js_name<operation_result>::name("operation_result");
detail_ns::js_name<header_extension>::name("header_extension");
detail_ns::js_name<static_variant<refund_worker_type::initializer, vesting_balance_worker_type::initializer>>::name("initializer_type");
detail_ns::serializer<signed_block>::init();
detail_ns::serializer<block_header>::init();
detail_ns::serializer<signed_block_header>::init();
detail_ns::serializer<operation>::init();
detail_ns::serializer<transaction>::init();
detail_ns::serializer<signed_transaction>::init();
for( const auto& gen : detail_ns::serializers )
gen();
} catch ( const fc::exception& e ){ edump((e.to_detail_string())); }