github.com/igggame/nebulas-go@v2.1.0+incompatible/nbre/cmd/dummy_neb/dummies/dummy_base.h (about)

     1  // Copyright (C) 2018 go-nebulas authors
     2  //
     3  // This file is part of the go-nebulas library.
     4  //
     5  // the go-nebulas library is free software: you can redistribute it and/or
     6  // modify
     7  // it under the terms of the GNU General Public License as published by
     8  // the Free Software Foundation, either version 3 of the License, or
     9  // (at your option) any later version.
    10  //
    11  // the go-nebulas library is distributed in the hope that it will be useful,
    12  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14  // GNU General Public License for more details.
    15  //
    16  // You should have received a copy of the GNU General Public License
    17  // along with the go-nebulas library.  If not, see
    18  // <http://www.gnu.org/licenses/>.
    19  //
    20  #pragma once
    21  #include "cmd/dummy_neb/dummy_common.h"
    22  #include "cmd/dummy_neb/generator/generator_base.h"
    23  
    24  class dummy_base {
    25  public:
    26    dummy_base(const std::string &name);
    27    virtual ~dummy_base();
    28  
    29    virtual void init_from_db();
    30  
    31    inline std::string name() { return m_name; }
    32    inline block_height_t current_height() const { return m_current_height; }
    33  
    34    void clean_db();
    35  
    36    virtual std::shared_ptr<generate_block> generate_LIB_block() = 0;
    37  
    38    virtual std::shared_ptr<checker_task_base> generate_checker_task() = 0;
    39  
    40    virtual address_t get_auth_admin_addr() = 0;
    41  
    42    const std::string &db_path() const;
    43  
    44  protected:
    45    static void random_increase_version(neb::version &v);
    46  
    47  protected:
    48    std::string m_name;
    49    mutable std::string m_db_path;
    50    block_height_t m_current_height;
    51  };