From e814c4dbeb3ac6a7780ac9aa994c30ac54a465c0 Mon Sep 17 00:00:00 2001 From: theoreticalbts Date: Mon, 15 Jun 2015 19:07:51 -0400 Subject: [PATCH] type_id.cpp: Define space_id and type_id for all object types --- libraries/chain/CMakeLists.txt | 1 + libraries/chain/type_id.cpp | 84 ++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 libraries/chain/type_id.cpp diff --git a/libraries/chain/CMakeLists.txt b/libraries/chain/CMakeLists.txt index dea3be7e..2f913c8d 100644 --- a/libraries/chain/CMakeLists.txt +++ b/libraries/chain/CMakeLists.txt @@ -3,6 +3,7 @@ file(GLOB HEADERS "include/graphene/chain/*.hpp") ## SORT .cpp by most likely to change / break compile add_library( graphene_chain types.cpp + type_id.cpp address.cpp asset.cpp diff --git a/libraries/chain/type_id.cpp b/libraries/chain/type_id.cpp new file mode 100644 index 00000000..3b698688 --- /dev/null +++ b/libraries/chain/type_id.cpp @@ -0,0 +1,84 @@ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace graphene { namespace chain { + +// C++ requires that static class variables declared and initialized +// in headers must also have a definition in a single source file, +// else linker errors will occur [1]. +// +// The purpose of this source file is to collect such definitions in +// a single place. +// +// [1] http://stackoverflow.com/questions/8016780/undefined-reference-to-static-constexpr-char + +const uint8_t account_object::space_id; +const uint8_t account_object::type_id; + +const uint8_t asset_object::space_id; +const uint8_t asset_object::type_id; + +const uint8_t block_summary_object::space_id; +const uint8_t block_summary_object::type_id; + +const uint8_t call_order_object::space_id; +const uint8_t call_order_object::type_id; + +const uint8_t delegate_object::space_id; +const uint8_t delegate_object::type_id; + +const uint8_t force_settlement_object::space_id; +const uint8_t force_settlement_object::type_id; + +const uint8_t global_property_object::space_id; +const uint8_t global_property_object::type_id; + +const uint8_t key_object::space_id; +const uint8_t key_object::type_id; + +const uint8_t limit_order_object::space_id; +const uint8_t limit_order_object::type_id; + +const uint8_t operation_history_object::space_id; +const uint8_t operation_history_object::type_id; + +const uint8_t proposal_object::space_id; +const uint8_t proposal_object::type_id; + +const uint8_t short_order_object::space_id; +const uint8_t short_order_object::type_id; + +const uint8_t transaction_object::space_id; +const uint8_t transaction_object::type_id; + +const uint8_t vesting_balance_object::space_id; +const uint8_t vesting_balance_object::type_id; + +const uint8_t withdraw_permission_object::space_id; +const uint8_t withdraw_permission_object::type_id; + +const uint8_t witness_object::space_id; +const uint8_t witness_object::type_id; + +const uint8_t witness_schedule_object::space_id; +const uint8_t witness_schedule_object::type_id; + +const uint8_t worker_object::space_id; +const uint8_t worker_object::type_id; + +} }