xrpld
Loading...
Searching...
No Matches
SourceStrings.cpp
1#include <xrpld/peerfinder/detail/SourceStrings.h>
2
3#include <xrpld/peerfinder/detail/Source.h>
4
5#include <xrpl/beast/net/IPEndpoint.h>
6#include <xrpl/beast/utility/Journal.h>
7
8#include <memory>
9#include <string>
10#include <utility>
11
12namespace xrpl::PeerFinder {
13
15{
16public:
18 : name_(std::move(name)), strings_(std::move(strings))
19 {
20 }
21
22 ~SourceStringsImp() override = default;
23
24 std::string const&
25 name() override
26 {
27 return name_;
28 }
29
30 void
31 fetch(Results& results, beast::Journal journal) override
32 {
33 results.addresses.resize(0);
34 results.addresses.reserve(strings_.size());
35 for (int i = 0; i < strings_.size(); ++i)
36 {
38 if (isUnspecified(ep))
40 if (!isUnspecified(ep))
41 results.addresses.push_back(ep);
42 }
43 }
44
45private:
48};
49
50//------------------------------------------------------------------------------
51
54{
56}
57
58} // namespace xrpl::PeerFinder
A version-independent IP address and port combination.
Definition IPEndpoint.h:17
static Endpoint fromString(std::string const &s)
A generic endpoint for log messages.
Definition Journal.h:38
void fetch(Results &results, beast::Journal journal) override
std::string const & name() override
SourceStringsImp(std::string name, Strings strings)
~SourceStringsImp() override=default
static std::shared_ptr< Source > make(std::string const &name, Strings const &strings)
std::vector< std::string > Strings
virtual std::string const & name()=0
T make_shared(T... args)
STL namespace.
T push_back(T... args)
T reserve(T... args)
T resize(T... args)
The results of a fetch.
Definition Source.h:22