xrpld
Loading...
Searching...
No Matches
Consumer.h
1#pragma once
2
3#include <xrpl/beast/utility/Journal.h>
4#include <xrpl/protocol/PublicKey.h>
5#include <xrpl/resource/Charge.h>
6#include <xrpl/resource/Disposition.h>
7
8#include <ostream>
9#include <string>
10
11namespace xrpl::resource {
12
13struct Entry;
14class Logic;
15
20{
21private:
22 friend class Logic;
23 Consumer(Logic& logic, Entry& entry);
24
25public:
26 Consumer();
27 ~Consumer();
28 Consumer(Consumer const& other);
30 operator=(Consumer const& other);
31
35 [[nodiscard]] std::string
36 toString() const;
37
41 [[nodiscard]] bool
42 isUnlimited() const;
43
48 void
49 elevate(std::string const& name);
50
56 [[nodiscard]] Disposition
57 disposition() const;
58
63 charge(Charge const& fee, std::string const& context = {});
64
69 bool
70 warn();
71
75 bool
76 disconnect(beast::Journal const& j);
77
81 int
82 balance();
83
84 // Private: Retrieve the entry associated with the consumer
85 Entry&
86 entry();
87
88 void
89 setPublicKey(PublicKey const& publicKey);
90
91private:
94};
95
97operator<<(std::ostream& os, Consumer const& v);
98
99} // namespace xrpl::resource
A generic endpoint for log messages.
Definition Journal.h:44
A public key.
Definition PublicKey.h:53
A consumption charge.
Definition Charge.h:13
An endpoint that consumes resources.
Definition Consumer.h:20
Consumer(Logic &logic, Entry &entry)
Definition Consumer.cpp:17
bool disconnect(beast::Journal const &j)
Returns true if the consumer should be disconnected.
Definition Consumer.cpp:107
int balance()
Returns the credit balance representing consumption.
Definition Consumer.cpp:119
std::string toString() const
Return a human readable string uniquely identifying this consumer.
Definition Consumer.cpp:61
Disposition charge(Charge const &fee, std::string const &context={})
Apply a load charge to the consumer.
Definition Consumer.cpp:89
Disposition disposition() const
Returns the current disposition of this consumer.
Definition Consumer.cpp:79
Consumer & operator=(Consumer const &other)
Definition Consumer.cpp:41
bool isUnlimited() const
Returns true if this is a privileged endpoint.
Definition Consumer.cpp:70
void elevate(std::string const &name)
Raise the Consumer's privilege level to a Named endpoint.
void setPublicKey(PublicKey const &publicKey)
Definition Consumer.cpp:133
bool warn()
Returns true if the consumer should be warned.
Definition Consumer.cpp:100
Disposition
The disposition of a consumer after applying a load charge.
Definition Disposition.h:8
std::ostream & operator<<(std::ostream &os, Charge const &v)
Definition Charge.cpp:36