plebble
networking.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_75e4bd922f2de31a967ff5ad48fd3c21a0df7b241765114881ed8761ed8ca7cd
18 #define USGOV_75e4bd922f2de31a967ff5ad48fd3c21a0df7b241765114881ed8761ed8ca7cd
19 
20 #include <us/gov/net_daemon.h>
21 #include <vector>
22 #include <unordered_set>
23 #include <string>
24 #include "diff.h"
25 
26 namespace us{ namespace gov {
27 namespace engine {
28 using namespace std;
29 
30  struct daemon;
31 
34  using b::keys;
36  networking(const networking&)=delete;
37  networking& operator = (const networking&)=delete;
38  networking(uint16_t port, uint16_t pport, uint8_t edges, uint8_t devices, int workers, engine::daemon* parent, const vector<pair<uint32_t,uint16_t>>& seed_nodes);
39  ~networking() override;
40  const function<bool(const socket::client&)>& sysop_filter() const;
41  static const function<bool(const socket::client&)>& node_filter();
42  static const function<bool(const socket::client&)>& non_sysop_filter();
43  socket::client* create_client(int sock) override;
44  const keys& get_keys() const override;
45  bool process_work(socket::peer_t *c, datagram*d) override;
46  bool process_evidence(evidence*) override;
47  //void remote_port(const crypto::ec::keys::pub_t&,uint16_t port) override;
48  string homedir() const override;
50  using b::send;
51  void send(const local_deltas&);
54  int relay_vote(datagram*, peer_t* exclude);
55  void dump(const string& prefix, ostream& os) const;
56  bool check_dfs_permission(const hash_t& addr) const override;
57  bool check_relay_permission(const hash_t& addr) const override;
58 
60  };
61 
62 }}
63 }
64 
65 #endif
66 
us::gov::engine::networking::~networking
~networking() override
net_daemon.h
diff.h
us::gov::socket::client
Definition: client.h:44
us
Definition: daemon.h:22
us::gov::crypto::ripemd160::value_type
Definition: ripemd160.h:38
us::gov::engine::networking::check_relay_permission
bool check_relay_permission(const hash_t &addr) const override
us::gov::engine::networking::relay_vote
int relay_vote(datagram *, peer_t *exclude)
us::gov::engine::networking::get_keys
const keys & get_keys() const override
us::gov::engine::local_deltas
Definition: diff.h:46
us::gov::engine::networking::sysop_filter
const function< bool(const socket::client &)> & sysop_filter() const
us::gov::engine::networking::b
us::gov::net_daemon b
Definition: networking.h:33
us::gov::socket::datagram
Definition: datagram.h:44
us::gov::engine::peer_t
Definition: peer_t.h:27
us::gov::auth::daemon
id::daemon daemon
Definition: daemon.h:25
us::gov::engine::networking::create_client
socket::client * create_client(int sock) override
us::gov::engine::networking::process_work
bool process_work(socket::peer_t *c, datagram *d) override
us::gov::engine::networking::process_evidence
bool process_evidence(evidence *) override
us::gov::engine::networking::node_filter
static const function< bool(const socket::client &)> & node_filter()
us::gov::peer::peer_t
Definition: peer_t.h:38
us::gov::engine::networking::networking
networking(const networking &)=delete
us::gov::dfs::daemon
Definition: daemon.h:44
us::gov::engine::daemon
Definition: daemon.h:71
us::gov::engine::networking::check_dfs_permission
bool check_dfs_permission(const hash_t &addr) const override
us::gov::engine::networking::homedir
string homedir() const override
us::gov::engine::networking::send
void send(const local_deltas &)
c
Definition: client.cpp:417
us::gov::engine::networking::relay_local_deltas
void relay_local_deltas(datagram *, peer_t *exclude)
us::gov::engine::networking::process_work_sysop
bool process_work_sysop(peer::peer_t *c, datagram *d)
us::gov::cash::keys
crypto::ec::keys keys
Definition: app.h:52
us::gov::socket::peer_t
Definition: peer_t.h:28
us::gov::engine::networking
Definition: networking.h:32
std
Definition: app.h:380
us::gov::engine::networking::networking
networking(engine::daemon *parent)
us::gov::engine::networking::networking
networking(uint16_t port, uint16_t pport, uint8_t edges, uint8_t devices, int workers, engine::daemon *parent, const vector< pair< uint32_t, uint16_t >> &seed_nodes)
us::gov::crypto::ec::keys
Definition: ec.h:43
us::gov::engine::networking::parent
engine::daemon * parent
Definition: networking.h:59
us::gov::relay::evidence
Definition: evidence.h:31
us::gov::engine::networking::non_sysop_filter
static const function< bool(const socket::client &)> & non_sysop_filter()
us.pair
Definition: pair.java:19
us::gov::engine::networking::send_vote
void send_vote(datagram *)
us::gov::engine::networking::dump
void dump(const string &prefix, ostream &os) const