.. index:: pair: class; InputEngineNode
.. _doxid-class_input_engine_node:

class InputEngineNode
=====================

.. toctree::
	:hidden:

Overview
~~~~~~~~

Input node used to connect an :ref:`EngineClient <doxid-class_engine_client>` with the computational graph. :ref:`More...<details-class_input_engine_node>`


.. ref-code-block:: cpp
	:class: doxyrest-overview-code-block

	#include <input_node.h>
	
	class InputEngineNode: public :ref:`InputNode<doxid-class_input_node>` {
	public:
		// construction
	
		:ref:`InputEngineNode<doxid-class_input_engine_node_1a78df37f28c24796c20b0117445a0b467>`(const std::string& id, const std::string& engineName);

		// methods
	
		virtual std::string :ref:`typeStr<doxid-class_input_engine_node_1a2de3e84f756d7644a39ec7b409ec7d01>`() const;
		const std::set<:ref:`DataPackIdentifier<doxid-struct_data_pack_identifier>`>& :ref:`requestedDataPacks<doxid-class_input_engine_node_1a1b693497da1fd00fff0b9b40c2893ec3>`() const;
		void :ref:`setDataPacks<doxid-class_input_engine_node_1a6a0359edb7b982f44f7a3bda5833fcb4>`(:ref:`datapacks_vector_t<doxid-datapack__interface_8h_1abb58261362b3fb30e93be5a3635a572e>` dpacks);
	};

Inherited Members
-----------------

.. ref-code-block:: cpp
	:class: doxyrest-overview-inherited-code-block

	public:
		// enums
	
		enum :ref:`NodeType<doxid-class_computational_node_1a6af2021042070fa763b8f2a0d879a4c0>`;

		// fields
	
		static const static std::map<:ref:`NodeType<doxid-class_computational_node_1a6af2021042070fa763b8f2a0d879a4c0>`, std::string> :ref:`nodeTypeStr<doxid-class_computational_node_1a8dcb2d5fce4a03992f54d01cec8b8350>` = {{:ref:`ComputationalNode::Input<doxid-class_computational_node_1a6af2021042070fa763b8f2a0d879a4c0a6f802cd82eb406c67acf68827a7f12c6>`, "Input"},                                                                                            {ComputationalNode::Output, "Output"},                                                                                            {ComputationalNode::Functional, "Functional"}};

		// methods
	
		const std::string& :ref:`id<doxid-class_computational_node_1aeab0953471cf02647c0264c8b474afb5>`() const;
		:ref:`NodeType<doxid-class_computational_node_1a6af2021042070fa763b8f2a0d879a4c0>` :ref:`type<doxid-class_computational_node_1a4cb10cde56ec02dd5e31c5b5498388ed>`() const;
		virtual std::string :ref:`typeStr<doxid-class_computational_node_1a7f3ac66b0ba01255d3b4614d8451a11a>`() const;
		void :ref:`setVisited<doxid-class_computational_node_1a4d75c538b8bbc2f9c26278d27ad8a434>`(bool visited);
		bool :ref:`isVisited<doxid-class_computational_node_1aa657870e632df5c4ed11470d10e65d5f>`() const;
		void :ref:`setDoCompute<doxid-class_computational_node_1a42173436871d42cf1b3142a742541b82>`(bool doCompute);
		virtual bool :ref:`doCompute<doxid-class_computational_node_1aa48b20e4dd19b5923f47d4d4a39d19af>`() const;
	
		static std::pair<std::string, std::string> :ref:`parseNodeAddress<doxid-class_computational_node_1aa0ee3c31cff004eb3ca6c44a21b11fc5>`(
			const std::string& address,
			bool hasPort = true
		);
	
		void :ref:`registerOutput<doxid-class_input_node_1af15ec049b725a7e02f09650f81bfd97c>`(const std::string& id);
		:ref:`OutputPort<doxid-class_output_port>`<DATA>* :ref:`getSinglePort<doxid-class_input_node_1ad9a253c855c20d797820824b319d4a31>`(const std::string& id);
		:ref:`OutputPort<doxid-class_output_port>`<std::vector<const DATA*>>* :ref:`getListPort<doxid-class_input_node_1af2c401b83ae12585082add95df9d1270>`(const std::string& id);
		:ref:`InputNodePolicies::MsgPublishPolicy<doxid-namespace_input_node_policies_1ae65f9d4505207aa68b30fb0419c73035>` :ref:`msgPublishPolicy<doxid-class_input_node_1a4377e88c802c215e7e1174feca8e4735>`();
		:ref:`InputNodePolicies::MsgCachePolicy<doxid-namespace_input_node_policies_1a6e6c639f025a1af2a05b3f20e6b207a5>` :ref:`msgCachePolicy<doxid-class_input_node_1ac7c8589e78d9b194e222edfab912bd66>`();
		void :ref:`setMsgPublishPolicy<doxid-class_input_node_1a6b9e5b9eaa7a8f1b275b698adacc765c>`(:ref:`InputNodePolicies::MsgPublishPolicy<doxid-namespace_input_node_policies_1ae65f9d4505207aa68b30fb0419c73035>` msgPublishPolicy);
		void :ref:`setMsgCachePolicy<doxid-class_input_node_1a7e2197a005d86ee5191598f6e13b45a5>`(:ref:`InputNodePolicies::MsgCachePolicy<doxid-namespace_input_node_policies_1a6e6c639f025a1af2a05b3f20e6b207a5>` msgCachePolicy);

.. _details-class_input_engine_node:

Detailed Documentation
~~~~~~~~~~~~~~~~~~~~~~

Input node used to connect an :ref:`EngineClient <doxid-class_engine_client>` with the computational graph.

It has two methods 'requestedDataPacks' and 'setDataPacks' which allows to update the node externally with the latest datapacks

Construction
------------

.. index:: pair: function; InputEngineNode
.. _doxid-class_input_engine_node_1a78df37f28c24796c20b0117445a0b467:

.. ref-code-block:: cpp
	:class: doxyrest-title-code-block

	InputEngineNode(const std::string& id, const std::string& engineName)

Constructor

Methods
-------

.. index:: pair: function; typeStr
.. _doxid-class_input_engine_node_1a2de3e84f756d7644a39ec7b409ec7d01:

.. ref-code-block:: cpp
	:class: doxyrest-title-code-block

	virtual std::string typeStr() const

Returns the node 'type' as a string.

.. index:: pair: function; requestedDataPacks
.. _doxid-class_input_engine_node_1a1b693497da1fd00fff0b9b40c2893ec3:

.. ref-code-block:: cpp
	:class: doxyrest-title-code-block

	const std::set<:ref:`DataPackIdentifier<doxid-struct_data_pack_identifier>`>& requestedDataPacks() const

Get the set of DataPackInterfaces that this node requests

.. index:: pair: function; setDataPacks
.. _doxid-class_input_engine_node_1a6a0359edb7b982f44f7a3bda5833fcb4:

.. ref-code-block:: cpp
	:class: doxyrest-title-code-block

	void setDataPacks(:ref:`datapacks_vector_t<doxid-datapack__interface_8h_1abb58261362b3fb30e93be5a3635a572e>` dpacks)

Set datapacks to be published into the graph in the next call to 'compute'