Skip to content

app/SuperGeniusDemoApp.cpp

SuperGenius demo source file. More...

Detailed Description

SuperGenius demo source file.

Date: 2024-02-21 Henrique A. Klein ([email protected])

Source code

#include "SuperGeniusDemoApp.hpp"
#include "base/logger.hpp"
#include "integration/AppConfigurationFactory.hpp"
#include <libp2p/log/configurator.hpp>
#include <libp2p/log/logger.hpp>

SuperGeniusDemoApp::SuperGeniusDemoApp()
{
    std::cout << "SuperGeniusDemoApp Constructed" << std::endl;
}
SuperGeniusDemoApp::~SuperGeniusDemoApp()
{
    std::cout << "SuperGeniusDemoApp Destructed" << std::endl;
}

void SuperGeniusDemoApp::init( int argc, char **argv )
{
    std::cout << "SuperGeniusDemoApp Init" << std::endl;

    auto logger = sgns::base::createLogger( "SuperGenius block node: " );
    //cfg         = std::shared_ptr<sgns::application::AppConfiguration>( std::move( AppConfigurationFactory::create( logger ) ) );
    cfg = AppConfigurationFactory::create( logger );

    const std::string logger_config( R"(
    # ----------------
    sinks:
      - name: console
        type: console
        color: true
    groups:
      - name: SuperGeniusDemo
        sink: console
        level: info
        children:
          - name: libp2p
          - name: Gossip
    # ----------------
    )" );
    auto              p2p_log_system = std::make_shared<soralog::LoggingSystem>( std::make_shared<soralog::ConfiguratorFromYAML>(
        // Original LibP2P logging config
        std::make_shared<libp2p::log::Configurator>(),
        // Additional logging config for application
        logger_config ) );
    p2p_log_system->configure();

    libp2p::log::setLoggingSystem( p2p_log_system );
    libp2p::log::setLevelOfGroup( "SuperGeniusDemo", soralog::Level::DEBUG );

    cfg->initialize_from_args( sgns::application::AppConfiguration::LoadScheme::kValidating, argc, argv );

    validation_node = std::make_shared<sgns::application::ValidatingNodeApplication>( std::move( cfg ) );
}
void SuperGeniusDemoApp::run( void )
{
    validation_node->run();
}
void SuperGeniusDemoApp::exit( void )
{
}

Updated on 2026-03-04 at 13:10:44 -0800