xrpld
Loading...
Searching...
No Matches
Consumer.h
1#pragma once
2
3#include <xrpl/basics/Log.h>
4#include <xrpl/protocol/PublicKey.h>
5#include <xrpl/resource/Charge.h>
6#include <xrpl/resource/Disposition.h>
7
8namespace xrpl::Resource {
9
10struct Entry;
11class Logic;
12
15{
16private:
17 friend class Logic;
18 Consumer(Logic& logic, Entry& entry);
19
20public:
21 Consumer();
22 ~Consumer();
23 Consumer(Consumer const& other);
25 operator=(Consumer const& other);
26
28 [[nodiscard]] std::string
29 toString() const;
30
32 [[nodiscard]] bool
33 isUnlimited() const;
34
38 void
39 elevate(std::string const& name);
40
45 [[nodiscard]] Disposition
46 disposition() const;
47
50 charge(Charge const& fee, std::string const& context = {});
51
55 bool
56 warn();
57
59 bool
60 disconnect(beast::Journal const& j);
61
63 int
64 balance();
65
66 // Private: Retrieve the entry associated with the consumer
67 Entry&
68 entry();
69
70 void
71 setPublicKey(PublicKey const& publicKey);
72
73private:
76};
77
79operator<<(std::ostream& os, Consumer const& v);
80
81} // namespace xrpl::Resource
A generic endpoint for log messages.
Definition Journal.h:38
A public key.
Definition PublicKey.h:42
A consumption charge.
Definition Charge.h:9
An endpoint that consumes resources.
Definition Consumer.h:15
Consumer & operator=(Consumer const &other)
Definition Consumer.cpp:41
void setPublicKey(PublicKey const &publicKey)
Definition Consumer.cpp:133
void elevate(std::string const &name)
Raise the Consumer's privilege level to a Named endpoint.
bool warn()
Returns true if the consumer should be warned.
Definition Consumer.cpp:100
bool isUnlimited() const
Returns true if this is a privileged endpoint.
Definition Consumer.cpp:70
Consumer(Logic &logic, Entry &entry)
Definition Consumer.cpp:17
std::string toString() const
Return a human readable string uniquely identifying this consumer.
Definition Consumer.cpp:61
bool disconnect(beast::Journal const &j)
Returns true if the consumer should be disconnected.
Definition Consumer.cpp:107
Disposition disposition() const
Returns the current disposition of this consumer.
Definition Consumer.cpp:79
int balance()
Returns the credit balance representing consumption.
Definition Consumer.cpp:119
Disposition charge(Charge const &fee, std::string const &context={})
Apply a load charge to the consumer.
Definition Consumer.cpp:89
Disposition
The disposition of a consumer after applying a load charge.
Definition Disposition.h:6
std::ostream & operator<<(std::ostream &os, Charge const &v)
Definition Charge.cpp:36