plebble
db_analyst.h
Go to the documentation of this file.
1 /*
2 -------------------------------------------------------------------------------
3  PLEBBLE
4 -------------------------------------------------------------------------------
5  Copyright (C) 2019-2020 KATLAS Technology. (http://katlastechnology.com)
6  Copyright (C) 2017-2020 Marcos Mayorga. (mm@mm-studios.com)
7 
8  This file is part of our Plebble(R) Platform.
9 
10  The code below cannot be copied, used for any purpose other than the one
11  agreed and/or distributed without the express permission of
12  KATLAS Technology.
13 -------------------------------------------------------------------------------
14 
15 
16 */
17 #ifndef USGOV_5258ef658e69d93e371145a9a2cab6a584b61927aa62b0084931b2441e224ad9
18 #define USGOV_5258ef658e69d93e371145a9a2cab6a584b61927aa62b0084931b2441e224ad9
19 
20 #include "diff.h"
21 #include <list>
22 #include <vector>
23 #include <set>
24 #include <string>
25 
26 namespace us{ namespace gov {
27 namespace engine {
28 using namespace std;
29 
30 struct db_analyst {
32 
33  struct block:hash_t {
34  block(const hash_t&t);
35  ~block();
36  block(const block&)=delete;
37  block& operator =(const block&)=delete;
38  string label(const hash_t& head) const;
39  string content() const;
40  void dump(int th, const hash_t& head, ostream& os) const;
41  void dump(const string& prefix, ostream&os) const;
42  void dot(ostream& os) const;
45  block* root();
46 
47  mutable size_t w;
48  mutable size_t h;
49  char type{' '};
51  block* prev{0};
52  std::map<hash_t,block*> forks;
53  };
54 
55  struct chains_t {
58  void dump(const hash_t& head, ostream& os) const;
59  vector<string> files(const string& home);
60  void load(const string& home, const vector<string>& files);
61  void load(const string& home);
62  void dump(const string& prefix, ostream& os) const;
63  void dot(ostream& os) const;
64 
65  list<block*> roots;
66  };
67 
68  db_analyst(const string& dir);
69  void load_blocks();
70  void load_head();
71  void dump(ostream& os) const;
72  void dot(ostream& os) const;
73  static void print_chain(const string& home, const string& tip, ostream& os);
74  static void print_app20db(const string& file, ostream& os);
75  static void print_app30db(const string& file, int detail, ostream& os);
76 
77  string h;
78  hash_t head{0};
80 };
81 
82 }
83 }}
84 
85 #endif
86 
us::gov::engine::db_analyst::block::block
block(const block &)=delete
us::gov::engine::db_analyst::chains_t::files
vector< string > files(const string &home)
cfg.h
us::gov::crypto::ripemd160::value_type::b
array< unsigned char, output_size > b
Definition: ripemd160.h:39
us::gov::engine::db_analyst::db_analyst
db_analyst(const string &dir)
us::gov::engine::db_analyst::dump
void dump(ostream &os) const
us::gov::engine::db_analyst::dot
void dot(ostream &os) const
us::gov::engine::db_analyst::block::label
string label(const hash_t &head) const
us::gov::engine::db_analyst::block::block
block(const hash_t &t)
excerpt::save
void save(const string &file)
Definition: main.cpp:31
hmi
hmi_t * hmi
Definition: main.cpp:34
us::gov::cash::hash_t
hasher_t::value_type hash_t
Definition: app.h:55
diff.h
end_delimiter_w
string end_delimiter_w
Definition: main.cpp:26
excerpt::load
static excerpt load(const string &file)
Definition: main.cpp:36
us.ko
Definition: ko.java:20
us::gov::engine::db_analyst::print_app20db
static void print_app20db(const string &file, ostream &os)
us::gov::engine::db_analyst::chains_t
Definition: db_analyst.h:55
vcs.h
log_start
#define log_start
Definition: gov.h:85
us
Definition: daemon.h:22
us::gov::crypto::ripemd160::value_type
Definition: ripemd160.h:38
us::gov::engine::db_analyst::load_blocks
void load_blocks()
us::gov::engine::db_analyst::block::forks
std::map< hash_t, block * > forks
Definition: db_analyst.h:52
us::gov::engine::db_analyst::h
string h
Definition: db_analyst.h:77
us::gov::engine::db_analyst::block::content
string content() const
app.h
main
int main(int argc, char **argv)
Definition: main.cpp:72
us::gov::engine::db_analyst::block::w
size_t w
Definition: db_analyst.h:47
us::gov::cli::hmi::stop
void stop()
us::gov::engine::db_analyst::chains_t::roots
list< block * > roots
Definition: db_analyst.h:65
daemon.h
us::gov::engine::db_analyst::block::insert
block * insert(block *b)
hmi_t::b
us::gov::cli::hmi b
Definition: main.cpp:29
us::gov::cli::hmi::ret
ko ret
Definition: hmi.h:103
us::gov::auth::daemon
id::daemon daemon
Definition: daemon.h:25
us::gov::engine::db_analyst::block::rect
pair< size_t, size_t > rect() const
us::gov::cli::hmi
Definition: hmi.h:39
excerpt::copy_into
int copy_into()
Definition: main.cpp:47
us::gov::engine::db_analyst::block::h
size_t h
Definition: db_analyst.h:48
us::gov::engine::db_analyst::hash_t
diff::hash_t hash_t
Definition: db_analyst.h:31
end_delimiter_r
string end_delimiter_r
Definition: main.cpp:24
us::gov::engine::db_analyst::chains_t::dot
void dot(ostream &os) const
us::gov::engine::db_analyst::print_app30db
static void print_app30db(const string &file, int detail, ostream &os)
us::gov::engine::db_analyst::block::dump
void dump(int th, const hash_t &head, ostream &os) const
us::gov::cli::hmi::run
ko run()
us::gov::engine::db_analyst::chains
chains_t chains
Definition: db_analyst.h:79
us::gov::engine::db_analyst::print_chain
static void print_chain(const string &home, const string &tip, ostream &os)
us::gov::engine::db_analyst::chains_t::chains_t
chains_t()
hmi.h
us::gov::engine::db_analyst::chains_t::dump
void dump(const hash_t &head, ostream &os) const
us::gov::io::params::daemon
bool daemon
Definition: params.h:47
us::gov
Definition: daemon.h:22
us::gov::engine::db_analyst::block::root
block * root()
hmi_t::setup_signals
void setup_signals(bool) override
Definition: main.cpp:71
us::gov::crypto::ec::keys::generate
static keys generate()
us::gov::io::screen::os
ostream & os
Definition: screen.h:66
delimiter_w
string delimiter_w
Definition: main.cpp:25
us::gov::cli::hmi::p
params p
Definition: hmi.h:100
c
Definition: client.cpp:417
us::ok
static constexpr ko ok
Definition: ko.h:28
us::gov::engine::db_analyst::chains_t::load
void load(const string &home)
us::vcs::version
static void version(ostream &os)
Definition: vcs.h:36
us::gov::engine::db_analyst
Definition: db_analyst.h:30
std
Definition: app.h:380
db_analyst.h
us::gov::engine::db_analyst::chains_t::dump
void dump(const string &prefix, ostream &os) const
us::gov::engine::db_analyst::block
Definition: db_analyst.h:33
c
us::gov::engine::db_analyst c
Definition: db_analyst.cpp:25
excerpt
Definition: main.cpp:29
us::gov::engine::db_analyst::block::dump
void dump(const string &prefix, ostream &os) const
hmi_t::hmi_t
hmi_t(int argc, char **argv, ostream &os)
Definition: main.cpp:30
us::gov::engine::db_analyst::block::prevh
hash_t prevh
Definition: db_analyst.h:50
us::gov::cli::hmi::scr
screen scr
Definition: hmi.h:101
sig_handler
void sig_handler(int s)
Definition: main.cpp:62
hmi_t
Definition: main.cpp:28
delimiter_r
string delimiter_r
Definition: main.cpp:23
log_pstart
#define log_pstart
Definition: gov.h:86
us.pair
Definition: pair.java:19
gov.h
us::gov::engine::db_analyst::block::dot
void dot(ostream &os) const
us::gov::engine::db_analyst::block::~block
~block()
us::gov::engine::db_analyst::load_head
void load_head()
us::gov::engine::db_analyst::chains_t::~chains_t
~chains_t()
log
#define log
Definition: gov.h:83
us::gov::engine::db_analyst::chains_t::load
void load(const string &home, const vector< string > &files)