From 7553091d020a0f31dd557c9edf326aeca3781b14 Mon Sep 17 00:00:00 2001 From: obucinac Date: Wed, 11 Sep 2019 20:29:48 +0200 Subject: [PATCH] Peerplays SON plugin skeleton (#122) * Peerplays SON plugin skeleton * SON tests skeleton --- libraries/plugins/CMakeLists.txt | 1 + .../peerplays_sidechain/CMakeLists.txt | 19 ++++++ .../peerplays_sidechain_plugin.hpp | 34 +++++++++++ .../peerplays_sidechain_plugin.cpp | 59 +++++++++++++++++++ programs/witness_node/CMakeLists.txt | 2 +- programs/witness_node/main.cpp | 2 + tests/CMakeLists.txt | 4 ++ .../peerplays_sidechain_tests.cpp | 20 +++++++ 8 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 libraries/plugins/peerplays_sidechain/CMakeLists.txt create mode 100644 libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/peerplays_sidechain_plugin.hpp create mode 100644 libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp create mode 100644 tests/peerplays_sidechain/peerplays_sidechain_tests.cpp diff --git a/libraries/plugins/CMakeLists.txt b/libraries/plugins/CMakeLists.txt index 01079fe2..fb944627 100644 --- a/libraries/plugins/CMakeLists.txt +++ b/libraries/plugins/CMakeLists.txt @@ -9,3 +9,4 @@ add_subdirectory( generate_genesis ) add_subdirectory( generate_uia_sharedrop_genesis ) add_subdirectory( debug_witness ) add_subdirectory( snapshot ) +add_subdirectory( peerplays_sidechain ) diff --git a/libraries/plugins/peerplays_sidechain/CMakeLists.txt b/libraries/plugins/peerplays_sidechain/CMakeLists.txt new file mode 100644 index 00000000..916487e3 --- /dev/null +++ b/libraries/plugins/peerplays_sidechain/CMakeLists.txt @@ -0,0 +1,19 @@ +file(GLOB HEADERS "include/graphene/peerplays_sidechain_history/*.hpp") + +add_library( peerplays_sidechain + peerplays_sidechain_plugin.cpp + ) + +target_link_libraries( peerplays_sidechain graphene_chain graphene_app ) +target_include_directories( peerplays_sidechain + PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" ) + +install( TARGETS + peerplays_sidechain + + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +INSTALL( FILES ${HEADERS} DESTINATION "include/graphene/peerplays_sidechain" ) + diff --git a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/peerplays_sidechain_plugin.hpp b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/peerplays_sidechain_plugin.hpp new file mode 100644 index 00000000..d32fb09d --- /dev/null +++ b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/peerplays_sidechain_plugin.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include +#include +#include + +#include + +namespace graphene { namespace peerplays_sidechain { +using namespace chain; + +namespace detail +{ + class peerplays_sidechain_plugin_impl; +} + +class peerplays_sidechain_plugin : public graphene::app::plugin +{ + public: + peerplays_sidechain_plugin(); + virtual ~peerplays_sidechain_plugin(); + + std::string plugin_name()const override; + virtual void plugin_set_program_options( + boost::program_options::options_description& cli, + boost::program_options::options_description& cfg) override; + virtual void plugin_initialize(const boost::program_options::variables_map& options) override; + virtual void plugin_startup() override; + + std::unique_ptr my; +}; + +} } //graphene::peerplays_sidechain_plugin + diff --git a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp new file mode 100644 index 00000000..071905ec --- /dev/null +++ b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp @@ -0,0 +1,59 @@ +#include + +namespace graphene { namespace peerplays_sidechain { + +namespace detail +{ + + +class peerplays_sidechain_plugin_impl +{ + public: + peerplays_sidechain_plugin_impl(peerplays_sidechain_plugin& _plugin) + : _self( _plugin ) + { } + virtual ~peerplays_sidechain_plugin_impl(); + + peerplays_sidechain_plugin& _self; +}; + +peerplays_sidechain_plugin_impl::~peerplays_sidechain_plugin_impl() +{ + return; +} + +} // end namespace detail + +peerplays_sidechain_plugin::peerplays_sidechain_plugin() : + my( new detail::peerplays_sidechain_plugin_impl(*this) ) +{ +} + +peerplays_sidechain_plugin::~peerplays_sidechain_plugin() +{ + return; +} + +std::string peerplays_sidechain_plugin::plugin_name()const +{ + return "peerplays_sidechain"; +} + +void peerplays_sidechain_plugin::plugin_set_program_options( + boost::program_options::options_description& /*cli*/, + boost::program_options::options_description& /*cfg*/ + ) +{ +} + +void peerplays_sidechain_plugin::plugin_initialize(const boost::program_options::variables_map& /*options*/) +{ + ilog("peerplays sidechain plugin: plugin_initialize()"); +} + +void peerplays_sidechain_plugin::plugin_startup() +{ + ilog("peerplays sidechain plugin: plugin_startup()"); +} + +} } diff --git a/programs/witness_node/CMakeLists.txt b/programs/witness_node/CMakeLists.txt index 3d03253b..e43172a0 100644 --- a/programs/witness_node/CMakeLists.txt +++ b/programs/witness_node/CMakeLists.txt @@ -11,7 +11,7 @@ endif() # We have to link against graphene_debug_witness because deficiency in our API infrastructure doesn't allow plugins to be fully abstracted #246 target_link_libraries( witness_node - PRIVATE graphene_app graphene_account_history graphene_affiliate_stats graphene_market_history graphene_witness graphene_chain graphene_debug_witness graphene_bookie graphene_egenesis_full fc ${CMAKE_DL_LIBS} ${PLATFORM_SPECIFIC_LIBS} ) + PRIVATE graphene_app graphene_account_history graphene_affiliate_stats graphene_market_history graphene_witness graphene_chain graphene_debug_witness graphene_bookie graphene_egenesis_full fc peerplays_sidechain ${CMAKE_DL_LIBS} ${PLATFORM_SPECIFIC_LIBS} ) # also add dependencies to graphene_generate_genesis graphene_generate_uia_sharedrop_genesis if you want those plugins install( TARGETS diff --git a/programs/witness_node/main.cpp b/programs/witness_node/main.cpp index 34b22a2f..c9a09ca3 100644 --- a/programs/witness_node/main.cpp +++ b/programs/witness_node/main.cpp @@ -31,6 +31,7 @@ //#include #include #include +#include #include //#include @@ -91,6 +92,7 @@ int main(int argc, char** argv) { auto list_plug = node->register_plugin(); auto affiliate_stats_plug = node->register_plugin(); auto bookie_plug = node->register_plugin(); + auto peerplays_sidechain = node->register_plugin(); // auto snapshot_plug = node->register_plugin(); try diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 57a451aa..fef122b5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -33,6 +33,10 @@ file(GLOB BETTING_TESTS "betting/*.cpp") add_executable( betting_test ${BETTING_TESTS} ${COMMON_SOURCES} ) target_link_libraries( betting_test graphene_chain graphene_app graphene_account_history graphene_bookie graphene_egenesis_none fc graphene_wallet ${PLATFORM_SPECIFIC_LIBS} ) +file(GLOB PEERPLAYS_SIDECHAIN_TESTS "peerplays_sidechain/*.cpp") +add_executable( peerplays_sidechain_test ${PEERPLAYS_SIDECHAIN_TESTS} ${COMMON_SOURCES} ) +target_link_libraries( peerplays_sidechain_test graphene_chain graphene_app graphene_account_history graphene_bookie graphene_egenesis_none fc graphene_wallet ${PLATFORM_SPECIFIC_LIBS} ) + file(GLOB TOURNAMENT_TESTS "tournament/*.cpp") add_executable( tournament_test ${TOURNAMENT_TESTS} ${COMMON_SOURCES} ) target_link_libraries( tournament_test graphene_chain graphene_app graphene_account_history graphene_egenesis_none fc ${PLATFORM_SPECIFIC_LIBS} ) diff --git a/tests/peerplays_sidechain/peerplays_sidechain_tests.cpp b/tests/peerplays_sidechain/peerplays_sidechain_tests.cpp new file mode 100644 index 00000000..8c4db6df --- /dev/null +++ b/tests/peerplays_sidechain/peerplays_sidechain_tests.cpp @@ -0,0 +1,20 @@ +#include + +#define BOOST_TEST_MODULE Peerplays SON Tests + +BOOST_AUTO_TEST_CASE(peerplays_sidechain) +{ + +} + +#include +#include +#include + +boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[]) { + std::srand(time(NULL)); + std::cout << "Random number generator seeded to " << time(NULL) << std::endl; + + return nullptr; +} +