CatapultServer  v0.5.0.1 (Elephant)
NodeDiscoveryHandlers.h
Go to the documentation of this file.
1 
21 #pragma once
22 #include "catapult/ionet/Node.h"
25 
26 namespace catapult { namespace ionet { struct NetworkNode; } }
27 
28 namespace catapult { namespace handlers {
29 
32 
35 
38 
43  model::NetworkIdentifier networkIdentifier,
44  const NodeConsumer& nodeConsumer);
45 
50  const std::shared_ptr<const ionet::NetworkNode>& pLocalNode);
51 
54 
57 }}
catapult::ionet::NodeEndpoint
A node's publicly accessible endpoint.
Definition: Node.h:35
CATAPULT_LOG
#define CATAPULT_LOG(SEV)
Writes a log entry to the default logger with SEV severity.
Definition: Logging.h:340
catapult::nodediscovery::TryParseNodesPacket
bool TryParseNodesPacket(const ionet::Packet &packet, ionet::NodeSet &nodes)
Tries to parse packet into nodes.
Definition: NodePingUtils.cpp:39
catapult::utils::UniqueToShared
std::shared_ptr< T > UniqueToShared(std::unique_ptr< T > &&pointer)
Converts a unique pointer to a shared pointer of the same type.
Definition: MemoryUtils.h:47
Parser.debug
def debug(*args)
Definition: Parser.py:46
catapult::handlers::RegisterNodeDiscoveryPullPeersHandler
void RegisterNodeDiscoveryPullPeersHandler(ionet::ServerPacketHandlers &handlers, const NodesSupplier &nodesSupplier)
Registers a node discovery pull peers handler in handlers that responds with nodes from nodesSupplier...
Definition: NodeDiscoveryHandlers.cpp:100
catapult::ionet::Node::identityKey
const Key & identityKey() const
Gets the unique identifier (a public key).
Definition: Node.cpp:60
catapult::extensions::ExtensionManager::addServiceRegistrar
void addServiceRegistrar(std::unique_ptr< ServiceRegistrar > &&pServiceRegistrar)
Adds a service registrar (pServiceRegistrar).
Definition: ExtensionManager.cpp:42
colorPrint.warning
def warning(*args)
Definition: colorPrint.py:10
catapult::nodediscovery::IsNodeCompatible
bool IsNodeCompatible(const ionet::Node &node, model::NetworkIdentifier networkIdentifier, const Key &identityKey)
Determines if node is compatible with expected network (networkIdentifier) and identity (identityKey)...
Definition: NodePingUtils.cpp:52
catapult::handlers::RegisterNodeDiscoveryPullPingHandler
void RegisterNodeDiscoveryPullPingHandler(ionet::ServerPacketHandlers &handlers, const std::shared_ptr< const ionet::NetworkNode > &pLocalNode)
Definition: NodeDiscoveryHandlers.cpp:59
BasicProducer.h
PacketPayloadFactory.h
catapult::supplier
std::function< T()> supplier
A (stateless) supplier function.
Definition: functions.h:39
catapult::handlers::RegisterNodeDiscoveryPushPingHandler
void RegisterNodeDiscoveryPushPingHandler(ionet::ServerPacketHandlers &handlers, model::NetworkIdentifier networkIdentifier, const NodeConsumer &nodeConsumer)
Definition: NodeDiscoveryHandlers.cpp:31
catapult::ionet::ServerPacketHandlers::registerHandler
void registerHandler(PacketType type, const PacketHandler &handler)
Registers a handler for the specified packet type.
Definition: PacketHandlers.cpp:100
catapult::config::ToLocalNode
ionet::Node ToLocalNode(const CatapultConfiguration &config)
Extracts a node representing the local node from config.
Definition: CatapultConfiguration.cpp:75
catapult::handlers::BatchHandlerFactory::RegisterZero
static void RegisterZero(ionet::ServerPacketHandlers &handlers, TResultsProducerFactory resultsProducerFactory)
Definition: HandlerFactory.h:40
NodeDiscoveryService.h
NetworkInfo.h
PacketHandlers.h
catapult::nodediscovery::TryParseNodePacket
bool TryParseNodePacket(const ionet::Packet &packet, ionet::Node &node)
Tries to parse packet into node.
Definition: NodePingUtils.cpp:28
HexFormatter.h
PLUGIN_API
#define PLUGIN_API
Definition: plugins.h:30
catapult::ionet::NodeSet
std::unordered_set< Node, NodeHasher > NodeSet
A set of nodes.
Definition: Node.h:128
RegisterExtension
PLUGIN_API void RegisterExtension(catapult::extensions::ProcessBootstrapper &bootstrapper)
Entry point for registering a dynamic extension module with bootstrapper.
Definition: NodeDiscoveryExtension.cpp:38
Node.h
catapult::handlers::RegisterNodeDiscoveryPushPeersHandler
void RegisterNodeDiscoveryPushPeersHandler(ionet::ServerPacketHandlers &handlers, const NodesConsumer &nodesConsumer)
Registers a node discovery push peers handler in handlers that forwards received nodes to nodesConsum...
Definition: NodeDiscoveryHandlers.cpp:70
Packet_Type
static constexpr auto Packet_Type
Definition: NodeDiscoveryHandlers.cpp:84
NetworkNode.h
catapult::extensions::ProcessBootstrapper::extensionManager
ExtensionManager & extensionManager()
Gets the extension manager.
Definition: ProcessBootstrapper.cpp:67
catapult::handlers::NodeConsumer
consumer< const ionet::Node & > NodeConsumer
Consumes a node.
Definition: NodeDiscoveryHandlers.h:31
catapult::model::NetworkIdentifier
NetworkIdentifier
Possible network identifiers.
Definition: NetworkInfo.h:45
catapult::handlers::NodesConsumer
consumer< const ionet::NodeSet & > NodesConsumer
Consumes multiple nodes.
Definition: NodeDiscoveryHandlers.h:34
catapult::extensions::ProcessBootstrapper::config
const config::CatapultConfiguration & config() const
Gets the configuration.
Definition: ProcessBootstrapper.cpp:47
catapult::ionet::Node::endpoint
const NodeEndpoint & endpoint() const
Gets the endpoint.
Definition: Node.cpp:64
catapult::ionet::Node::metadata
const NodeMetadata & metadata() const
Gets tne metadata.
Definition: Node.cpp:68
NodeDiscoveryHandlers.h
catapult::ionet::NodeEndpoint::Host
std::string Host
Host.
Definition: Node.h:37
catapult::handlers::NodesSupplier
supplier< ionet::NodeSet > NodesSupplier
Supplies nodes.
Definition: NodeDiscoveryHandlers.h:37
Node
ionet::Node Node
Definition: PacketWriters.cpp:45
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::extensions::ProcessBootstrapper
Process bootstrapper.
Definition: ProcessBootstrapper.h:42
NodePingUtils.h
catapult::ionet::PackNode
std::unique_ptr< NetworkNode > PackNode(const Node &node)
Packs a node model into a network node.
Definition: NetworkNode.cpp:32
HandlerFactory.h
catapult::ionet::PacketPayloadFactory::FromEntity
static PacketPayload FromEntity(PacketType type, const std::shared_ptr< TEntity > &pEntity)
Creates a packet payload with the specified packet type around a single entity (pEntity).
Definition: PacketPayloadFactory.h:31
ProcessBootstrapper.h
catapult::ionet::IsPacketValid
constexpr bool IsPacketValid(const Packet &packet, PacketType type)
Checks if packet is valid with type.
Definition: Packet.h:75
catapult::ionet::Node
A node in the catapult network.
Definition: Node.h:82
catapult::consumer
std::function< void(TArgs...)> consumer
A consumer function.
Definition: functions.h:35
catapult::ionet::ServerPacketHandlers
A collection of packet handlers where there is at most one handler per packet type.
Definition: PacketHandlers.h:62
catapult::ionet::NodeMetadata::NetworkIdentifier
model::NetworkIdentifier NetworkIdentifier
Network identifier.
Definition: Node.h:69
catapult::ionet::NodeEndpoint::Port
unsigned short Port
Port.
Definition: Node.h:40